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