source:
orxonox.OLD/orxonox/branches/bezierTrack/src/curve.h
@
3162
| Last change on this file since 3162 was 3028, checked in by bensch, 21 years ago | |
|---|---|
| File size: 967 bytes | |
| Rev | Line | |
|---|---|---|
| [3018] | 1 | /*! |
| 2 | \file curve.h | |
| 3 | \brief A basic 3D curve framework | |
| 4 | ||
| 5 | Contains classes to handle curves | |
| 6 | */ | |
| 7 | ||
| 8 | #ifndef _CURVE_H | |
| 9 | #define _CURVE_H | |
| 10 | ||
| 11 | #include "vector.h" | |
| 12 | ||
| 13 | ||
| [3019] | 14 | |
| 15 | class Curve | |
| [3018] | 16 | { |
| [3019] | 17 | protected: |
| [3018] | 18 | int nodeCount; |
| 19 | Vector curvePoint; | |
| [3023] | 20 | float localTime; //!< if the time of one point is asked more than once the programm will not calculate it again. |
| [3019] | 21 | |
| [3018] | 22 | struct PathNode |
| 23 | { | |
| 24 | int number; | |
| 25 | Vector position; | |
| 26 | PathNode* next; | |
| 27 | }; | |
| 28 | ||
| 29 | PathNode* firstNode; | |
| 30 | PathNode* currentNode; | |
| 31 | ||
| [3019] | 32 | public: |
| [3018] | 33 | |
| [3019] | 34 | void addNode (const Vector& newNode); |
| 35 | ||
| 36 | }; | |
| 37 | ||
| 38 | //! Bezier Curve | |
| 39 | /** | |
| 40 | Class to handle bezier curves in 3-dimesnsional space | |
| 41 | ||
| 42 | needed for the Tracking system in OrxOnoX. | |
| 43 | */ | |
| 44 | class BezierCurve : public Curve | |
| 45 | { | |
| 46 | private: | |
| 47 | // all from Curve-Class | |
| [3018] | 48 | public: |
| 49 | BezierCurve (void); | |
| 50 | ~BezierCurve (void); | |
| [3028] | 51 | Vector calcPos (float t); |
| 52 | Vector calcDir (float t); | |
| 53 | Quaternion calcQuat (float t); | |
| [3018] | 54 | |
| [3028] | 55 | |
| [3018] | 56 | Vector getPos () const; |
| 57 | }; | |
| 58 | ||
| [3019] | 59 | int ncr(int n, int i); |
| [3018] | 60 | |
| 61 | ||
| 62 | #endif /* _CURVE_H */ |
Note: See TracBrowser
for help on using the repository browser.










