webcad-ue4-api/types/DatabaseServices/Contour.d.ts
2024-10-29 17:14:43 +08:00

67 lines
2.7 KiB
TypeScript

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