#include <iso_geom_spline_alg.h>
Inherited by iso::geom::BezierSplineAlg, and iso::geom::HermiteSplineAlg.
Inheritance diagram for iso::geom::SplineAlg:
Public Member Functions | |
SplineAlg (unsigned int p_dimension, unsigned int p_controlCount, unsigned int p_subdivisionCount) | |
create spline algorithm | |
virtual | ~SplineAlg () |
destructor | |
virtual SplineAlg * | copy () const=0 |
create a copy of a spline alg | |
unsigned int | dimension () const |
return spline dimension | |
unsigned int | controlCount () const |
return number of control points | |
unsigned int | subdivisionCount () const |
return number of subdivisons | |
virtual void | setSubdivisionCount (unsigned int p_subdivisionCount) |
set subdivision count | |
virtual void | createSpline (QVector< math::Vector< real > > &p_controlPoints, QVector< math::Vector< real > > &p_splinePoints, bool b_closed=false)=0 |
create spline | |
Protected Member Functions | |
SplineAlg () | |
default constructor | |
virtual void | preCalc ()=0 |
precalculate polynomial values | |
Protected Attributes | |
unsigned int | m_dimension |
spline dimension | |
unsigned int | m_controlCount |
number of control points | |
unsigned int | m_subdivisionCount |
number of subdivisions | |
math::Matrix< real > | m_SM |
interpolation parameter matrix | |
math::Matrix< real > | m_CM |
spline parameter matrix | |
math::Matrix< real > | m_HM |
spline polynomial matrix | |
math::Matrix< real > | m_PM |
resulting point in matrix form | |
math::Matrix< real > ** | m_preCalcMatrices |
array of matrices containing precalculated polynomial values |
SplineAlg::SplineAlg | ( | unsigned int | p_dimension, | |
unsigned int | p_controlCount, | |||
unsigned int | p_subdivisionCount | |||
) |
create spline algorithm
p_dimension | dimension of spline | |
p_controlCount | number of control points | |
p_subdivisionCount | number of subdivisions |
SplineAlg::~SplineAlg | ( | ) | [virtual] |
destructor
SplineAlg::SplineAlg | ( | ) | [protected] |
default constructor
virtual SplineAlg* iso::geom::SplineAlg::copy | ( | ) | const [pure virtual] |
create a copy of a spline alg
Implemented in iso::geom::BezierSplineAlg, and iso::geom::HermiteSplineAlg.
unsigned int SplineAlg::dimension | ( | ) | const |
return spline dimension
unsigned int SplineAlg::controlCount | ( | ) | const |
return number of control points
unsigned int SplineAlg::subdivisionCount | ( | ) | const |
return number of subdivisons
void SplineAlg::setSubdivisionCount | ( | unsigned int | p_subdivisionCount | ) | [virtual] |
set subdivision count
p_subdivisionCount | subdivision count |
Reimplemented in iso::geom::BezierSplineAlg, and iso::geom::HermiteSplineAlg.
virtual void iso::geom::SplineAlg::createSpline | ( | QVector< math::Vector< real > > & | p_controlPoints, | |
QVector< math::Vector< real > > & | p_splinePoints, | |||
bool | b_closed = false | |||
) | [pure virtual] |
create spline
p_controlPoints | control points | |
p_splinePoints | resulting spline points | |
b_closed | whether spline should be closed or not |
Implemented in iso::geom::BezierSplineAlg, and iso::geom::HermiteSplineAlg.
virtual void iso::geom::SplineAlg::preCalc | ( | ) | [protected, pure virtual] |
precalculate polynomial values
Implemented in iso::geom::BezierSplineAlg, and iso::geom::HermiteSplineAlg.
unsigned int iso::geom::SplineAlg::m_dimension [protected] |
spline dimension
unsigned int iso::geom::SplineAlg::m_controlCount [protected] |
number of control points
unsigned int iso::geom::SplineAlg::m_subdivisionCount [protected] |
number of subdivisions
math::Matrix<real> iso::geom::SplineAlg::m_SM [protected] |
interpolation parameter matrix
math::Matrix<real> iso::geom::SplineAlg::m_CM [protected] |
spline parameter matrix
math::Matrix<real> iso::geom::SplineAlg::m_HM [protected] |
spline polynomial matrix
math::Matrix<real> iso::geom::SplineAlg::m_PM [protected] |
resulting point in matrix form
math::Matrix<real>** iso::geom::SplineAlg::m_preCalcMatrices [protected] |
array of matrices containing precalculated polynomial values