# Curve

Curves in the GeometryQuery hierarchy: LineSegment3d, LineString3d, Arc3d, TransitionSpiral3d

- CurvePrimitive -- base class for parametric curves
- LineSegment3d -- a (bounded) portion of an unbounded line

- Arc3d -- a circular or elliptic arc

- LineString3d -- a sequence of points joined by line segments

- TransitionSpiral -- controlled transition between curvatures

- Support classes
- PointString3d -- a sequence of isolated points
- StrokeOptions -- tolerances to describe stroking accuracy
- RecursiveCurveProcessor, RecursiveCurveProcessorWithStack -- algorithmic support for trees with CurvePrimitives at the leaf level.

## Classes

Name | Description |
---|---|

AnnotatedLineString3d | An AnnotatedLineString3d is a linestring with additional data attached to each point |

Arc3d | Circular or elliptic arc. |

BagOfCurves | * A `BagOfCurves` object is a collection of `AnyCurve` objects. |

ConstructCurveBetweenCurves | Context for constructing a curve that is interpolated between two other curves. |

CoordinateXYZ | A Coordinate is a persistable Point3d |

CurveChain | Shared base class for use by both open and closed paths. |

CurveChainWithDistanceIndex | `CurveChainWithDistanceIndex` is a CurvePrimitive whose fractional parameterization is proportional to true |

CurveCollection | * A `CurveCollection` is an abstract (non-instantiable) class for various sets of curves with particular structures: |

CurveCurve | |

CurveLocationDetail | CurveLocationDetail carries point and paramter data about a point evaluated on a curve. |

CurveLocationDetailArrayPair | Data bundle for a pair of arrays of CurveLocationDetail structures such as produced by CurveCurve,IntersectXY and |

CurveLocationDetailPair | A pair of CurveLocationDetail. |

CurvePrimitive | A curve primitive is bounded |

CylindricalQuery | Context for computing geometry range around an axis. |

GeometryQuery | Queries to be supported by Curve, Surface, and Solid objects |

LineSegment3d | A LineSegment3d is: |

LineString3d | * A LineString3d (sometimes called a PolyLine) is a sequence of xyz coordinates that are to be joined by line segments. |

Loop | A `Loop` is a curve chain that is the boundary of a closed (planar) loop. |

ParityRegion | * A `ParityRegion` is a collection of `Loop` objects. |

Path | * A `Path` object is a collection of curves that join head-to-tail to form a path. |

PointString3d | A PointString3d is an array of points. |

RecursiveCurveProcessor | base class for detailed traversal of curve artifacts. |

RecursiveCurveProcessorWithStack | base class for detailed traversal of curve artifacts, maintaining a stack that shows complete path to each artifact. |

StrokeOptions | tolerance blob for various stroking methods. |

TransitionConditionalProperties | A transition spiral is a curve defined by its curvature, with the curvature function symmetric about midpoint. |

TransitionSpiral3d | |

UnionRegion | * A `UnionRegion` is a collection of other planar region types -- `Loop` and `ParityRegion` . |

## Enumerations

Name | Description |
---|---|

CurveIntervalRole | An enumeration of special conditions being described by a CurveLocationDetail. |

CurveSearchStatus | Return code for CurvePrimitive method `moveSignedDistanceFromFraction` |

## Type Aliases

Name | Description |
---|---|

AnnounceCurvePrimitive | |

AnnounceNumberNumber | |

AnnounceNumberNumberCurvePrimitive | Type for callback function which announces a pair of numbers, such as a fractional interval, along with a containing CurvePrimitive. |

AnyCurve | |

AnyRegion |

Last Updated: 19 February, 2019