#include <c4d_baseobject.h>
Helper class to obtain the length of splines and the natural position along their path.
Public Member Functions | |
| Bool | Init (const SplineObject *op, Int32 segment=0, const Vector *padr=nullptr) |
| Float | UniformToNatural (Float t) |
| Float | GetLength () |
| Float | GetSegmentLength (Int32 a, Int32 b) |
Private Member Functions | |
| SplineLengthData () | |
| ~SplineLengthData () | |
Alloc/Free | |
| static SplineLengthData * | Alloc () |
| static SplineLengthData * | Alloc (const maxon::SourceLocation &) |
| static void | Free (SplineLengthData *&bl) |
|
private |
|
private |
|
static |
|
static |
|
static |
| Bool Init | ( | const SplineObject * | op, |
| Int32 | segment = 0, |
||
| const Vector * | padr = nullptr |
||
| ) |
Initializes the spline length data.
| [in] | op | The spline object to initialize. The caller owns the pointed spline object. |
| [in] | segment | The segment to use. Decides what spline segment the calculations in SplineLengthData methods will be performed on. |
| [in] | padr | For speedup purposes pass a pointer to start of the specified segment in the point array. Otherwise the spline has to search its array manually. |
Gets the natural position along the spline, to be used in SplineObject::GetSplinePoint() and SplineObject::GetSplineTangent(), from a uniform position.
The uniform position is with respect to the actual length of the spline, where the natural position only cares about the interpolation of the curve parameter.
| [in] | t | The uniform position along the spline. |
| Float GetLength | ( | ) |
Gets the length of the spline.