IndexedXYZCollection Class
Abstract base class for read-only access to XYZ data with indexed reference.
- This allows algorithms to work with Point3d[] or GrowableXYZArray.
- 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, other 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 | |
|---|---|---|
| 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. | |
| almostEqualIndexIndex(index0: number, index1: number, tolerance: number = Geometry.smallMetricDistance): undefined | boolean | Test whether the indexed points are equal within tolerance. | |
| almostEqualXYIndexIndex(index0: number, index1: number, tolerance: number = Geometry.smallMetricDistance): undefined | boolean | Test whether the xy-coordinates of the indexed points are equal within tolerance. | |
| back(result?: Point3d): undefined | Point3d | Return the last point, or undefined if the array is empty. | |
| 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. |
|
| crossProductIndexIndexXYAndZ(origin: number, indexA: number, targetB: Readonly<WritableXYAndZ>, result?: Vector3d): undefined | Vector3d | Return the cross product of the vectors from origin to the point at indexA and to targetB. |
|
| 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. | |
| distanceSquaredIndexXYAndZ(index0: number, target: Readonly<WritableXYAndZ>): undefined | number | Return distance squared between the point at index0 and target. | |
| dotProductIndexIndexIndex(origin: number, indexA: number, indexB: number): undefined | number | Return the dot product of the vectors from the point at origin to the points at indexA and indexB. |
|
| dotProductIndexIndexXYAndZ(origin: number, indexA: number, targetB: Readonly<WritableXYAndZ>): undefined | number | Return the dot product of the vectors from the point at origin to the point at indexA and to targetB. |
|
| findOrderedDuplicates(tolerance: number = Geometry.smallMetricDistance, preserveLast: boolean = false): number[] | For each subset of k successive points within tolerance of the first point in the subset, return the indices of |
|
| front(result?: Point3d): undefined | Point3d | Return the first point, or undefined if the array is empty. | |
| 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(transform?: Transform, result?: Range3d): 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. | |
| interpolateIndexIndex(index0: number, fraction: number, index1: number, result?: Point3d): undefined | Point3d | Interpolate the points at the given indices. | |
| isIndexValid(index: number): boolean | Test if index is valid for an xyz within this array. | |
| linearCombination(scales: number[], result?: Point3d | Vector3d): XYZ | Compute the linear combination s of the indexed p_i and given scales s_i. | |
| vectorIndexIndex(indexA: number, indexB: number, result?: Vector3d): undefined | Vector3d Abstract | Return a vector from the point at indexA to the point at indexB. |
|
| vectorIndexXYAndZ(indexA: number, target: Readonly<WritableXYAndZ>, result?: Vector3d): undefined | Vector3d | Return a vector from the point at indexA to target. |
|
| 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 Abstract ReadOnly | number | Read-only property for number of XYZ in the collection. | |
| points Accessor ReadOnly | Iterable<Point3d, any, any> | Return iterator over the points in this collection. |
Defined in
Last Updated: 28 October, 2025
Found something wrong, missing, or unclear on this page? Raise an issue in our repo.