SmallSystem Class

static methods for commonly appearing sets of equations in 2 or 3 variables

Methods

Name Description
constructor(): SmallSystem    
eliminateFromPivot(rowA: Float64Array, pivotIndex: number, rowB: Float64Array, a: number): boolean Static In rowB, replace rowB[j] += a * rowB[pivot] * rowA[j] / rowA[pivot] for j > pivot  
intersect3Planes(xyzA: Point3d, normalA: Vector3d, xyzB: Point3d, normalB: Vector3d, xyzC: Point3d, normalC: Vector3d, result?: Vector3d): Vector3d | undefined Static Compute the intersection of three planes.  
linearSystem2d(ux: number, vx: number, uy: number, vy: number, cx: number, cy: number, result: Vector2d): boolean Static Solve the pair of linear equations  
linearSystem3d(axx: number, axy: number, axz: number, ayx: number, ayy: number, ayz: number, azx: number, azy: number, azz: number, cx: number, cy: number, cz: number, result?: Vector3d): Vector3d | undefined Static Solve a linear system:  
lineSegment2dXYTransverseIntersectionUnbounded(a0: XAndY, a1: XAndY, b0: XAndY, b1: XAndY, result: Vector2d): boolean Static Return true if lines (a0,a1) to (b0, b1) have a simple intersection.  
lineSegment3dClosestApproachUnbounded(a0: Point3d, a1: Point3d, b0: Point3d, b1: Point3d, result: Vector2d): boolean Static Return true if lines (a0,a1) to (b0, b1) have closest approach (go by each other) in 3d  
lineSegment3dClosestPointUnbounded(pointA0: Point3d, pointA1: Point3d, spacePoint: Point3d): number | undefined Static Return the line fraction at which the line is closest to a space point  
lineSegment3dHXYClosestPointUnbounded(hA0: Point4d, hA1: Point4d, spacePoint: Point4d): number | undefined Static Return the line fraction at which the (homogeneous) line is closest to a space point as viewed in xy only.  
lineSegment3dHXYTransverseIntersectionUnbounded(hA0: Point4d, hA1: Point4d, hB0: Point4d, hB1: Point4d, result?: Vector2d): Vector2d | undefined Static Return true if lines (a0,a1) to (b0, b1) have a simple intersection using only xy parts of WEIGHTED 4D Points  
lineSegment3dXYClosestPointUnbounded(pointA0: XAndY, pointA1: XAndY, spacePoint: XAndY): number | undefined Static Return the line fraction at which the line is closest to a space point as viewed in xy only.  
lineSegment3dXYTransverseIntersectionUnbounded(a0: Point3d, a1: Point3d, b0: Point3d, b1: Point3d, result: Vector2d): boolean Static Return true if lines (a0,a1) to (b0, b1) have a simple intersection using only xy parts.  
lineSegmentXYUVIntersectionUnbounded(a0: XAndY, aDir: XAndY, b0: XAndY, bDir: XAndY, tol: number = Geometry.smallMetricDistance): { f0: WritableXAndY, f1?: WritableXAndY } | undefined Static Intersect two transverse or overlapping unbounded 2D line segments.  
lineSegmentXYUVOverlapUnbounded(a0: XAndY, aDir: XAndY, b0: XAndY, bDir: XAndY, tol: number = Geometry.smallMetricDistance): { f0: WritableXAndY, f1: WritableXAndY } | undefined Static Intersect two overlapping unbounded 2D lines.  
lineSegmentXYUVTransverseIntersectionUnbounded(ax0: number, ay0: number, ux: number, uy: number, bx0: number, by0: number, vx: number, vy: number, result: Vector2d): boolean Static Return true if the lines have a simple intersection.  
lineXYUVTransverseIntersection(a0: XAndY, aDir: XAndY, b0: XAndY, bDir: XAndY): WritableXAndY | undefined Static Intersect two transverse 2D lines.  
ray3dXYZUVWClosestApproachUnbounded(ax: number, ay: number, az: number, au: number, av: number, aw: number, bx: number, by: number, bz: number, bu: number, bv: number, bw: number, result: Vector2d): boolean Static Return true if the given rays have closest approach (go by each other) in 3d  
solveBilinearPair(a0: number, b0: number, c0: number, d0: number, a1: number, b1: number, c1: number, d1: number): Point2d[] | undefined Static Solve a pair of bilinear equations  

Defined in

Last Updated: 04 June, 2026