Path Class
- A Pathobject is a collection of curves that join head-to-tail to form a path.
- A Pathobject does not bound a planar region. UseLoopto indicate region bounding.
@see Curve Collections learning article.
Extends
Methods
| Name | Description | |
|---|---|---|
| constructor(): Path | Construct an empty path. | |
| announceToCurveProcessor(processor: RecursiveCurveProcessor, indexInParent: number-1): void | Invoke processor.announcePath(this, indexInParent) | |
| cloneEmptyPeer(): Path | Clone as a new Pathwith no primitives | |
| cloneStroked(options?: StrokeOptions): Path | Return a deep copy, with leaf-level curve primitives stroked. | |
| closestPoint(spacePoint: Point3d, extend: VariantCurveExtendParameterfalse, result?: CurveLocationDetail): undefined | CurveLocationDetail | Return the closest point on the contained curves. | |
| dgnBoundaryType(): number | Return the boundary type (1) of a corresponding MicroStation CurveVector | |
| dispatchToGeometryHandler(handler: GeometryHandler): any | Second step of double dispatch: call handler.handlePath(this) | |
| isSameGeometryClass(other: GeometryQuery): boolean | Test if otheris an instance ofPath | |
| create(...curves: Point3d[] | CurvePrimitive[]): Path Static | Create a path from a variable length list of curve primitives | |
| createArray(curves: CurvePrimitive[]): Path Static | Create a path from a an array of curve primitives. | 
Inherited methods
| Name | Inherited from | Description | 
|---|---|---|
| checkForNonLinearPrimitives(): boolean Inherited | CurveChain | Return true if the curve collection has any primitives other than LineSegment3d and LineString3d | 
| childIndex(target: CurvePrimitive, alsoSearchProxies?: boolean): undefined | number Inherited | CurveChain | Return the index where target is found in the array of children. | 
| clone(): CurveCollection Inherited | CurveChain | Return a deep copy. | 
| cloneTransformed(transform: Transform): undefined | CurveCollection Inherited | CurveChain | Create a deep copy of transformed curves. | 
| cloneWithExpandedLineStrings(): CurveCollection Inherited | CurveChain | Create a deep copy with all linestrings broken down into multiple LineSegment3d. | 
| collectCurvePrimitives(collectorArray?: CurvePrimitive[], smallestPossiblePrimitives: booleanfalse, explodeLineStrings: booleanfalse): CurvePrimitive[] Inherited | CurveChain | Return an array containing all CurvePrimitives in the instance. | 
| cyclicCurvePrimitive(index: number, cyclic: booleantrue): undefined | CurvePrimitive Inherited | CurveChain | Return the curve primitive at the given index, optionally usingmoduloto mapindexto the cyclic indexing. | 
| endPoint(result?: Point3d): undefined | Point3d Inherited | CurveChain | Return the end point of the curve chain (end point of the last child). | 
| extendRange(range: Range3d, transform?: Transform): void Inherited | CurveChain | Invoke curve.extendRange(range, transform)for each child | 
| getChild(i: number): undefined | CurvePrimitive Inherited | CurveChain | Return a child by index | 
| getPackedStrokes(options?: StrokeOptions): undefined | GrowableXYZArray Inherited | CurveChain | Stroke the chain into a simple xyz array. | 
| isAlmostEqual(other: GeometryQuery): boolean Inherited | CurveChain | Test for exact structure and nearly identical geometry. | 
| isAnyRegion(): this is AnyRegion Inherited | CurveChain | Type guard for AnyRegion | 
| isLoop(): this is Loop Inherited | CurveChain | Type guard for Loop | 
| isPath(): this is Path Inherited | CurveChain | Type guard for Path | 
| maxGap(): number Inherited | CurveChain | Return the max gap between adjacent primitives in Path and Loop collections. | 
| primitiveIndexAndFractionToCurveLocationDetailPointAndDerivative(index: number, fraction: number, cyclic: booleanfalse, result?: CurveLocationDetail): undefined | CurveLocationDetail Inherited | CurveChain | Evaluate an indexed curve at a fraction. | 
| projectedParameterRange(ray: Vector3d | Ray3d, lowHigh?: Range1d): undefined | Range1d Inherited | CurveChain | Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters | 
| range(transform?: Transform, result?: Range3d): Range3d Inherited | CurveChain | Return the range of the entire GeometryQuery tree. | 
| reverseChildrenInPlace(): void Inherited | CurveChain | Reverse each child curve (in place) | 
| startPoint(result?: Point3d): undefined | Point3d Inherited | CurveChain | Return the start point of the curve chain (start point of the first child). | 
| sumLengths(): number Inherited | CurveChain | Return the sum of the lengths of all contained curves. | 
| tryAddChild(child: AnyCurve): boolean Inherited | CurveChain | Add a child curve. | 
| tryTransformInPlace(transform: Transform): boolean Inherited | CurveChain | Apply transform recursively to children | 
| tryTranslateInPlace(dx: number, dy: number0.0, dz: number0.0): boolean Inherited | CurveChain | Try to move the geometry by dx,dy,dz. | 
| areAlmostEqual(a: GeometryQuery, b: GeometryQuery): boolean Static Inherited | CurveChain | Apply instance method isAlmostEqual if both are defined. | 
| createCurveLocationDetailOnAnyCurvePrimitive(source: GeometryQuery, fraction: number0.5): undefined | CurveLocationDetail Static Inherited | CurveChain | Find any CurvePrimitive in the source and evaluate it at the given fraction. | 
Properties
| Name | Type | Description | |
|---|---|---|---|
| curveCollectionType Readonly | "path" | String name for schema properties | 
Inherited properties
| Name | Type | Inherited from | Description | 
|---|---|---|---|
| _curves Protected Inherited | CurvePrimitive[] | CurveChain | The curve primitives in the chain. | 
| children Accessor Inherited ReadOnly | CurvePrimitive[] | CurveChain | Return the array of CurvePrimitive | 
| geometryCategory Readonly Inherited | "curveCollection" | CurveChain | String name for schema properties | 
| isAnyRegionType Accessor Inherited ReadOnly | boolean | CurveChain | Return true for planar region types: * Loop* ParityRegion* UnionRegion | 
| isClosedPath Accessor Inherited ReadOnly | boolean | CurveChain | Return true for a single-loop planar region type, i.e. Loop.* This is NOT a test for physical closure of a Path. | 
| isInner Inherited | boolean | CurveChain | Flag for inner loop status. | 
| isOpenPath Accessor Inherited ReadOnly | boolean | CurveChain | Return true for a Path, i.e. a chain of curves joined head-to-tail | 
Defined in
- curve/Path.ts Line 28
Last Updated: 24 June, 2025
Found something wrong, missing, or unclear on this page? Raise an issue in our repo.