import { Vec3 } from "../../math/Vec3"; import { DistanceResult } from '../../alg/result'; import { Segment } from './Segment'; import { Ray } from './Ray'; import { Triangle } from './Triangle'; import { Polyline } from './Polyline'; import { Plane } from "./Plane"; export declare class Line { origin: Vec3; end: Vec3; direction: Vec3; constructor(origin?: Vec3, end?: Vec3); set(origin: Vec3, end: Vec3): this; distancePoint(pt: Vec3): DistanceResult; distanceSegment(segment: Segment): DistanceResult; /** * 直线到直线的距离 * 参数与最近点顺序一致 * @param {Line} line */ distanceLine(line: Line): DistanceResult; /** * 直线与射线的距离 * @param {Ray} ray */ distanceRay(ray: Ray): DistanceResult; /** * * @param triangle */ distanceTriangle(triangle: Triangle): DistanceResult; distancePolyline(polyline: Polyline | Vec3[]): DistanceResult; /** * 线与平面相交 * @param plane * @param result */ intersectPlane(plane: Plane, result?: Vec3): Vec3 | undefined; } export declare function line(start?: Vec3, end?: Vec3): Line;