API Reference > geometry-core > Curve > CurveCollection CurveCollection Class A CurveCollection is an abstract (non-instantiable) class for various sets of curves with particular structures: CurveChain is a (non-instantiable) intermediate class for a sequence of CurvePrimitive joining head-to-tail. The two instantiable forms of CurveChain are Path - A chain not required to close, and not enclosing a planar area Loop - A chain required to close from last to first so that a planar area is enclosed. ParityRegion -- a collection of coplanar Loops, with "in/out" classification by parity rules UnionRegion -- a collection of coplanar Loops, with "in/out" classification by union rules BagOfCurves -- a collection of AnyCurve with no implied structure. see Curve Collections learning article. Extends GeometryQuery Extended by CurveChain BagOfCurves ParityRegion UnionRegion Methods Name Description constructor(): CurveCollection announceToCurveProcessor(processor: RecursiveCurveProcessor): void Abstract Support method for ICurvePrimitive ... checkForNonLinearPrimitives(): boolean return true if the curve collection has any primitives other than LineSegment3d and LineString3d clone(): undefined | CurveCollection Return a deep copy. cloneEmptyPeer(): CurveCollection Abstract clone an empty collection. cloneStroked(options?: StrokeOptions): AnyCurve Abstract Return a CurveCollection with the same structure but all curves replaced by strokes. cloneTransformed(transform: Transform): undefined | CurveCollection Create a deep copy of transformed curves. cloneWithExpandedLineStrings(): undefined | CurveCollection Create a deep copy with all linestrings expanded to multiple LineSegment3d. closestPoint(spacePoint: Point3d): undefined | CurveLocationDetail Return the closest point on the contained curves collectCurvePrimitives(collectorArray?: CurvePrimitive[], smallestPossiblePrimitives: boolean = false, explodeLineStrings: boolean = false): CurvePrimitive[] Return an array containing only the curve primitives. dgnBoundaryType(): number Abstract Return the boundary type of a corresponding MicroStation CurveVector. extendRange(rangeToExtend: Range3d, transform?: Transform): void Extend (increase) rangeToExtend as needed to include these curves (optionally transformed) getChild(i: number): undefined | AnyCurve Abstract Return a child identified by by index maxGap(): number return the max gap between adjacent primitives in Path and Loop collections. sumLengths(): number Return the sum of the lengths of all contained curves. tryAddChild(child: undefined | AnyCurve): boolean Abstract Try to add a child. tryTransformInPlace(transform: Transform): boolean Apply transform recursively to children createCurveLocationDetailOnAnyCurvePrimitive(source: undefined | GeometryQuery, fraction: number = 0.5): undefined | CurveLocationDetail Static * Find any curve primitive in the source. Inherited methods Name Inherited from Description dispatchToGeometryHandler(handler: GeometryHandler): any Abstract GeometryQuery * "double dispatch" call pattern. isAlmostEqual(other: GeometryQuery): boolean GeometryQuery test for exact structure and nearly identical geometry. isSameGeometryClass(other: GeometryQuery): boolean Abstract GeometryQuery test if (other instanceof this.Type). range(transform?: Transform, result?: Range3d): Range3d GeometryQuery return the range of the entire (tree) GeometryQuery tryTranslateInPlace(dx: number, dy: number = 0.0, dz: number = 0.0): boolean GeometryQuery try to move the geometry by dx,dy,dz areAlmostEqual(a: undefined | GeometryQuery, b: undefined | GeometryQuery): boolean Static GeometryQuery apply instance method isAlmostEqual if both are defined. Properties Name Type Description curveCollectionType AbstractReadonly CurveCollectionType Type discriminator. geometryCategory Readonly "curveCollection" String name for schema properties isAnyRegionType Accessor ReadOnly boolean Return true for planar region types: isClosedPath Accessor ReadOnly boolean Return true for a single-loop planar region type, i.e. isInner boolean Flag for inner loop status. isOpenPath Accessor ReadOnly boolean Return true for a Path, i.e. Inherited properties Name Type Inherited from Description children Accessor ReadOnly undefined | GeometryQuery[] GeometryQuery return GeometryQuery children for recursive queries.* leaf classes do not need to implement. Defined in curve/CurveCollection.ts Line 51 Last Updated: 12 June, 2024