#include <spline_nubs.h>
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 | |
U | m_U |
Knot container. | |
P | m_P |
Controlpoint container. | |
size_t | m_k |
The order of the spline. |
Non-Uniform B-spline. This class is an implementation of nonunform B-splines. Example of notation and terminology.
Given the knot vector for 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.
U | The knot value container type. | |
P | The control point container type. |
typedef U OpenTissue::spline::NUBSpline< U, P >::knot_container |
typedef P OpenTissue::spline::NUBSpline< U, P >::point_container |
OpenTissue::spline::NUBSpline< U, P >::NUBSpline | ( | ) | [inline] |
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.
virtual OpenTissue::spline::NUBSpline< U, P >::~NUBSpline | ( | ) | [inline, virtual] |
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.
P const& OpenTissue::spline::NUBSpline< U, P >::get_control_container | ( | ) | const [inline] |
size_t const OpenTissue::spline::NUBSpline< U, P >::get_dimension | ( | ) | const [inline] |
U const& OpenTissue::spline::NUBSpline< U, P >::get_knot_container | ( | ) | const [inline] |
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.
size_t const& OpenTissue::spline::NUBSpline< U, P >::get_order | ( | ) | const [inline] |
size_t OpenTissue::spline::NUBSpline< U, P >::m_k [protected] |
The order of the spline.
P OpenTissue::spline::NUBSpline< U, P >::m_P [protected] |
Controlpoint container.
U OpenTissue::spline::NUBSpline< U, P >::m_U [protected] |
Knot container.