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;
}
