import { BufferGeometry, Geometry, Vector2, Vector3 } from "three"; import { LineGeometry } from "three/examples/jsm/lines/LineGeometry"; import { Curve } from "../DatabaseServices/Entity/Curve"; import { Polyline } from "../DatabaseServices/Entity/Polyline"; /** * 使用轮廓和扫描路径构建扫描几何体,实现衣柜中的顶线或者地脚线之类的实体. * 该几何体需要轮廓和路径的起始截面垂直,否则构造的实体将会错误. */ export declare class SweepGeometry extends Geometry { edgePts: number[]; polygonIndexes: any[]; ShapeMaterialSlotData: number[]; constructor(contour: Polyline, path: Curve[] | Curve, ShapeMaterialSlotData?: number[]); get LineGeom(): LineGeometry; get EdgeGeom(): BufferGeometry; AddShape(contour: Polyline, path: Curve): void; AddShape2(contour: Polyline, paths: Curve[]): void; /** * 使用4点构建面 * @param a 左下 * @param b 右下 * @param c 左上 * @param d 右上 * @param uvs * @param [materialIndex] */ protected BuildFace4(a: number, b: number, c: number, d: number, uvs: Vector2[], materialIndex?: number): void; /** * 构造边缘面开始标记 * @param dir 前进方向(单位向量) */ protected SideStartMark(dir: Vector3): void; protected BuildSideFaces(shapePts2d: Vector2[], pathPts2d: Vector2[], pathPts: Vector3[], verts: Vector3[][]): void; protected BuildLid(shapePts2d: Vector2[], verts: Vector3[][]): void; } /** * 将轮廓变换到`路径上某个点`. * * @param {Vector3[]} contourPts 原始的轮廓点(在世界坐标系) * @param {Vector3} normal 路径法向量 * @param {Vector3} curP 路径上当前点 * @param {Vector3} [preP] 路径的前一个点 * @param {Vector3} [nextP] 路径下一个点 * @returns 变换后的轮廓点表 */ export declare function ProjectionToPlane(contourPts: Vector3[], normal: Vector3, curP: Vector3, preP?: Vector3, nextP?: Vector3): Vector3[]; type Polygon = number[]; export declare class SweepGeometrySimple extends SweepGeometry { SidePolygons: (Polygon[])[]; private _curSidePolygons; private _curDir; TriFaces: (number[])[]; shapeVerts: Vector3[][]; shapePts2d: Vector2[]; computeVertexNormals(): void; computeFaceNormals(): void; BuildFace4(a: number, b: number, c: number, d: number, uvs: Vector2[], materialIndex?: number): void; protected SideStartMark(dir: Vector3): void; protected BuildSideFaces(shapePts2d: Vector2[], pathPts2d: Vector2[], pathPts: Vector3[], verts: Vector3[][]): void; protected BuildLid(shapePts2d: Vector2[], verts: Vector3[][]): void; } export {}; //# sourceMappingURL=SweepGeometry.d.ts.map