library of assembled shared sources |
http://lass.cocamware.com |
#include <spline_bezier_path.h>
Data Structures | |
class | DataTriplet |
struct | Node |
Public Types | |
typedef DataTraits | TDataTraits |
typedef Spline< ScalarType, DataType > | TSplineBase |
typedef TSplineBase::TScalar | TScalar |
typedef TSplineBase::TData | TData |
typedef TSplineBase::ControlRange | TControlRange |
Public Member Functions | |
SplineBezierPath () | |
template<typename PairInputIterator > | |
SplineBezierPath (PairInputIterator iFirst, PairInputIterator iLast) | |
template<typename ScalarInputIterator , typename DataInputIterator > | |
SplineBezierPath (ScalarInputIterator iFirstControl, ScalarInputIterator iLastControl, DataInputIterator iFirstData) | |
const TData | operator() (TScalar iX) const |
const TData | derivative (TScalar iX) const |
const TData | derivative2 (TScalar iX) const |
const TData | integral (TScalar iA, TScalar iB) const |
const bool | isEmpty () const |
return true if the spline contains any nodes at all. | |
const TControlRange | controlRange () const |
return the range of control values for which the spline can interpolate. | |
virtual const TData | operator() (TScalar iX) const =0 |
virtual const TData | derivative (TScalar iX) const =0 |
virtual const TData | derivative2 (TScalar iX) const =0 |
virtual const TData | integral (TScalar iA, TScalar iB) const =0 |
Private Types | |
typedef std::vector< Node > | TNodes |
typedef TNodes::const_iterator | TNodeConstIterator |
typedef std::pair< TScalar, TData > | TSimpleNode |
typedef std::vector< TSimpleNode > | TSimpleNodes |
Private Member Functions | |
template<typename PairInputIterator > | |
void | init (PairInputIterator first, PairInputIterator last, const DataTriplet &dummy) |
template<typename PairInputIterator > | |
void | init (PairInputIterator first, PairInputIterator last, const TData &dummy) |
template<typename ScalarInputIterator , typename DataInputIterator > | |
void | init (ScalarInputIterator firstControl, ScalarInputIterator lastControl, DataInputIterator firstData, const DataTriplet &dummy) |
template<typename ScalarInputIterator , typename DataInputIterator > | |
void | init (ScalarInputIterator firstControl, ScalarInputIterator lastControl, DataInputIterator firstData, const TData &dummy) |
void | makeFullNodes (const TSimpleNodes &simpleNodes) |
void | finalInit () |
const TNodeConstIterator | findNode (TScalar iX) const |
binary search to find node that belongs to x | |
Private Attributes | |
TNodes | nodes_ |
size_t | dataDimension_ |
Definition at line 50 of file spline_bezier_path.h.
typedef DataTraits lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::TDataTraits |
Definition at line 54 of file spline_bezier_path.h.
typedef Spline<ScalarType, DataType> lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::TSplineBase |
Definition at line 55 of file spline_bezier_path.h.
typedef TSplineBase::TScalar lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::TScalar |
Reimplemented from lass::num::Spline< ScalarType, DataType >.
Definition at line 56 of file spline_bezier_path.h.
typedef TSplineBase::TData lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::TData |
Reimplemented from lass::num::Spline< ScalarType, DataType >.
Definition at line 57 of file spline_bezier_path.h.
typedef TSplineBase::ControlRange lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::TControlRange |
Definition at line 58 of file spline_bezier_path.h.
typedef std::vector<Node> lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::TNodes [private] |
Definition at line 104 of file spline_bezier_path.h.
typedef TNodes::const_iterator lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::TNodeConstIterator [private] |
Definition at line 105 of file spline_bezier_path.h.
typedef std::pair<TScalar, TData> lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::TSimpleNode [private] |
Definition at line 107 of file spline_bezier_path.h.
typedef std::vector<TSimpleNode> lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::TSimpleNodes [private] |
Definition at line 108 of file spline_bezier_path.h.
lass::num::SplineBezierPath< S, D, T >::SplineBezierPath | ( | ) | [inline] |
Definition at line 43 of file spline_bezier_path.inl.
lass::num::SplineBezierPath< S, D, T >::SplineBezierPath | ( | PairInputIterator | iFirst, | |
PairInputIterator | iLast | |||
) | [inline] |
Definition at line 51 of file spline_bezier_path.inl.
References lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::init().
lass::num::SplineBezierPath< S, D, T >::SplineBezierPath | ( | ScalarInputIterator | iFirstControl, | |
ScalarInputIterator | iLastControl, | |||
DataInputIterator | iFirstData | |||
) | [inline] |
Definition at line 61 of file spline_bezier_path.inl.
References lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::init().
const SplineBezierPath< S, D, T >::TData lass::num::SplineBezierPath< S, D, T >::operator() | ( | TScalar | iX | ) | const [inline] |
Definition at line 72 of file spline_bezier_path.inl.
References lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::findNode(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::isEmpty(), LASS_ASSERT, lass::stde::next(), and lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::nodes_.
const SplineBezierPath< S, D, T >::TData lass::num::SplineBezierPath< S, D, T >::derivative | ( | TScalar | iX | ) | const [inline] |
Definition at line 102 of file spline_bezier_path.inl.
References lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::findNode(), lass::num::inv(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::isEmpty(), LASS_ASSERT, lass::stde::next(), and lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::nodes_.
const SplineBezierPath< S, D, T >::TData lass::num::SplineBezierPath< S, D, T >::derivative2 | ( | TScalar | iX | ) | const [inline] |
Definition at line 131 of file spline_bezier_path.inl.
References lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::findNode(), lass::num::inv(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::isEmpty(), LASS_ASSERT, lass::stde::next(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::nodes_, and lass::num::sqr().
const SplineBezierPath< S, D, T >::TData lass::num::SplineBezierPath< S, D, T >::integral | ( | TScalar | iA, | |
TScalar | iB | |||
) | const [inline] |
Definition at line 162 of file spline_bezier_path.inl.
References lass::num::cubic(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::findNode(), lass::num::inv(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::isEmpty(), LASS_ASSERT, lass::stde::next(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::nodes_, lass::num::sqr(), and std::swap().
const bool lass::num::SplineBezierPath< S, D, T >::isEmpty | ( | ) | const [inline, virtual] |
return true if the spline contains any nodes at all.
Implements lass::num::Spline< ScalarType, DataType >.
Definition at line 274 of file spline_bezier_path.inl.
References lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::nodes_.
Referenced by lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::derivative(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::derivative2(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::integral(), and lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::operator()().
const SplineBezierPath< S, D, T >::TControlRange lass::num::SplineBezierPath< S, D, T >::controlRange | ( | ) | const [inline, virtual] |
return the range of control values for which the spline can interpolate.
Implements lass::num::Spline< ScalarType, DataType >.
Definition at line 287 of file spline_bezier_path.inl.
References lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::nodes_.
void lass::num::SplineBezierPath< S, D, T >::init | ( | PairInputIterator | first, | |
PairInputIterator | last, | |||
const DataTriplet & | dummy | |||
) | [inline, private] |
Definition at line 298 of file spline_bezier_path.inl.
References lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::finalInit(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::nodes_, lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::Node::triplet, and lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::Node::x.
Referenced by lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::SplineBezierPath().
void lass::num::SplineBezierPath< S, D, T >::init | ( | PairInputIterator | first, | |
PairInputIterator | last, | |||
const TData & | dummy | |||
) | [inline, private] |
Definition at line 314 of file spline_bezier_path.inl.
References lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::finalInit(), and lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::makeFullNodes().
void lass::num::SplineBezierPath< S, D, T >::init | ( | ScalarInputIterator | firstControl, | |
ScalarInputIterator | lastControl, | |||
DataInputIterator | firstData, | |||
const DataTriplet & | dummy | |||
) | [inline, private] |
Definition at line 325 of file spline_bezier_path.inl.
References lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::finalInit(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::nodes_, lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::Node::triplet, and lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::Node::x.
void lass::num::SplineBezierPath< S, D, T >::init | ( | ScalarInputIterator | firstControl, | |
ScalarInputIterator | lastControl, | |||
DataInputIterator | firstData, | |||
const TData & | dummy | |||
) | [inline, private] |
Definition at line 341 of file spline_bezier_path.inl.
References lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::finalInit(), and lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::makeFullNodes().
void lass::num::SplineBezierPath< S, D, T >::makeFullNodes | ( | const TSimpleNodes & | simpleNodes | ) | [inline, private] |
Definition at line 355 of file spline_bezier_path.inl.
References lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::nodes_.
Referenced by lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::init().
void lass::num::SplineBezierPath< S, D, T >::finalInit | ( | ) | [inline, private] |
Definition at line 416 of file spline_bezier_path.inl.
References lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::dataDimension_, LASS_THROW, lass::stde::next(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::nodes_, and lass::stde::prev().
Referenced by lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::init().
const SplineBezierPath< S, D, T >::TNodeConstIterator lass::num::SplineBezierPath< S, D, T >::findNode | ( | TScalar | x | ) | const [inline, private] |
binary search to find node that belongs to x
node->x
, next(node)->x
) nodes_.front()
.x nodes_.back()
.xDefinition at line 463 of file spline_bezier_path.inl.
References lass::prim::distance(), LASS_ASSERT, lass::stde::next(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::nodes_, and lass::stde::prev().
Referenced by lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::derivative(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::derivative2(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::integral(), and lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::operator()().
virtual const TData lass::num::Spline< ScalarType, DataType >::operator() | ( | TScalar | iX | ) | const [pure virtual, inherited] |
virtual const TData lass::num::Spline< ScalarType, DataType >::derivative | ( | TScalar | iX | ) | const [pure virtual, inherited] |
virtual const TData lass::num::Spline< ScalarType, DataType >::derivative2 | ( | TScalar | iX | ) | const [pure virtual, inherited] |
virtual const TData lass::num::Spline< ScalarType, DataType >::integral | ( | TScalar | iA, | |
TScalar | iB | |||
) | const [pure virtual, inherited] |
TNodes lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::nodes_ [private] |
Definition at line 125 of file spline_bezier_path.h.
Referenced by lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::controlRange(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::derivative(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::derivative2(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::finalInit(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::findNode(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::init(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::integral(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::isEmpty(), lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::makeFullNodes(), and lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::operator()().
size_t lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::dataDimension_ [private] |
Definition at line 126 of file spline_bezier_path.h.
Referenced by lass::num::SplineBezierPath< ScalarType, DataType, DataTraits >::finalInit().
Generated on Mon Nov 10 14:22:10 2008 for Library of Assembled Shared Sources by 1.5.7.1 |