webcad-api/types/GraphicsSystem/OffsetPolyline.d.ts

91 lines
3.4 KiB
TypeScript
Raw Normal View History

2020-09-24 11:04:12 +08:00
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";
2023-12-13 10:54:24 +08:00
import { Line } from "../DatabaseServices/Entity/Line";
2020-09-24 11:04:12 +08:00
import { Polyline } from "../DatabaseServices/Entity/Polyline";
interface IOffsetResult {
index: number;
curve: Curve;
2023-08-16 15:05:08 +08:00
/**偏移距离(仅在局部偏移时提供) */
dist?: number;
2020-09-24 11:04:12 +08:00
sp?: Vector3;
ep?: Vector3;
2023-05-08 10:53:13 +08:00
preCurve?: Curve;
nextCurve?: Curve;
2020-09-24 11:04:12 +08:00
paddingCurve?: Curve[];
}
2023-05-08 10:53:13 +08:00
export declare class CurveTreeNode {
2020-09-24 11:04:12 +08:00
curve: Curve;
2023-05-08 10:53:13 +08:00
children: this[];
2020-09-24 11:04:12 +08:00
box: Box3;
used: boolean;
2023-05-08 10:53:13 +08:00
Create(curve: Curve, box?: Box3): this;
2020-09-24 11:04:12 +08:00
constructor(curve: Curve, box?: Box3);
TrimBy(contour: Contour, box: Box3): void;
2023-05-08 10:53:13 +08:00
get Nodes(): this[];
2020-09-24 11:04:12 +08:00
}
2023-12-13 10:54:24 +08:00
export declare enum PolylineJoinType {
Square = 0,
Round = 1
}
2020-09-24 11:04:12 +08:00
export declare class OffsetPolyline {
_Polyline: Polyline;
_OffsetDist: number;
_ToolPath: boolean;
private _OffsetDistSq;
2023-12-13 10:54:24 +08:00
private JoinType;
2020-09-24 11:04:12 +08:00
_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;
2023-08-16 15:05:08 +08:00
_IsTopoOffset: boolean;
2023-12-13 10:54:24 +08:00
/**
*
* @param _Polyline
* @param _OffsetDist
* @param [_ToolPath=false] (,(线))
* @param [_OffsetDistSq=(_OffsetDist ** 2) * 2.1]
* @param [JoinType=PolylineJoinType.Round] ,,线
*/
constructor(_Polyline: Polyline, _OffsetDist: number, _ToolPath?: boolean, _OffsetDistSq?: number, //对直角走刀不进行圆弧过度
JoinType?: PolylineJoinType);
2020-09-24 11:04:12 +08:00
Do(): Polyline[];
InitSubCurves(): this;
protected GeneralCirclesAndVertexs(): void;
protected OffsetSubCurves(): void;
2023-05-08 10:53:13 +08:00
LinkSubCurves(): void;
2023-09-15 17:14:55 +08:00
/**
* 线
*
* 1.线,
* 2.,
* ,,,.
* , #I7WKKG
*/
2020-09-24 11:04:12 +08:00
private IsSharpCorner;
protected GeneralTrimContours(): void;
protected TrimByContours(): void;
private FilterInvalidCurve;
private JoinCollinear;
private LinkResultPolyline;
2021-04-06 17:12:55 +08:00
private RepairResultPolylineClosemark;
2020-09-24 11:04:12 +08:00
CheckPointDir(pt: Vector3): boolean;
GetPointAtCurveDir(pt: Vector3): number;
protected CreateArc(center: Vector3, startP: Vector3, endP?: Vector3): Arc;
2023-12-13 10:54:24 +08:00
protected CreateSquare(center: Vector3, curveNow: IOffsetResult, curveNext: IOffsetResult, entTypeCode: number): Line;
2020-09-24 11:04:12 +08:00
}
2023-05-08 10:53:13 +08:00
export declare function EntityEncode2(c1: Curve, c2: Curve): number;
export declare function CurveIsFine(curve: Curve): boolean;
2020-09-24 11:04:12 +08:00
export {};
//# sourceMappingURL=OffsetPolyline.d.ts.map