UNPKG

@glowjs/core

Version:

GlowJS数字孪生引擎核心库。

158 lines (157 loc) 3.98 kB
import { Matrix, Quaternion } from '../runtime'; import { ManualWall } from './ManualWall'; import { MeshFaceData } from './MeshFaceData'; /** * 手绘墙创建器 */ export declare class ManualWallBuilder { /** * 拥有者 */ readonly owner: ManualWall; /** * 开始墙角左面底部点 */ startCornerLeftBottom: [number, number, number]; /** * 开始墙角左面顶部点 */ startCornerLeftTop: [number, number, number]; /** * 开始墙角右面底部点 */ startCornerRightBottom: [number, number, number]; /** * 开始墙角右面顶部点 */ startCornerRightTop: [number, number, number]; /** * 结束墙角左面底部点 */ endCornerLeftBottom: [number, number, number]; /** * 结束墙角左面顶部点 */ endCornerLeftTop: [number, number, number]; /** * 结束墙角右面底部点 */ endCornerRightBottom: [number, number, number]; /** * 结束墙角右面顶部点 */ endCornerRightTop: [number, number, number]; /** * 把墙旋转到与Z轴重合需要用到的四元数 */ rotateQuaternion: Quaternion; /** * 把墙还原到原始位置需要用到的四元数 */ restoreQuaternion: Quaternion; /** * 楼层世界矩阵 */ floorWorldMatrix: Matrix; /** * 楼层世界矩阵的逆矩阵 */ floorInvertWorldMatrix: Matrix; /** * 开始墙角世界矩阵 */ startCornerWorldMatrix: Matrix; /** * 开始墙角世界矩阵的逆矩阵 */ startCornerInvertWorldMatrix: Matrix; /** * 洞 */ holes: number[][][]; /** * 顶部加点 */ topAdded: number[][]; /** * 底部加点 */ bottomAdded: number[][]; /** * 左面网格数据 */ leftMeshData: MeshFaceData; /** * 右面网格数据 */ rightMeshData: MeshFaceData; /** * 边缘网格数据 */ edgeMeshData: MeshFaceData; /** * 开始墙角左面邻居 */ startCornerLeftNeighbor: ManualWall; /** * 结束墙角左面邻居 */ endCornerLeftNeighbor: ManualWall; /** * 开始墙角右面邻居 */ startCornerRightNeighbor: ManualWall; /** * 结束墙角右面邻居 */ endCornerRightNeighbor: ManualWall; /** * 实例化一个手绘墙创建器对象 * @param owner 拥有者 */ constructor(owner: ManualWall); /** * 创建 */ build(): void; /** * 创建左面 */ buildLeft(): void; /** * 创建右面 */ buildRight(): void; /** * 创建边缘 */ buildEdge(): void; /** * 将楼层坐标系下的点转换到开始墙角坐标系下 * @param point 楼层坐标系下的点 */ transferToStartCorner(point: [number, number, number]): [number, number, number]; /** * 将楼层坐标系下的点转换到开始墙角坐标系下(丢弃指定坐标轴) * @param point 楼层坐标系下的点 * @param ignoredFlag 忽略的坐标轴标记,0表示X轴,1=Y轴,2=Z轴,默认值0 */ transferToStartCorner2D(point: [number, number, number], ignoredFlag?: number): [x: number, y: number]; /** * 将开始墙角坐标系下的点转到到楼层坐标系下 * @param point 开始墙角坐标系下的点 */ transferToFloor(point: [number, number, number]): [number, number, number]; /** * 设置坐标转换参数 */ setTransferParameters(): void; /** * 设置洞 */ setHoles(): void; /** * 计算墙角挤压出来的点的位置(即墙交点,有8个点) */ computeCornerPoints(): void; }