import { Matrix3, Matrix4, Shape as TShape, Vector3 } from 'three'; import { ObjectSnapMode } from '../Editor/ObjectSnapMode'; import { CADFiler } from './CADFiler'; import { Contour } from './Contour'; import { Curve } from './Entity/Curve'; export declare class Shape { private _Outline; private _Holes; private _DisplayAccuracy; constructor(_Outline?: Contour, _Holes?: Contour[]); get DisplayAccuracy(): number; set DisplayAccuracy(v: number); get Outline(): Contour; get Holes(): Contour[]; get Area(): number; get BoundingBox(): import("../Geometry/Box").Box3Ext; set Outline(con: Contour); set Holes(holes: Contour[]); get Shape(): TShape; get Position(): Vector3; set Position(p: Vector3); Z0(): this; MatrixPlanarizere(): void; ApplyMatrix(m: Matrix4): this; ApplyScaleMatrix(m: Matrix4): this; Explode(): Curve[]; Clone(): Shape; SetColor(color: number): void; GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[]; GetGripPoints(): Vector3[]; MoveGripPoints(indexList: Array, vec: Vector3): void; GetStretchPoints(): Vector3[]; MoveStretchPoints(indexList: Array, vec: Vector3): void; IntersectionBoolOperation(targetShape: Shape): Shape[]; UnionBoolOperation(targetShape: Shape, checkIntersect?: boolean): Shape[]; /** * 如果完全被减掉,就返回0个.其他的返回1个或者n个 * @param targetShapes 已经是合并后的形状数组 */ SubstactBoolOperation(targetShapes: Shape[]): Shape[]; Equal(targetShape: Shape): boolean; private targetOutlinesSubHoles; /** * 目标轮廓减去洞 * * @private * @param {Contour[]} tarContours 轮廓列表 * @param {Contour[]} holes 洞列表 * @returns {Contour[]} 新的轮廓列表 * @memberof Shape */ private targetOutlineSubHoleOutline; static pairHoleAndOutline(contours: Contour[]): Shape[]; /** * 合并洞,本质是使用(并集算法)将可以并集的洞合并在一起,减少洞的数量. * canSidewipe 用于走刀,擦边的,包含的,是否合并 */ static mergeContours(holes: Contour[], canSidewipe?: boolean): Contour[]; /** * 移除被包含的洞.(移除无效的洞,已经被更大的洞包含) * * @private * @param {Contour[]} tmpHoles 洞列表 * @returns {Contour[]} 返回的洞列表都不会互相包含. * @memberof Shape */ private static removeBeContaineredHoles; ReadFile(file: CADFiler): void; WriteFile(file: CADFiler): void; } //# sourceMappingURL=Shape.d.ts.map