import { 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'; /** * 相交延伸选项. * * @export * @enum {number} */ export declare enum IntersectOption { /** * 两者都不延伸 */ ExtendNone = 0, /** * 延伸自身 */ ExtendThis = 1, /** * 延伸参数 */ ExtendArg = 2, /** * 延伸两者 */ ExtendBoth = 3 } export interface IntersectResult { pt: Vector3; thisParam: number; argParam: number; } export declare function reverseIntersectOption(intType: IntersectOption): IntersectOption; export declare function IntersectCircleAndCircle(cu1: Circle | Arc, cu2: Circle | Arc): IntersectResult[]; /** * 计算圆与圆弧的交点. * * @export * @param {Circle} circle 圆 * @param {Arc} arc 圆弧 * @param {IntersectOption} extType 延伸选项 * @returns 交点集合 */ export declare function IntersectCircleAndArc(circle: Circle, arc: Arc, extType: IntersectOption, tolerance?: number): IntersectResult[]; /** * 计算圆弧与圆弧的交点 * * @export * @param {Arc} arc1 圆弧 * @param {Arc} arc2 圆弧 * @param {IntersectOption} extType 延伸选项 * @returns 交点集合 */ export declare function IntersectArcAndArc(arc1: Arc, arc2: Arc, extType: IntersectOption, tolerance?: number): IntersectResult[]; export declare function IntersectEllipseAndLine(l: Line, el: Ellipse, extType: IntersectOption, tolerance?: number): IntersectResult[]; export declare function IntersectLineAndCircle(line: Line, circle: Circle, extType: IntersectOption, tolerance?: number): IntersectResult[]; export declare function IntersectLineAndArc(line: Line, arc: Arc, extType: IntersectOption, tolerance?: number): IntersectResult[]; export declare function IntersectLAndLFor2D(p1: Vector3, p2: Vector3, p3: Vector3, p4: Vector3): Vector3; export declare function IntersectLAndLFor2D2(p1: Vector3, p2: Vector3, p3: Vector3, p4: Vector3): Vector3[]; export declare function IntersectLine3AndLine3(p1: Vector3, p2: Vector3, p3: Vector3, p4: Vector3, epsilon?: number): Vector3; export declare function IntersectLineAndLine(l1: Line, l2: Line, extType: IntersectOption, fuzz?: number): IntersectResult[]; export declare function IntersectPolylineAndCurve(pl: Polyline, cu: Curve, extType: IntersectOption, tolerance?: number): IntersectResult[]; export declare function IntersectLineAndEllipseFor2D(l: Line, el: Ellipse): { pt: Vector3; thisParam: number; argParam: number; }[]; export declare function IntersectEllipseAndCircleOrArc(el: Ellipse, cir: Circle | Arc, type: IntersectOption): IntersectResult[]; export declare function IntersectEllipse(el1: Ellipse, el2: Ellipse, type: IntersectOption): IntersectResult[]; //# sourceMappingURL=IntersectWith.d.ts.map