curve.h File Reference

Curve data types and related operations. More...

#include "debugging/debugging.h"
#include "container/array.h"
#include <math/matrix.h>
Include dependency graph for curve.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  BernsteinPolynomial< I, Degree >
struct  BernsteinPolynomial< Zero, Zero >
struct  BernsteinPolynomial< Zero, One >
struct  BernsteinPolynomial< One, One >
struct  BernsteinPolynomial< Zero, Two >
struct  BernsteinPolynomial< One, Two >
struct  BernsteinPolynomial< Two, Two >
struct  BernsteinPolynomial< Zero, Three >
struct  BernsteinPolynomial< One, Three >
struct  BernsteinPolynomial< Two, Three >
struct  BernsteinPolynomial< Three, Three >

Defines

#define INCLUDED_MATH_CURVE_H

Typedefs

typedef IntegralConstant< 0 > Zero
typedef IntegralConstant< 1 > One
typedef IntegralConstant< 2 > Two
typedef IntegralConstant< 3 > Three
typedef IntegralConstant< 4 > Four
typedef Array< Vector3ControlPoints
typedef Array< float > Knots
typedef Array< float > NURBSWeights

Functions

Vector3 CubicBezier_evaluate (const Vector3 *firstPoint, double t)
Vector3 CubicBezier_evaluateMid (const Vector3 *firstPoint)
Vector3 CatmullRom_evaluate (const ControlPoints &controlPoints, double t)
double BSpline_basis (const Knots &knots, std::size_t i, std::size_t degree, double t)
Vector3 BSpline_evaluate (const ControlPoints &controlPoints, const Knots &knots, std::size_t degree, double t)
Vector3 NURBS_evaluate (const ControlPoints &controlPoints, const NURBSWeights &weights, const Knots &knots, std::size_t degree, double t)
void KnotVector_openUniform (Knots &knots, std::size_t count, std::size_t degree)

Detailed Description

Curve data types and related operations.

Definition in file curve.h.


Define Documentation

#define INCLUDED_MATH_CURVE_H

Definition at line 28 of file curve.h.


Typedef Documentation

Definition at line 139 of file curve.h.

typedef IntegralConstant<4> Four

Definition at line 47 of file curve.h.

typedef Array<float> Knots

Definition at line 204 of file curve.h.

typedef Array<float> NURBSWeights

Definition at line 231 of file curve.h.

typedef IntegralConstant<1> One

Definition at line 44 of file curve.h.

typedef IntegralConstant<3> Three

Definition at line 46 of file curve.h.

typedef IntegralConstant<2> Two

Definition at line 45 of file curve.h.

typedef IntegralConstant<0> Zero

Definition at line 43 of file curve.h.


Function Documentation

double BSpline_basis ( const Knots knots,
std::size_t  i,
std::size_t  degree,
double  t 
) [inline]

Definition at line 206 of file curve.h.

References left, and right.

Referenced by BSpline_evaluate(), NURBS_evaluate(), and plotBasisFunction().

Vector3 BSpline_evaluate ( const ControlPoints controlPoints,
const Knots knots,
std::size_t  degree,
double  t 
) [inline]

Definition at line 222 of file curve.h.

References BSpline_basis(), i, and Array< Element, Allocator >::size().

Vector3 CatmullRom_evaluate ( const ControlPoints controlPoints,
double  t 
) [inline]

Definition at line 175 of file curve.h.

References CubicBezier_evaluate(), i, and Array< Element, Allocator >::size().

Referenced by CatmullRomSpline::tesselate().

Vector3 CubicBezier_evaluate ( const Vector3 firstPoint,
double  t 
) [inline]

Definition at line 141 of file curve.h.

References BernsteinPolynomial< I, Degree >::apply().

Referenced by CatmullRom_evaluate().

Vector3 CubicBezier_evaluateMid ( const Vector3 firstPoint  )  [inline]

Definition at line 170 of file curve.h.

void KnotVector_openUniform ( Knots knots,
std::size_t  count,
std::size_t  degree 
) [inline]
Vector3 NURBS_evaluate ( const ControlPoints controlPoints,
const NURBSWeights weights,
const Knots knots,
std::size_t  degree,
double  t 
) [inline]

Definition at line 233 of file curve.h.

References BSpline_basis(), i, and Array< Element, Allocator >::size().

Referenced by NURBSCurve::tesselate().


Generated by  doxygen 1.6.2