/*! \file curve.h \brief A basic 3D curve framework Contains classes to handle curves */ #ifndef _CURVE_H #define _CURVE_H #include "vector.h" //! Bezier Curve /** Class to handle bezier curves in 3-dimesnsional space needed for the Tracking system in OrxOnoX. */ class BezierCurve { private: int nodeCount; Vector curvePoint; struct PathNode { int number; Vector position; PathNode* next; }; PathNode* firstNode; PathNode* currentNode; int ncr(int n, int i); public: BezierCurve (void); ~BezierCurve (void); void addNode (const Vector& newNode); Vector calcPos (float t); Vector calcDir (float t); Vector getPos () const; }; #endif /* _CURVE_H */