Curve data types and related operations. More...
#include "debugging/debugging.h"
#include "container/array.h"
#include <math/matrix.h>
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< Vector3 > | ControlPoints |
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) |
Curve data types and related operations.
Definition in file curve.h.
typedef Array<Vector3> ControlPoints |
typedef Array<float> NURBSWeights |
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.
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().
Definition at line 141 of file curve.h.
References BernsteinPolynomial< I, Degree >::apply().
Referenced by CatmullRom_evaluate().
void KnotVector_openUniform | ( | Knots & | knots, | |
std::size_t | count, | |||
std::size_t | degree | |||
) | [inline] |
Definition at line 246 of file curve.h.
References i, Array< Element, Allocator >::resize(), and Array< Element, Allocator >::size().
Referenced by NURBSCurve::parseCurve(), and plotBasisFunction().
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().