ArraysAndInterfaces

These classes support array operations and inheritance-based algorithms.

  • Arrays
  • GrowableArray -- A carrier for a Float64Array, with methods that hide reallocation of the underlying array as contents are added.
  • Point2dArray, Point3dArray, Point4dArray, Vector3dArray -- miscellaneous operations on arrays of 2d and 3d points.
  • Interfaces
  • GeometryHandler -- a double-dispatch protocol used for efficient implementation of algorithms that work on many geometry types.

Classes

Name Description  
GeometryHandler GeometryHandler defines the base abstract methods for double-dispatch geometry computation.  
GrowableBlockedArray Array of contiguous doubles, indexed by block number and index within block.  
GrowableFloat64Array A GrowableFloat64Array is Float64Array accompanied by a count of how many of the array's entries are considered in use.  
GrowableXYArray GrowableXYArray manages a (possibly growing) Float64Array to pack xy coordinates.  
GrowableXYZArray GrowableXYArray manages a (possibly growing) Float64Array to pack xy coordinates.  
IndexedCollectionInterval Object describing a (contiguous) subset of indices to an IndexedXYZCollection  
IndexedReadWriteXYZCollection abstract base class extends IndexedXYZCollection, adding methods to push, peek, and pop, and rewrite.  
IndexedXYCollection abstract base class for access to XY data with indexed reference.  
IndexedXYZCollection abstract base class for read-only access to XYZ data with indexed reference.  
IndexedXYZCollectionInterval Reference to an interval of the indices of an IndexedXYZCollection.  
NullGeometryHandler NullGeometryHandler is a base class for dispatching various geometry types to application specific implementation  
Point3dArrayCarrier Helper object to access members of a Point3d[] in geometric calculations.  
RecurseToCurvesGeometryHandler Implement GeometryHandler methods, but override handleCurveCollection so that all methods  

Interfaces

Name Description  
IStrokeHandler IStrokeHandler is an interface with methods to receive data about curves being stroked.  
UVSurface Interface with methods for mapping (u,v) fractional coordinates to surface xyz and derivatives.  
UVSurfaceIsoParametricDistance Interface for queries of distance-along in u and v directions  

Type Aliases

Name Description  
BlockComparisonFunction Signature for a function which does lexical comparison of blockSize consecutive values as 2 starting indices.  
LineStringDataVariant Type for use as signature for xyz data of a single linestring appearing in a parameter list.  
MultiLineStringDataVariant Type for use as signature for multiple xyz data of multiple linestrings appearing in a parameter list.  
OptionalGrowableFloat64Array Type for a OptionalGrowableFloat64Array or undefined.  

Last Updated: 13 May, 2024