import type { Ellipse, GlobalPoint, Line, LineSegment, LocalPoint } from "./types"; /** * Construct an Ellipse object from the parameters * * @param center The center of the ellipse * @param angle The slanting of the ellipse in radians * @param halfWidth Half of the width of a non-slanted version of the ellipse * @param halfHeight Half of the height of a non-slanted version of the ellipse * @returns The constructed Ellipse object */ export declare function ellipse(center: Point, halfWidth: number, halfHeight: number): Ellipse; /** * Determines if a point is inside or on the ellipse outline * * @param p The point to test * @param ellipse The ellipse to compare against * @returns TRUE if the point is inside or on the outline of the ellipse */ export declare const ellipseIncludesPoint: (p: Point, ellipse: Ellipse) => boolean; /** * Tests whether a point lies on the outline of the ellipse within a given * tolerance * * @param point The point to test * @param ellipse The ellipse to compare against * @param threshold The distance to consider a point close enough to be "on" the outline * @returns TRUE if the point is on the ellise outline */ export declare const ellipseTouchesPoint: (point: Point, ellipse: Ellipse, threshold?: number) => boolean; /** * Determine the shortest euclidean distance from a point to the * outline of the ellipse * * @param p The point to consider * @param ellipse The ellipse to calculate the distance to * @returns The eucledian distance */ export declare const ellipseDistanceFromPoint: (p: Point, ellipse: Ellipse) => number; /** * Calculate a maximum of two intercept points for a line going throug an * ellipse. */ export declare function ellipseSegmentInterceptPoints(e: Readonly>, s: Readonly>): Point[]; export declare function ellipseLineIntersectionPoints({ center, halfWidth, halfHeight }: Ellipse, [g, h]: Line): Point[];