64 lines
2.1 KiB
TypeScript
64 lines
2.1 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;
|
|
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;
|
|
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
|