import * as geom from './index'; import type { Matrix } from './Matrix'; import { Shape } from './Shape'; import { Point } from './Point'; import { Vector } from './Vector'; /** * Class representing a line * @type {Line} */ export declare class Line extends Shape { /** * Point a line passes through */ pt: Point; /** * Normal vector to a line
* Vector is normalized (length == 1)
* Direction of the vector is chosen to satisfy inequality norm * p >= 0 */ norm: Vector; /** * Line may be constructed by point and normal vector or by two points that a line passes through * @param {Point} pt - point that a line passes through * @param {Vector|Point} norm - normal vector to a line or second point a line passes through */ constructor(...args: any[]); /** * Return new cloned instance of line */ clone(): geom.Line; get tag(): geom.ShapeTag; get center(): geom.Point; get start(): any; /** * Line has no end point */ get end(): any; /** * Return positive infinity number as length */ get length(): number; /** * Returns infinite box */ get box(): geom.Box; /** * Middle point is undefined */ get middle(): any; /** * Slope of the line - angle in radians between line and axe x from 0 to 2PI */ get slope(): number; /** * Get coefficients [A,B,C] of a standard line equation in the form Ax + By = C * @code [A, B, C] = line.standard */ get standard(): readonly [number, number, number]; /** * Return true if parallel or incident to other line * @param {Line} other_line - line to check * @returns {boolean} */ parallelTo(other_line: any): boolean; /** * Returns true if incident to other line * @param {Line} other_line - line to check * @returns {boolean} */ incidentTo(other_line: any): boolean; /** * Returns true if point belongs to line * @param {Point} pt Query point * @returns {boolean} */ contains(pt: any): boolean; /** * Return coordinate of the point that lies on the line in the transformed * coordinate system where center is the projection of the point(0,0) to * the line and axe y is collinear to the normal vector.
* This method assumes that point lies on the line and does not check it * @param {Point} pt - point on a line * @returns {number} */ coord(pt: any): number; /** * Returns array of intersection points * @param {Shape} shape - shape to intersect with * @returns {Point[]} */ intersect(shape: any): geom.Point[]; /** * Calculate distance and shortest segment from line to shape and returns array [distance, shortest_segment] * @param shape Shape of the one of the types Point, Circle, Segment, Arc, Polygon */ distanceTo(shape: geom.Shape): [number, geom.Segment]; /** * Split line with a point or array of points and return array of shapes * Assumed (but not checked) that all points lay on the line * @param {Point | Point[]} pt * @returns {MultilineShapes} */ split(pt: any): any[]; /** * Return new line rotated by angle * @param {number} angle - angle in radians * @param {Point} center - center of rotation */ rotate(angle: any, center?: geom.Point): geom.Line; /** * Return new line transformed by affine transformation matrix * @param m - affine transformation matrix (a,b,c,d,tx,ty) */ transform(m: Matrix): geom.Line; /** * Sort given array of points that lay on a line with respect to coordinate on a line * The method assumes that points lay on the line and does not check this * @param {Point[]} pts - array of points * @returns {Point[]} new array sorted */ sortPoints(pts: any): any; get name(): string; static points2norm(pt1: any, pt2: any): geom.Vector; } /** * Function to create line equivalent to "new" constructor * @param args */ export declare const line: (...args: any[]) => geom.Line; //# sourceMappingURL=Line.d.ts.map