CurveCollection Class
A CurveCollection is an abstract (non-instantiable) class for various sets of curves with particular structures:
- CurveChainis a (non-instantiable) intermediate class for a sequence of- CurvePrimitivejoining head-to-tail. The two instantiable forms of- CurveChainare- 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- AnyCurvewith no implied structure.
see Curve Collections learning article.
Extends
Extended by
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(): 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(): 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) rangeToExtendas 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. | |
| projectedParameterRange(ray: Ray3d | Vector3d, lowHigh?: Range1d): undefined | Range1d | Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection. | |
| 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 54
Last Updated: 20 June, 2023