import { Vector3 } from "three"; import { IntersectResult } from "../GraphicsSystem/IntersectWith"; import { Circle } from "./Entity/Circle"; import { Curve } from "./Entity/Curve"; import { Polyline } from "./Entity/Polyline"; export declare class Contour { private _Curve; protected SetCurve(cu: Polyline | Circle): void; /**会将传入的闭合轮廓改为逆时针 */ static CreateContour(cus: Curve[] | Polyline | Circle, needLink?: boolean): Contour; get Curve(): Polyline | Circle; get Area(): number; get BoundingBox(): import("../Geometry/Box").Box3Ext; /** * 不等比例缩放 * @param {number} ref 缩放参考值,大于该值的点缩放 * @param {number} dist 缩放距离 * @param {string} dir x y z */ UnEqualProportionScale(ref: number, dist: number, dir: "x" | "y"): boolean; Clone(): Contour; IntersectionBoolOperation(target: Contour): Contour[]; UnionBoolOperation(target: Contour): { contours: Contour[]; holes: Contour[]; }; SubstactBoolOperation(target: Contour): Contour[]; /** * 计算与目标轮廓布尔运算后的结果曲线. */ GetIntersetAndUnionList(target: Contour): { intersectionList: Curve[]; unionList: Curve[]; }; GetSubtractList(target: Contour): Polyline[]; GetSubtractListByMoreTargets(targets: Contour[]): { holes: Contour[]; outlines: Contour[]; }; /** * 计算轮廓被差集之后的结果 * @param targets 切去的轮廓 * @returns {holes: Polyline[] 网洞曲线列表, subtractList: Polyline[] 轮廓曲线列表} */ GetSubListWithCus(targets: Contour[]): { holes: Polyline[]; subtractList: Polyline[]; }; /** * 获得全部闭合曲线 * @若传入二维曲线数据,将默认子数组为闭合曲线段 */ static GetAllContour(cus: Curve[] | Curve[][]): Contour[]; /** * 合并曲线组成为多段线 * @param cus 曲线组 * @param [needLink=true] 需要解析成首尾连接状态 * @returns 单一曲线,如果返回超过1个,其他的将被遗弃. */ static Combine(cus: Curve[], needLink?: boolean, tolerance?: number): Curve; get Shape(): THREE.Shape; /** * 判断是否完全包含曲线 * @param smallCurve 传入的这个曲线不能比本轮廓还大(这个需要自己优化?) * @returns */ ContainerCurve(smallCurve: Polyline | Circle | Curve, isAreaCheckd?: boolean, ipts?: IntersectResult[]): boolean; Equal(tar: Contour): boolean; } export declare function fastCurveInCurve2(bigCurve: Polyline | Circle, smallCurve: Curve, iPt?: Vector3): boolean; export declare function CurveContainerCurve(bigCurve: Polyline | Circle, smallCurve: Polyline | Circle | Curve, ipts?: IntersectResult[], fuzz?: number): boolean; //# sourceMappingURL=Contour.d.ts.map