13 #include "geometrymod.h" 24 int firstparam=0,
int step=1 );
28 Coord3 computePosition(
float )
const;
29 Coord3 computeTangent(
float )
const;
48 float directionInfluence()
const;
49 void setTangentInfluence(
float);
51 bool isCircular()
const;
52 bool setCircular(
bool yn);
56 {
return mCast(
int,(param-firstparam)/paramstep); }
75 if (
mIsZero(u,1e-3) )
return *p;
76 else if (
mIsEqual(u,1,1e-3) )
return p[3*di];
78 const float one_minus_u = 1-u;
79 Coord3 interpolpos1 = p[di]*one_minus_u+p[di*2] * u;
81 const Coord3 interpolpos0 = (*p*one_minus_u+p[di]*u) * one_minus_u +
84 interpolpos1 = interpolpos1 * one_minus_u +
85 (p[di*2]*one_minus_u+p[3*di]*u) * u;
87 return interpolpos0*one_minus_u+interpolpos1*u;
95 if (
mIsZero(u,1e-3) )
return p[di]-*p;
96 else if (
mIsEqual(u,1,1e-3) )
return p[3*di]-p[2*di];
98 const float one_minus_u = 1-u;
99 Coord3 interpolpos1 = p[di]*one_minus_u+p[2*di] * u;
101 const Coord3 interpolpos0 = (*p*one_minus_u+p[di]*u) * one_minus_u +
104 interpolpos1 = interpolpos1 * one_minus_u +
105 (p[2*di]*one_minus_u+p[3*di]*u) * u;
107 return interpolpos1-interpolpos0;
#define mExpClass(module)
Definition: commondefs.h:157
A curve that is defined by regularly sampled positions.
Definition: parametriccurve.h:30
float directioninfluence
Definition: cubicbeziercurve.h:64
Coord3 cubicDeCasteljauTangent(const Coord3 *p, char i0, char di, float u)
Definition: cubicbeziercurve.h:91
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
#define mIsZero(x, eps)
Definition: commondefs.h:55
#define mCast(tp, v)
Definition: commondefs.h:120
Coord3 cubicDeCasteljau(const Coord3 *p, char i0, char di, float u)
Definition: cubicbeziercurve.h:72
int firstparam
Definition: cubicbeziercurve.h:60
#define mIsEqual(x, y, eps)
Definition: commondefs.h:56
od_int64 GeomPosID
Definition: geomelement.h:19
3D point or vector
Definition: commontypes.h:57
TypeSet< Coord3 > directions
Definition: cubicbeziercurve.h:63
Set of (small) copyable elements.
Definition: commontypes.h:26
int getIndex(GeomPosID param) const
Definition: cubicbeziercurve.h:55
Class to store ranges in N dimensions.
Definition: ranges.h:208
bool iscircular
Definition: cubicbeziercurve.h:66
Definition: cubicbeziercurve.h:20
TypeSet< Coord3 > positions
Definition: cubicbeziercurve.h:62
int paramstep
Definition: cubicbeziercurve.h:61
Definition: arraytesselator.h:19