20 void setKey(
int k,
float time,
const Vector3& pos,
float tension = 0.5);
35 void setKey(
int k,
float time,
const Vector3& pos);
36 inline void setCPIn(
int k,
const Vector3& pos) { getCPIn(k) = pos; }
37 inline void setCPOut(
int k,
const Vector3& pos) { getCPOut(k) = pos; }
38 void smoothKey(
int k,
float tension = 0.5,
bool smooth_wrap =
false);
39 void setKeyInTangent(
int k,
const Vector3& tang);
40 void setKeyOutTangent(
int k,
const Vector3& tang);
54 void setKey(
int k,
float time,
const Vector3& pos,
55 float tension=0.5,
float continuity=1.0,
float bias=0.0);
70 void setKey(
int k,
float time,
const Quaternion& rot);
71 void smoothKey(
int k,
float tension = 0.5,
bool smooth_wrap =
false);
74 virtual void eval(
int seg,
float u,
Quaternion& out)
const;
86 template <
class PathRot,
class PathTrans>
97 return eval(ri,ti,r,t);
103 rotation.evaluate(ri,r);
104 translation.evaluate(ti,t);
106 if(ri.t < beginTime())
return SplineTimeBase::Before;
107 if(ri.t > endTime())
return SplineTimeBase::After;
108 return SplineTimeBase::During;
111 inline float beginTime()
const {
return min(translation.beginTime(),rotation.beginTime()); }
112 inline float endTime()
const {
return max(translation.endTime(),rotation.endTime()); }
113 inline float length()
const {
return endTime() - beginTime();}
116 PathTrans translation;
A 3D vector class.
Definition: math3d/primitives.h:136
3D rotation representations.
Class declarations for useful 3D math types.
Quaternion, a.k.a. Euler parameter, 3D rotation parameterization.
Definition: rotation.h:131
Complex quaternion class (w + ix + jy + kz).
Definition: complex.h:133