IndexedXYZCollection Class

abstract base class for read-only access to XYZ data with indexed reference.

  • This allows algorithms to work with Point3d[] or GrowableXYZ.

** GrowableXYZArray implements these for its data. ** Point3dArrayCarrier carries a (reference to) a Point3d[] and implements the methods with calls on that array reference.

  • In addition to "point by point" accessors, there abstract members compute commonly useful vector data "between points".
  • Methods that create vectors among multiple indices allow callers to avoid creating temporaries.

Extended by

Methods

Name Description
accumulateCrossProductIndexIndexIndex(origin: number, indexA: number, indexB: number, result: Vector3d): void Abstract Return the cross product of vectors from origin point at indexA to target points at indexB and indexC  
accumulateScaledXYZ(index: number, scale: number, sum: Point3d): void Abstract Accumulate scale times the x,y,z values at index.  
crossProductIndexIndexIndex(origin: number, indexA: number, indexB: number, result?: Vector3d): Vector3d | undefined Abstract Return the cross product of vectors from origin to points at indexA and indexB  
crossProductXYAndZIndexIndex(origin: XYAndZ, indexA: number, indexB: number, result?: Vector3d): Vector3d | undefined Abstract Return the cross product of the vectors from origin to points at indexA and indexB  
cyclicIndex(i: number): number Adjust index into range by modulo with the length.  
distanceIndexIndex(index0: number, index1: number): number | undefined Abstract Return distance between indicated points.  
distanceSquaredIndexIndex(index0: number, index1: number): number | undefined Abstract Return distance squared between indicated points.  
getPoint3dAtCheckedPointIndex(index: number, result?: Point3d): Point3d | undefined Abstract Return the point at index as a strongly typed Point3d.  
getPoint3dAtUncheckedPointIndex(index: number, result?: Point3d): Point3d Abstract Return the point at index as a strongly typed Point3d, without checking the point index validity.  
getRange(): Range3d Return the range of the points.  
getVector3dAtCheckedVectorIndex(index: number, result?: Vector3d): Vector3d | undefined Abstract Get from index as a strongly typed Vector3d.  
getXAtUncheckedPointIndex(pointIndex: number): number Abstract access x of indexed point  
getYAtUncheckedPointIndex(pointIndex: number): number Abstract access y of indexed point  
getZAtUncheckedPointIndex(pointIndex: number): number Abstract access z of indexed point  
vectorIndexIndex(indexA: number, indexB: number, result?: Vector3d): Vector3d | undefined Abstract Return a vector from the point at indexA to the point at indexB  
vectorXYAndZIndex(origin: XYAndZ, indexB: number, result?: Vector3d): Vector3d | undefined Abstract Return a vector from origin to the point at indexB  

Properties

Name Type Description
length Accessor ReadOnly number read-only property for number of XYZ in the collection.  
points Accessor ReadOnly Iterable<Point3d> Return iterator over the points in this collection.  

Defined in

Last Updated: 13 June, 2024