13 #ifndef __UT_FitCubic_H__
14 #define __UT_FitCubic_H__
58 bool preserveExtrema,
bool use_kupan_slopes=
false);
67 {
return myContainsCurve; }
70 { myCurveType =
type; }
83 void destroySolution();
86 Span *appendCurve(
CubicCurve fcurve,
int islinear);
90 Span **
head, Span **tail,
95 Span **
head, Span **tail,
96 bool preserveExtrema,
bool use_kupan_slopes,
116 bool preserveExtrema);
121 T *chordLengthParameterize(
Vector2 *d,
int f,
int l);
142 return (tmp * tmp * tmp);
148 return (3.0F * u * (tmp * tmp));
154 return (3.0F * u * u * tmp);
UT_StringArray JOINTS head
void setCurveType(utCurveType type)
UT_FitCubicT< float > UT_FitCubic
UT_FitCubicT< fpreal32 > UT_FitCubicF
const Span * getFirstSpan() const
static Vector2 calcCubic(Vector2 *V, fpreal t)
UT_FitCubicT< fpreal > UT_FitCubicR
__hostdev__ uint64_t last(uint32_t i) const
int fitCurve(Vector2 *d, int nPts, int closed, fpreal error2, bool preserveExtrema, bool use_kupan_slopes=false)
UT_FitCubicT< fpreal64 > UT_FitCubicD
void setType(utFitType type)