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

103 lines
3.8 KiB
TypeScript
Raw Normal View History

2024-10-29 17:14:43 +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";
import { Line } from "../DatabaseServices/Entity/Line";
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 enum PolylineJoinType {
Square = 0,
Round = 1
}
export declare class OffsetPolyline {
_Polyline: Polyline;
_OffsetDist: number;
_ToolPath: boolean;
private _OffsetDistSq;
private _JoinType;
2025-04-01 14:56:29 +08:00
private _KeepCollinearLine;
2024-10-29 17:14:43 +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;
_IsTopoOffset: boolean;
_AllowConverToCircle: boolean;
/**
*
* @param _Polyline
* @param _OffsetDist
* @param [_ToolPath=false] (,(线))
* @param [_OffsetDistSq=(_OffsetDist ** 2) * 2.1]
* @param [_JoinType=PolylineJoinType.Round] ,,线
2025-04-01 14:56:29 +08:00
* @param [_KeepCollinearLine=false] 线(,线,true能实现这个目的)
2024-10-29 17:14:43 +08:00
*/
constructor(_Polyline: Polyline, _OffsetDist: number, _ToolPath?: boolean, _OffsetDistSq?: number, //对直角走刀不进行圆弧过度
2025-04-01 14:56:29 +08:00
_JoinType?: PolylineJoinType, //仅在走刀路径时生效
_KeepCollinearLine?: boolean);
2024-10-29 17:14:43 +08:00
Do(): Polyline[];
InitSubCurves(): this;
protected GeneralCirclesAndVertexs(): void;
protected OffsetSubCurves(): void;
LinkSubCurves(): void;
/**
* 线
*
* 1.线,
* 2.,
* ,,,.
* , #I7WKKG
*/
private IsSharpCorner;
protected GeneralTrimContours(): void;
protected TrimByContours(): void;
private FilterInvalidCurve;
private JoinCollinear;
private LinkResultPolyline;
private RepairResultPolylineClosemark;
CheckPointDir(pt: Vector3): boolean;
2025-04-01 14:56:29 +08:00
/**
* 线 线()
* @param pt
* @returns 0线 1 -1
*/
2024-10-29 17:14:43 +08:00
GetPointAtCurveDir(pt: Vector3): number;
protected CreateArc(center: Vector3, startP: Vector3, endP?: Vector3): Arc;
protected CreateSquare(center: Vector3, curveNow: IOffsetResult, curveNext: IOffsetResult, entTypeCode: number): Line;
}
2025-04-01 14:56:29 +08:00
/**
* @returns 1:全line 2:全arc 3:line and arc
*/
2024-10-29 17:14:43 +08:00
export declare function EntityEncode2(c1: Curve, c2: Curve): number;
export declare function CurveIsFine(curve: Curve): boolean;
export {};
//# sourceMappingURL=OffsetPolyline.d.ts.map