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

91 lines
3.4 KiB
TypeScript
Raw Normal View History

2021-01-28 10:17:21 +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";
2024-02-05 17:17:48 +08:00
import { Line } from "../DatabaseServices/Entity/Line";
2021-01-28 10:17:21 +08:00
import { Polyline } from "../DatabaseServices/Entity/Polyline";
interface IOffsetResult {
index: number;
curve: Curve;
2023-07-21 15:56:48 +08:00
/**偏移距离(仅在局部偏移时提供) */
dist?: number;
2021-01-28 10:17:21 +08:00
sp?: Vector3;
ep?: Vector3;
2022-02-16 11:15:31 +08:00
preCurve?: Curve;
nextCurve?: Curve;
2021-01-28 10:17:21 +08:00
paddingCurve?: Curve[];
}
2022-02-16 11:15:31 +08:00
export declare class CurveTreeNode {
2021-01-28 10:17:21 +08:00
curve: Curve;
2022-02-16 11:15:31 +08:00
children: this[];
2021-01-28 10:17:21 +08:00
box: Box3;
used: boolean;
2022-02-16 11:15:31 +08:00
Create(curve: Curve, box?: Box3): this;
2021-01-28 10:17:21 +08:00
constructor(curve: Curve, box?: Box3);
TrimBy(contour: Contour, box: Box3): void;
2022-02-16 11:15:31 +08:00
get Nodes(): this[];
2021-01-28 10:17:21 +08:00
}
2024-02-05 17:17:48 +08:00
export declare enum PolylineJoinType {
Square = 0,
Round = 1
}
2021-01-28 10:17:21 +08:00
export declare class OffsetPolyline {
_Polyline: Polyline;
_OffsetDist: number;
_ToolPath: boolean;
private _OffsetDistSq;
2024-02-05 17:17:48 +08:00
private _JoinType;
2021-01-28 10:17:21 +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-07-06 10:23:55 +08:00
_IsTopoOffset: boolean;
2024-02-05 17:17:48 +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);
2021-01-28 10:17:21 +08:00
Do(): Polyline[];
InitSubCurves(): this;
protected GeneralCirclesAndVertexs(): void;
protected OffsetSubCurves(): void;
2022-02-16 11:15:31 +08:00
LinkSubCurves(): void;
2023-09-09 17:26:43 +08:00
/**
* 线
*
* 1.线,
* 2.,
* ,,,.
* , #I7WKKG
*/
2021-01-28 10:17:21 +08:00
private IsSharpCorner;
protected GeneralTrimContours(): void;
protected TrimByContours(): void;
private FilterInvalidCurve;
private JoinCollinear;
private LinkResultPolyline;
2022-02-16 11:15:31 +08:00
private RepairResultPolylineClosemark;
2021-01-28 10:17:21 +08:00
CheckPointDir(pt: Vector3): boolean;
GetPointAtCurveDir(pt: Vector3): number;
protected CreateArc(center: Vector3, startP: Vector3, endP?: Vector3): Arc;
2024-02-05 17:17:48 +08:00
protected CreateSquare(center: Vector3, curveNow: IOffsetResult, curveNext: IOffsetResult, entTypeCode: number): Line;
2021-01-28 10:17:21 +08:00
}
2022-05-26 11:06:27 +08:00
export declare function EntityEncode2(c1: Curve, c2: Curve): number;
2022-02-16 11:15:31 +08:00
export declare function CurveIsFine(curve: Curve): boolean;
2021-01-28 10:17:21 +08:00
export {};
//# sourceMappingURL=OffsetPolyline.d.ts.map