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 constructor(): IndexedXYZCollection 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): undefined | Vector3d Abstract Return the cross product of vectors from origin to points at indexA and indexB crossProductXYAndZIndexIndex(origin: Readonly<WritableXYAndZ>, indexA: number, indexB: number, result?: Vector3d): undefined | Vector3d 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): undefined | number Abstract Return distance between indicated points. distanceSquaredIndexIndex(index0: number, index1: number): undefined | number Abstract Return distance squared between indicated points. getArray(): Point3d[] convert to Point3d[] getPoint3dAtCheckedPointIndex(index: number, result?: Point3d): undefined | Point3d 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): undefined | Vector3d 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): undefined | Vector3d Abstract Return a vector from the point at indexA to the point at indexB vectorXYAndZIndex(origin: Readonly<WritableXYAndZ>, indexB: number, result?: Vector3d): undefined | Vector3d Abstract Return a vector from origin to the point at indexB Properties Name Type Description length Accessor AbstractReadOnly 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 geometry3d/IndexedXYZCollection.ts Line 47 Last Updated: 12 June, 2024