Public Types | Public Member Functions | Protected Attributes

OpenTissue::spline::NUBSpline< U, P > Class Template Reference

#include <spline_nubs.h>

List of all members.

Public Types

typedef U knot_container
typedef P point_container

Public Member Functions

 NUBSpline ()
 NUBSpline (size_t const order, U const &knots, P const &controls)
virtual ~NUBSpline ()
U & get_knot_container ()
U const & get_knot_container () const
P & get_control_container ()
P const & get_control_container () const
size_t const get_dimension () const
size_t const & get_order () const

Protected Attributes

m_U
 Knot container.
m_P
 Controlpoint container.
size_t m_k
 The order of the spline.

Detailed Description

template<typename U, typename P>
class OpenTissue::spline::NUBSpline< U, P >

Non-Uniform B-spline. This class is an implementation of nonunform B-splines. Example of notation and terminology.

Given the knot vector $U = {u_i}$ for $i \in [0..m]$ we use the symbols

i : 0 1 .... n n+1 ... m U = [ u_0 u_1 .... u_n u_{n+1} ... u_{n+k} ]

Here are some more detailed explanations

k : is the order of the spline m : is the index of the last entry in the knot vector ie. ( size(U)-1 ) m+1 : is the total number of knots n = m-k : is the index of the last entry in the control point array n+1 : is the total number of control points.

Template Parameters:
U The knot value container type.
P The control point container type.

Member Typedef Documentation

template<typename U, typename P>
typedef U OpenTissue::spline::NUBSpline< U, P >::knot_container
template<typename U, typename P>
typedef P OpenTissue::spline::NUBSpline< U, P >::point_container

Constructor & Destructor Documentation

template<typename U, typename P>
OpenTissue::spline::NUBSpline< U, P >::NUBSpline (  )  [inline]
template<typename U, typename P>
OpenTissue::spline::NUBSpline< U, P >::NUBSpline ( size_t const   order,
U const &  knots,
P const &  controls 
) [inline]

Construct a NUBSpline with order, knot-container and controlpoints.

template<typename U, typename P>
virtual OpenTissue::spline::NUBSpline< U, P >::~NUBSpline (  )  [inline, virtual]

Member Function Documentation

template<typename U, typename P>
P& OpenTissue::spline::NUBSpline< U, P >::get_control_container (  )  [inline]

Retrive ControlPoints. This method should retrieve a reference to an array containing all the control points of the spline.

The received control points should be treated as read-only, that is don't expect the curve segments and/or the data points will reflect any changes you make to the received control points.

For the exact consequences of modifing control points "outside" the spline class you should refer to the specific details of the implemention of the method in the spline class you use.

Returns:
A reference to a container of vectors. Each vector represents a corresponding control point of the spline.
template<typename U, typename P>
P const& OpenTissue::spline::NUBSpline< U, P >::get_control_container (  )  const [inline]
template<typename U, typename P>
size_t const OpenTissue::spline::NUBSpline< U, P >::get_dimension (  )  const [inline]
template<typename U, typename P>
U const& OpenTissue::spline::NUBSpline< U, P >::get_knot_container (  )  const [inline]
template<typename U, typename P>
U& OpenTissue::spline::NUBSpline< U, P >::get_knot_container (  )  [inline]

Retrive Knot Vector. This method should retrieve a reference to an array containing all the knots of the spline.

Each knot corresponds to a parametric value of a data point. The values in the knot vector should be an increasing function.

The received knot values should be treated as read-only, that is don't expect the curve segments, the data points and/or the control points will reflect any changes you make to the knot values.

For the exact consequence of modifing the knotvalues "outside" the spline class you should refer to the specific details of the implemention of the method in the spline class you use.

Returns:
A reference to an array of knotvalues of the spline.
template<typename U, typename P>
size_t const& OpenTissue::spline::NUBSpline< U, P >::get_order (  )  const [inline]

Member Data Documentation

template<typename U, typename P>
size_t OpenTissue::spline::NUBSpline< U, P >::m_k [protected]

The order of the spline.

template<typename U, typename P>
P OpenTissue::spline::NUBSpline< U, P >::m_P [protected]

Controlpoint container.

template<typename U, typename P>
U OpenTissue::spline::NUBSpline< U, P >::m_U [protected]

Knot container.


The documentation for this class was generated from the following file: