The Ge library includes representation for composite curves, which are a set of numbers of end-to-end
connected curves. Each component curve of the composite curve is a bounded non-closed curve, and neither
infinite lines nor rays can be used as component curves. All component curves of 2D composite curves must
lie on the same plane, and 3D curves can consist of curves that are not on the same plane.
Composite curves in 2D and 3D space are represented by the OdGeCompositeCurve2d and OdGeCompositeCurve3d
classes respectively. This topic describes the most commonly used operations with 3D composite curves; the
functionality of 2D curves is similar to that of 3D.
An OdGeCompositeCurve3d object contains a list of pointers to the component curves. The parameter at the
start of the composite curve is 0.0. The parameter at any point along the composite curve is the approximate
length of the composite curve up to that point.
A composite curve can be constructed using one of the following constructors:
OdGeCompositeCurve3d() — Default constructor. Constructs a composite curve that consists of a single subcurve: a line segment from (0,0,0) to (1,0,0).
OdGeCompositeCurve3d(const OdGeCompositeCurve3d& source) — Creates a composite curve cloned from the source OdGeCompositeCurve3d object.
OdGeCompositeCurve3d(const OdGeCurve3dPtrArray& curveList) — Creates a composite curve from the list of subcurves.
OdGeCompositeCurve3d(const OdGeCurve3d* subCurves, OdUInt32 numSubCurves) — Creates a composite curve using the specified number of curves from the subcurves list.
All curves from the curves array must be connected at their end points; constructors don't check.
For example, the following creates a composite curve that consists of two line segments:
The OdGeCompositeCurve3d is derived from the OdGeCurve3d class, so composite curve objects support common
3D curve functionality and additionally contain a set of specific methods.
You can get the list of all component curves using getCurveList() method that gets an array of pointers to
subcurves comprising the composite curve:
Using the globalToLocalParam() you can get a parameter value on a subcurve, and the index of that subcurve
corresponding to the specified parameter on the whole composite curve:
double local = compCurve3d.globalToLocalParam(4.0, index);
Backwards, localToGlobalParam() returns the parameter on the composite curve corresponding to the specified
parameter on the subcurve with a given index:
double global = compCurve3d.localToGlobalParam(1.0, 0)