webcad-ue4-api/types/GraphicsSystem/OffsetPolyline.d.ts
2023-07-21 15:56:48 +08:00

67 lines
2.2 KiB
TypeScript

import { Box3, Matrix4, Vector3 } from "three";
import { Contour } from "../DatabaseServices/Contour";
import { Arc } from "../DatabaseServices/Entity/Arc";
import { Circle } from "../DatabaseServices/Entity/Circle";
import { Curve } from "../DatabaseServices/Entity/Curve";
import { Polyline } from "../DatabaseServices/Entity/Polyline";
interface IOffsetResult {
index: number;
curve: Curve;
/**偏移距离(仅在局部偏移时提供) */
dist?: number;
sp?: Vector3;
ep?: Vector3;
preCurve?: Curve;
nextCurve?: Curve;
paddingCurve?: Curve[];
}
export declare class CurveTreeNode {
curve: Curve;
children: this[];
box: Box3;
used: boolean;
Create(curve: Curve, box?: Box3): this;
constructor(curve: Curve, box?: Box3);
TrimBy(contour: Contour, box: Box3): void;
get Nodes(): this[];
}
export declare class OffsetPolyline {
_Polyline: Polyline;
_OffsetDist: number;
_ToolPath: boolean;
private _OffsetDistSq;
_CacheOCS: Matrix4;
_Vertexs: Vector3[];
_SubCurves: Curve[];
_Circles: Circle[];
_SubOffsetedCurves: IOffsetResult[];
_CurveTreeNodes: CurveTreeNode[];
_CurveTrimedTreeNodes: CurveTreeNode[];
_TrimPolylineContours: Contour[];
_TrimCircleContours: Circle[];
_TrimArcContours: Contour[];
_RetCurves: Polyline[];
_IsClose: boolean;
_OffsetDistSign: number;
_IsTopoOffset: boolean;
constructor(_Polyline: Polyline, _OffsetDist: number, _ToolPath?: boolean, _OffsetDistSq?: number);
Do(): Polyline[];
InitSubCurves(): this;
protected GeneralCirclesAndVertexs(): void;
protected OffsetSubCurves(): void;
LinkSubCurves(): void;
private IsSharpCorner;
protected GeneralTrimContours(): void;
protected TrimByContours(): void;
private FilterInvalidCurve;
private JoinCollinear;
private LinkResultPolyline;
private RepairResultPolylineClosemark;
CheckPointDir(pt: Vector3): boolean;
GetPointAtCurveDir(pt: Vector3): number;
protected CreateArc(center: Vector3, startP: Vector3, endP?: Vector3): Arc;
}
export declare function EntityEncode2(c1: Curve, c2: Curve): number;
export declare function CurveIsFine(curve: Curve): boolean;
export {};
//# sourceMappingURL=OffsetPolyline.d.ts.map