Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
cubicsplines.h
Go to the documentation of this file.
1 #ifndef CUBICSPLINES_H
2 #define CUBICSPLINES_H
3 
4 //Spline
5 /* Cubic spline interpolation functions<p>
6  *
7  * <b>Historique : </b><font size=-1><ul>
8  * <li>16/07/02 - Egg - Added methods to access slope per axis
9  * <li>28/05/00 - Egg - Javadocisation, minor changes & optimizations,
10  * Renamed TSpline to TCubicSpline, added W component
11  * and a bunch of helper methods
12  * <li>20/05/00 - RoC - Created, based on the C source code from Eric
13  * </ul></font>
14  */
15 
16 //#define SPLINE_METHOD1
17 #define SPLINE_METHOD2
18 //#define SPLINE_METHOD3
19 
20 #include "gfx/vec.h"
21 
23 {
24 private:
25 //Private Declarations
26 #ifdef SPLINE_METHOD1
27  double **MatX;
28  double **MatY;
29  double **MatZ;
30  double **MatW;
31  int FNb;
32 #endif
33 #ifdef SPLINE_METHOD2
34  double A, B, C, D, E, F, G, H, I, J, K, L;
35 #endif
36 #ifdef SPLINE_METHOD3
37 #endif
38 
39 public:
40 //Public Declarations
41 /* Creates the spline and declares interpolation points.<p>
42  * Time references go from 0 (first point) to nb-1 (last point), the
43  * first and last reference matrices respectively are used when T is
44  * used beyond this range.<p>
45  * Note : "nil" single arrays are accepted, in this case the axis is
46  * disabled and calculus will return 0 (zero) for this component. */
47  CubicSpline();
48  ~CubicSpline();
49 
50  void createSpline( QVector P0, QVector P1, QVector P2, QVector P3 );
51 //Calculates affine vector at time t.<p>
52  QVector computePoint( double t ) const;
53 };
54 
55 #endif /* CUBICSPLINES_H */
56