GrowableXYArray Class

GrowableXYArray manages a (possibly growing) Float64Array to pack xy coordinates.

Extends

Methods

Name Description
constructor(numPoints: number = 8, growthFactor?: number): GrowableXYArray Construct a new GrowablePoint2d array.  
areaXY(): number Sum the signed areas of the projection to xy plane  
back(result?: Point2d): undefined | Point2d Return the last point, or undefined if the array is empty.  
clear(): void Clear all xy data, but leave capacity unchanged.  
clone(): GrowableXYArray Make a copy of the (active) points in this array.  
compareLexicalBlock(ia: number, ib: number): number compare two blocks in simple lexical order.  
component(pointIndex: number, componentIndex: number): number Access a single double at offset within a block.  
copyData(source: number[] | Float64Array, sourceCount?: number, destOffset?: number): { count: number, offset: number } Protected Copy xy points from source array.  
crossProductIndexIndexIndex(originIndex: number, targetAIndex: number, targetBIndex: number): undefined | number Compute the cross product of vectors from from indexed origin to indexed targets i and j  
crossProductXAndYIndexIndex(origin: Readonly<WritableXAndY>, targetAIndex: number, targetBIndex: number): undefined | number Compute the cross product of vectors from from origin to indexed targets i and j  
distance(i: number, j: number): undefined | number Return the distance between two points in the array.  
distanceIndexToPoint(i: number, spacePoint: Point2d): undefined | number Return the distance between an array point and the input point.  
ensureCapacity(pointCapacity: number, applyGrowthFactor: boolean = true): void If necessary, increase the capacity to a new pointCount.  
extendRange(rangeToExtend: Range2d, transform?: Transform): void Extend a Range2d, optionally transforming the points.  
float64Data(): Float64Array Return the raw packed data.  
front(result?: Point2d): undefined | Point2d Return the first point, or undefined if the array is empty.  
getPoint2dArray(): Point2d[] Gather all points as a Point2d[]  
getPoint2dAtCheckedPointIndex(pointIndex: number, result?: Point2d): undefined | Point2d copy xy into strongly typed Point2d  
getPoint2dAtUncheckedPointIndex(pointIndex: number, result?: Point2d): Point2d Get a point by index, strongly typed as a Point2d.  
getPoint3dArray(z: number = 0): Point3d[] Copy all points into a simple array of Point3d with given z.  
getVector2dAtCheckedVectorIndex(vectorIndex: number, result?: Vector2d): undefined | Vector2d copy xy into strongly typed Vector2d  
getXAtUncheckedPointIndex(pointIndex: number): number Get x coordinate by point index, with no index checking  
getYAtUncheckedPointIndex(pointIndex: number): number Get y coordinate by index, with no index checking  
interpolate(i: number, fraction: number, j: number, result?: Point2d): undefined | Point2d Compute a point at fractional coordinate between points i and j  
isAlmostEqual(other: GrowableXYArray, tolerance: number = Geometry.smallMetricDistance): boolean Toleranced equality test  
isIndexValid(index: number): boolean Test if index is valid for an xy (point or vector) within this array  
multiplyMatrix3dInPlace(matrix: Matrix3d): void multiply each xy (as a vector) by matrix, replace values.  
multiplyTransformInPlace(transform: Transform): void multiply each point by the transform, replace values.  
pop(): void Remove one point from the back.  
push(toPush: Readonly<WritableXAndY>): void push a point to the end of the array  
pushAll(points: Readonly<WritableXAndY>[]): void push all points of an array  
pushAllXYAndZ(points: GrowableXYZArray | Readonly<WritableXYAndZ>[]): void push all points of an array  
pushFromGrowableXYArray(source: GrowableXYArray, sourceIndex?: number): number push coordinates from the source array to the end of this array.  
pushInterpolatedFromGrowableXYArray(source: GrowableXYArray, i: number, fraction: number, j: number): void * Compute a point at fractional coordinate between points i and j of source  
pushWrap(numWrap: number): void Replicate numWrap xy values from the front of the array as new values at the end.  
pushXY(x: number, y: number): void push a point given by x,y coordinates  
resize(pointCount: number, padWithZero?: boolean): void * If pointCount is less than current length, just reset current length to pointCount, effectively trimming active points but preserving original capacity.  
reverseInPlace(): void reverse the order of points.  
scaleInPlace(factor: number): void Multiply each x,y by the scale factor.  
setAtCheckedPointIndex(pointIndex: number, value: Readonly<WritableXAndY>): boolean Set the coordinates of a single point.  
setXYAtCheckedPointIndex(pointIndex: number, x: number, y: number): boolean Set the coordinates of a single point given as coordinates.  
setXYZAtCheckedPointIndex(pointIndex: number, x: number, y: number): boolean Set the coordinates of a single point given as coordinates. Deprecated  
sortIndicesLexical(): Uint32Array Return an array of block indices sorted per compareLexicalBlock function  
sumLengths(): number sum the lengths of segments between points.  
transferFromGrowableXYArray(destIndex: number, source: GrowableXYArray, sourceIndex: number): boolean Read coordinates from source array, place them at index within this array.  
tryTransformInverseInPlace(transform: Transform): boolean multiply each point by the transform, replace values.  
vectorIndexIndex(i: number, j: number, result?: Vector2d): undefined | Vector2d Compute a vector from index origin i to indexed target j  
vectorXAndYIndex(origin: Readonly<WritableXAndY>, j: number, result?: Vector2d): undefined | Vector2d Compute a vector from origin to indexed target j  
create(data: GrowableXYZArray | Readonly<WritableXAndY>[]): GrowableXYArray Static Create an array populated from  
createArrayOfGrowableXYZArray(data: MultiLineStringDataVariant): undefined | GrowableXYZArray[] Static Restructure MultiLineStringDataVariant as array of GrowableXYZArray  
createFromGrowableXYZArray(source: GrowableXYZArray, transform?: Transform, dest?: GrowableXYArray): GrowableXYArray Static Create an array of xy points from source xyz points.  
isAlmostEqual(dataA: undefined | GrowableXYArray, dataB: undefined | GrowableXYArray): boolean Static Test for nearly equal arrays.  

Properties

Name Type Description
float64Length Accessor ReadOnly number Return the number of float64 in use.  
length Accessor number The number of points in use.  

Defined in

Last Updated: 19 August, 2022