mathglpp::GLCubicHermiteCurve4< T > Class Template Reference

Collaboration diagram for mathglpp::GLCubicHermiteCurve4< T >:

Collaboration graph
[legend]
List of all members.

Detailed Description

template<typename T>
class mathglpp::GLCubicHermiteCurve4< T >

Definition at line 34 of file CubicHermiteCurve.h.

Public Types

enum  { D = 4 }
enum  { D = 4 }
typedef T value_type
typedef GLVector4< value_typevector_type
typedef GLMatrix< value_typematrix_type
typedef T value_type
typedef GLVector4< value_typevector_type
typedef GLMatrix< value_typematrix_type

Public Member Functions

 GLCubicHermiteCurve4 (const value_type *cpoints)
 Create and premultiply a basis matrix for later interpolation, cpoints must not be NULL!!!!
 GLCubicHermiteCurve4 (const vector_type *cpoints)
 Create and premultiply a basis matrix for later interpolation, cpoints must not be NULL!!!!
 GLCubicHermiteCurve4 (const vector_type &c0, const vector_type &c1, const vector_type &c2, const vector_type &c3)
 Create and premultiply a basis matrix for later interpolation, cpoints must not be NULL!!!!
 GLCubicHermiteCurve4 (const GLCubicHermiteCurve4 &hc)
 ~GLCubicHermiteCurve4 ()
 Destroy the basis matrix.
void glVertex (GLclampf interp) const
 OpenGL interface for vertex generation, interp : [0,1].
vector_type interpolate (GLclampf interp) const
 GLVector interface for vertex generation, interp : [0,1].
void interpolate (GLclampf interp, value_type *vertex) const
 GLVector interface for vertex generation, interp : [0,1].
vector_type operator() (GLclampf interp) const
void operator() (GLclampf interp, value_type *v) const
 GLCubicHermiteCurve4 (const value_type *cpoints)
 Create and premultiply a basis matrix for later interpolation, cpoints must not be NULL!!!!
 GLCubicHermiteCurve4 (const vector_type *cpoints)
 Create and premultiply a basis matrix for later interpolation, cpoints must not be NULL!!!!
 GLCubicHermiteCurve4 (const vector_type &c0, const vector_type &c1, const vector_type &c2, const vector_type &c3)
 Create and premultiply a basis matrix for later interpolation, cpoints must not be NULL!!!!
 GLCubicHermiteCurve4 (const GLCubicHermiteCurve4 &hc)
 ~GLCubicHermiteCurve4 ()
 Destroy the basis matrix.
void glVertex (GLclampf interp) const
 OpenGL interface for vertex generation, interp : [0,1].
vector_type interpolate (GLclampf interp) const
 GLVector interface for vertex generation, interp : [0,1].
void interpolate (GLclampf interp, value_type *vertex) const
 GLVector interface for vertex generation, interp : [0,1].
vector_type operator() (GLclampf interp) const
void operator() (GLclampf interp, value_type *v) const


Member Enumeration Documentation

template<typename T>
anonymous enum

Enumerator:
D 

Definition at line 37 of file CubicHermiteCurve.h.

00037 { D = 4 };

template<typename T>
anonymous enum

Enumerator:
D 

Definition at line 37 of file GLCubicHermiteCurve.h.

00037 { D = 4 };


Constructor & Destructor Documentation

template<typename T>
mathglpp::GLCubicHermiteCurve4< T >::GLCubicHermiteCurve4 ( const value_type cpoints  )  [inline]

Create and premultiply a basis matrix for later interpolation, cpoints must not be NULL!!!!

Column major so it seems like it is transposed

Pre multiply

Definition at line 43 of file CubicHermiteCurve.h.

00044     :basis(cpoints)
00045     {
00047         static const value_type coeffs[16] =
00048             {  1,  0,  0,  0,
00049                0,  1,  0,  0,
00050               -3, -2,  3, -1,
00051                2,  1, -2,  1 };
00052 
00054         basis *= matrix_type(coeffs);
00055     }

template<typename T>
mathglpp::GLCubicHermiteCurve4< T >::GLCubicHermiteCurve4 ( const vector_type cpoints  )  [inline]

Create and premultiply a basis matrix for later interpolation, cpoints must not be NULL!!!!

Column major so it seems like it is transposed

Pre multiply

Definition at line 58 of file CubicHermiteCurve.h.

References mathglpp::GLVector4< T >::copyTo().

00059     :basis()
00060     {
00062         static const value_type coeffs[16] =
00063             {  1,  0,  0,  0,
00064                0,  1,  0,  0,
00065               -3, -2,  3, -1,
00066                2,  1, -2,  1 };
00067 
00068         cpoints[0].copyTo(&basis[0]);
00069         cpoints[1].copyTo(&basis[4]);
00070         cpoints[2].copyTo(&basis[8]);
00071         cpoints[3].copyTo(&basis[12]);
00072 
00074         basis *= matrix_type(coeffs);
00075     }

Here is the call graph for this function:

template<typename T>
mathglpp::GLCubicHermiteCurve4< T >::GLCubicHermiteCurve4 ( const vector_type c0,
const vector_type c1,
const vector_type c2,
const vector_type c3 
) [inline]

Create and premultiply a basis matrix for later interpolation, cpoints must not be NULL!!!!

Column major so it seems like it is transposed

Pre multiply

Definition at line 78 of file CubicHermiteCurve.h.

References mathglpp::GLVector4< T >::copyTo().

00079     :basis()
00080     {
00082         static const value_type coeffs[16] =
00083             {  1,  0,  0,  0,
00084                0,  1,  0,  0,
00085               -3, -2,  3, -1,
00086                2,  1, -2,  1 };
00087 
00088         c0.copyTo(&basis[0]);
00089         c1.copyTo(&basis[4]);
00090         c2.copyTo(&basis[8]);
00091         c3.copyTo(&basis[12]);
00092 
00094         basis *= matrix_type(coeffs);
00095     }

Here is the call graph for this function:

template<typename T>
mathglpp::GLCubicHermiteCurve4< T >::~GLCubicHermiteCurve4 (  )  [inline]

Destroy the basis matrix.

Definition at line 101 of file CubicHermiteCurve.h.

00101 {}

template<typename T>
mathglpp::GLCubicHermiteCurve4< T >::GLCubicHermiteCurve4 ( const value_type cpoints  )  [inline]

Create and premultiply a basis matrix for later interpolation, cpoints must not be NULL!!!!

Column major so it seems like it is transposed

Pre multiply

Definition at line 43 of file GLCubicHermiteCurve.h.

00044     :basis(cpoints)
00045     {
00047         static value_type coeffs[16] =
00048             {  1,  0,  0,  0,
00049                0,  1,  0,  0,
00050               -3, -2,  3, -1,
00051                2,  1, -2,  1 };
00052 
00054         basis *= matrix_type(coeffs);
00055     }

template<typename T>
mathglpp::GLCubicHermiteCurve4< T >::GLCubicHermiteCurve4 ( const vector_type cpoints  )  [inline]

Create and premultiply a basis matrix for later interpolation, cpoints must not be NULL!!!!

Column major so it seems like it is transposed

Pre multiply

Definition at line 58 of file GLCubicHermiteCurve.h.

References mathglpp::GLVector4< T >::copyTo().

00059     {
00061         static value_type coeffs[16] =
00062             {  1,  0,  0,  0,
00063                0,  1,  0,  0,
00064               -3, -2,  3, -1,
00065                2,  1, -2,  1 };
00066 
00067         cpoints[0].copyTo(&basis[0]);
00068         cpoints[1].copyTo(&basis[4]);
00069         cpoints[2].copyTo(&basis[8]);
00070         cpoints[3].copyTo(&basis[12]);
00071 
00073         basis *= matrix_type(coeffs);
00074     }

Here is the call graph for this function:

template<typename T>
mathglpp::GLCubicHermiteCurve4< T >::GLCubicHermiteCurve4 ( const vector_type c0,
const vector_type c1,
const vector_type c2,
const vector_type c3 
) [inline]

Create and premultiply a basis matrix for later interpolation, cpoints must not be NULL!!!!

Column major so it seems like it is transposed

Pre multiply

Definition at line 77 of file GLCubicHermiteCurve.h.

References mathglpp::GLVector4< T >::copyTo().

00078     {
00080         static value_type coeffs[16] =
00081             {  1,  0,  0,  0,
00082                0,  1,  0,  0,
00083               -3, -2,  3, -1,
00084                2,  1, -2,  1 };
00085 
00086         c0.copyTo(&basis[0]);
00087         c1.copyTo(&basis[4]);
00088         c2.copyTo(&basis[8]);
00089         c3.copyTo(&basis[12]);
00090 
00092         basis *= matrix_type(coeffs);
00093     }

Here is the call graph for this function:

template<typename T>
mathglpp::GLCubicHermiteCurve4< T >::~GLCubicHermiteCurve4 (  )  [inline]

Destroy the basis matrix.

Definition at line 99 of file GLCubicHermiteCurve.h.

00099 {}


Member Function Documentation

template<typename T>
void mathglpp::GLCubicHermiteCurve4< T >::glVertex ( GLclampf  interp  )  const [inline]

OpenGL interface for vertex generation, interp : [0,1].

Definition at line 104 of file CubicHermiteCurve.h.

References mathglpp::GLCubicHermiteCurve4< T >::D, and mathglpp::GLMatrix< T >::dot4().

00105     {
00106         value_type interpVec[D] = { 1, value_type(interp), value_type(interp * interp), value_type(interp * interp * interp) };
00107         basis.dot4(interpVec).glVertex();
00108     }

Here is the call graph for this function:

template<typename T>
vector_type mathglpp::GLCubicHermiteCurve4< T >::interpolate ( GLclampf  interp  )  const [inline]

GLVector interface for vertex generation, interp : [0,1].

Definition at line 111 of file CubicHermiteCurve.h.

References mathglpp::GLCubicHermiteCurve4< T >::D, and mathglpp::GLMatrix< T >::dot4().

00112     {
00113         value_type interpVec[D] = { 1, value_type(interp), value_type(interp * interp), value_type(interp * interp * interp) };
00114         return basis.dot4(interpVec);
00115     }

Here is the call graph for this function:

template<typename T>
void mathglpp::GLCubicHermiteCurve4< T >::interpolate ( GLclampf  interp,
value_type vertex 
) const [inline]

GLVector interface for vertex generation, interp : [0,1].

Definition at line 118 of file CubicHermiteCurve.h.

References mathglpp::GLMatrix< T >::vdot4().

00119     {
00120         vertex[0] = 1;
00121         vertex[1] = value_type(interp);
00122         vertex[2] = value_type(interp * interp);
00123         vertex[3] = value_type(interp * interp * interp);
00124         basis.vdot4(vertex);
00125     }

Here is the call graph for this function:

template<typename T>
void mathglpp::GLCubicHermiteCurve4< T >::glVertex ( GLclampf  interp  )  const [inline]

OpenGL interface for vertex generation, interp : [0,1].

Definition at line 102 of file GLCubicHermiteCurve.h.

References mathglpp::GLCubicHermiteCurve4< T >::D, and mathglpp::GLMatrix< T >::dot4().

00103     {
00104         value_type interpVec[D] = { 1, value_type(interp), value_type(interp * interp), value_type(interp * interp * interp) };
00105         basis.dot4(interpVec).glVertex();
00106     }

Here is the call graph for this function:

template<typename T>
vector_type mathglpp::GLCubicHermiteCurve4< T >::interpolate ( GLclampf  interp  )  const [inline]

GLVector interface for vertex generation, interp : [0,1].

Definition at line 109 of file GLCubicHermiteCurve.h.

References mathglpp::GLCubicHermiteCurve4< T >::D, and mathglpp::GLMatrix< T >::dot4().

00110     {
00111         value_type interpVec[D] = { 1, value_type(interp), value_type(interp * interp), value_type(interp * interp * interp) };
00112         return basis.dot4(interpVec);
00113     }

Here is the call graph for this function:

template<typename T>
void mathglpp::GLCubicHermiteCurve4< T >::interpolate ( GLclampf  interp,
value_type vertex 
) const [inline]

GLVector interface for vertex generation, interp : [0,1].

Definition at line 116 of file GLCubicHermiteCurve.h.

References mathglpp::GLMatrix< T >::vdot4().

00117     {
00118         vertex[0] = 1;
00119         vertex[1] = value_type(interp);
00120         vertex[2] = value_type(interp * interp);
00121         vertex[3] = value_type(interp * interp * interp);
00122         basis.vdot4(vertex);
00123     }

Here is the call graph for this function:


The documentation for this class was generated from the following files:
Generated on Wed Oct 3 12:50:52 2007 for MathGL++ by  doxygen 1.5.2