2020-10-21 16:23:32 +08:00
|
|
|
import { Box3, Matrix3, Matrix4, Vec2, Vector2, Vector3 } from 'three';
|
2020-09-24 11:04:12 +08:00
|
|
|
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';
|
2020-10-21 16:23:32 +08:00
|
|
|
import { Vec3 } from '../Geometry/IVec3';
|
2020-09-24 11:04:12 +08:00
|
|
|
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<Array<Curve>>} 返回如下
|
|
|
|
* [
|
|
|
|
* [c1,c2,c3...],//后面的曲线的起点总是等于上一个曲线的终点
|
|
|
|
* [c1,c2,c3...],
|
|
|
|
* ]
|
|
|
|
*/
|
2023-05-08 10:53:13 +08:00
|
|
|
export declare function curveLinkGroup(cus: Curve[], numdimensions?: number): Array<Array<Curve>>;
|
2020-09-24 11:04:12 +08:00
|
|
|
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[];
|
2020-12-08 17:45:14 +08:00
|
|
|
export interface IRectInfo {
|
2020-09-24 11:04:12 +08:00
|
|
|
isRect: boolean;
|
|
|
|
size?: Vector3;
|
|
|
|
box?: Box3;
|
|
|
|
OCS?: Matrix4;
|
2020-12-08 17:45:14 +08:00
|
|
|
}
|
|
|
|
export declare function IsRect(cu: Curve): IRectInfo;
|
2020-09-24 11:04:12 +08:00
|
|
|
/**用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;
|
2020-10-21 16:23:32 +08:00
|
|
|
export declare function Pts2Polyline(pts: (Vec3 | Vec2)[], isClose: boolean): Polyline;
|
2020-09-24 11:04:12 +08:00
|
|
|
/**获取矩形信息 */
|
|
|
|
export declare function GetRectData(cu: Curve): {
|
|
|
|
isRect: boolean;
|
|
|
|
size?: Vector3;
|
|
|
|
box?: Box3;
|
|
|
|
OCS?: Matrix4;
|
|
|
|
};
|
|
|
|
/**封闭多段线 分割成矩形 */
|
|
|
|
export declare function PolylineSpliteRect(outline: Polyline): Polyline[];
|
|
|
|
//# sourceMappingURL=CurveUtils.d.ts.map
|