import { Box3, Matrix3, Matrix4, Vec2, Vector2, Vector3 } from 'three'; import { Arc } from '../DatabaseServices/Entity/Arc'; import { Circle } from '../DatabaseServices/Entity/Circle'; import { Curve } from '../DatabaseServices/Entity/Curve'; import { Ellipse } from '../DatabaseServices/Entity/Ellipse'; import { Line } from '../DatabaseServices/Entity/Line'; import { Polyline } from '../DatabaseServices/Entity/Polyline'; import { Vec3 } from '../Geometry/IVec3'; import { IntersectResult } from '../GraphicsSystem/IntersectWith'; export declare function getCircleCenter(pt1: Vector3, pt2: Vector3, pt3: Vector3): Vector3; export declare function getCirAngleByChordAndTangent(chord: Vector3, tangentLine: Vector3): number; export declare function getDeterminantFor2V(v1: Vector2, v2: Vector2): number; export declare function getDeterminantFor3V(v1: Vector3, v2: Vector3, v3: Vector3): number; /** * 曲线根据连接来分组,每组都是一条首尾相连的曲线表. * * @export * @param {Curve[]} cus 传入的分组的曲线表 * @returns {Array>} 返回如下 * [ * [c1,c2,c3...],//后面的曲线的起点总是等于上一个曲线的终点 * [c1,c2,c3...], * ] */ export declare function curveLinkGroup(cus: Curve[], numdimensions?: number): Array>; export declare function equalCurve(cu1: Curve, cu2: Curve, tolerance?: number): boolean; /** * 计算点在曲线前进方向的方位,左边或者右边 * * @param {Curve} cu * @param {Vector3} pt * @returns {boolean} 左边为-1,右边为1 */ export declare function GetPointAtCurveDir(cu: Curve, pt: Vector3): number; export declare function ConverCircleToPolyline(cir: Circle): Polyline; export declare function GetTanPtsOnArcOrCircle(cu: Arc | Circle, lastPoint?: Vector3): Vector3[]; export declare function CircleInternalTangentLines(cir0: Circle, cir1: Circle): Line[]; export declare function CircleOuterTangentLines(circle0: Circle, circle1: Circle): Line[]; export declare function getArcOrCirNearPts(cu: Circle | Arc | Ellipse, pickPoint: Vector3, viewXform: Matrix3): Vector3[]; export declare function getTanPtsOnEllipse(cu: Ellipse, lastPoint: Vector3): any[]; export interface IRectInfo { size: Vector3; box: Box3; OCS: Matrix4; } /** * 判断多段线是不是矩形 * 因为用户画的垃圾图,所以我们会给容差 * 1.简化点表成4个点 * -得到x向量,构建二维旋转矩阵 * -所有的点旋转 * 2.构建box * 3.4个点都在盒子里,面积是矩形 * @param cu */ export declare function IsRect(cu: Curve): IRectInfo | undefined; /**用4个矩形点构造矩形 */ export declare function getRectFrom4Pts(pts: Vector3[]): Polyline; export declare function MergeCurvelist(cus: Curve[]): Curve[]; export declare function SwapParam(res: IntersectResult[]): IntersectResult[]; export declare function ComputerCurvesNormalOCS(curves: Curve[], allowAutoCalc?: boolean): Matrix4 | undefined; export declare function Pts2Polyline(pts: (Vec3 | Vec2)[], isClose: boolean): Polyline; /**封闭多段线 分割成矩形 */ export declare function PolylineSpliteRect(outline: Polyline): Polyline[]; //# sourceMappingURL=CurveUtils.d.ts.map