/*! \file curve.h \brief A basic 3D curve framework Contains classes to handle curves */ #ifndef _CURVE_H #define _CURVE_H #include "vector.h" class Curve { protected: int nodeCount; Vector curvePoint; float localTime; //!< if the time of one point is asked more than once the programm will not calculate it again. struct PathNode { int number; Vector position; PathNode* next; }; PathNode* firstNode; PathNode* currentNode; public: void addNode (const Vector& newNode); }; //! Bezier Curve /** Class to handle bezier curves in 3-dimesnsional space needed for the Tracking system in OrxOnoX. */ class BezierCurve : public Curve { private: // all from Curve-Class public: BezierCurve (void); ~BezierCurve (void); Vector calcPos (float t); Vector calcDir (float t); Quaternion calcQuat (float t); Vector getPos () const; }; int ncr(int n, int i); #endif /* _CURVE_H */