API Reference > geometry-core > ArraysAndInterfaces > IndexedXYZCollection 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 IndexedReadWriteXYZCollection 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 core/geometry/src/geometry3d/IndexedXYZCollection.ts Line 47 Last Updated: 13 June, 2024