import { Vector2, Vector3, Line3, Plane } from 'three'; /** * Section determines the MRP section of a volume. */ export interface Section { origin: number[]; xAxis: number[]; yAxis: number[]; } interface SectionVector { origin: Vector3; xAxis: Vector3; yAxis: Vector3; } /** * Converts the members of Section into Vector3 for easier calculation. * It is safe to modify the returned object because all the members are cloned. * @param section The input Section object. */ export declare function vectorizeSection(section: Section): SectionVector; export declare function sectionToPlane(section: Section): Plane; export declare function projectPointOntoSection(section: Section, point: Vector3): Vector2; export declare function distanceFromPointToSection(section: Section, point: Vector3): number; /** * Performs a parallel translation on a given section. */ export declare function translateSection(section: Section, delta: Vector3): Section; /** * Calculates the intersection point of the given line segment and the plane. * This does not check if the intersection is within the section * (i.e., section is treated as a plane that extends infinitely). * @return The intersection point. null if there is no intersection. * @deprecated Use toPlane() and intersectLine() instead. */ export declare function intersectionOfLineAndPlane(section: Section, line: Line3): Vector3 | null; /** * Returns true if the given point is within the given section. */ export declare function intersectionPointWithinSection(section: Section, pointOnSection: Vector3): boolean; /** * Calculates the intersection point of the given line segment and the section. * @return The intersection point. null if there is no intersection. */ export declare function intersectionOfLineAndSection(section: Section, line: Line3): Vector3 | null; /** * Calculates the intersection line segment of two (finite) sections. * @param section1 * @param section2 * @returns The intersection line segment */ export declare function intersectionOfTwoSections(section1: Section, section2: Section): Line3 | null; /** * Calculates the normal vector of the given section. * @param section The section. * @returns The calculated normal vector. */ export declare function normalVector(section: Section): Vector3; /** * Compare the contents of the two sections. * @param a The section to compare. * @param b The section to compare. * @returns True if the two given Sections are identical. */ export declare function sectionEquals(a: Section, b: Section): boolean; export {};