Developer Documentation
ACG::BSplineSurfaceT< PointT > Class Template Reference

#include <ObjectTypes/BSplineSurface/BSplineSurfaceT.hh>

Public Types

typedef PointT Point
 
typedef Point::value_type Scalar
 
typedef std::vector< std::vector< Point > > ControlNet
 
typedef std::vector< std::vector< unsigned char > > PropertyNet
 

Public Member Functions

 BSplineSurfaceT (unsigned int _degm=3, unsigned int _degn=3)
 Constructor. More...
 
void resize (unsigned int _m, unsigned int _n)
 Resizes the spline struct. More...
 
std::vector< Scalar > & get_knots_m ()
 get the knotvector in m direction of the bspline surface More...
 
std::vector< Scalar > & get_knots_n ()
 get the knotvector in m direction of the bspline surface More...
 
Knotvector get_knotvector_m ()
 Get the knotvector in m direction. More...
 
Knotvector get_knotvector_n ()
 Get the knotvector in n direction. More...
 
Knotvectorget_knotvector_m_ref ()
 Get a reference to the knotvector in m direction. More...
 
Knotvectorget_knotvector_n_ref ()
 Get a reference to the knotvector in n direction. More...
 
Scalar get_knot_m (int _i)
 Get knot i in m direction. More...
 
Scalar get_knot_n (int _i)
 Get knot i in n direction. More...
 
void set_knots_m (std::vector< Scalar > _knots)
 Set the knotvector of the bspline surface in m direction. More...
 
void set_knots_n (std::vector< Scalar > _knots)
 Set the knotvector of the bspline surface in n direction. More...
 
void insert_knot_m (double _t)
 Insert a knot i in m direction without changing the surface. More...
 
void insert_knot_n (double _t)
 Insert a knot i in n direction without changing the surface. More...
 
void createKnots ()
 Creates interpolating knotvectors 0...0, 1, 2, ..., n...n. More...
 
void set_degree (unsigned int _degm, unsigned int _degn)
 Sets the degree of the spline surface. More...
 
int degree_m () const
 Returns the spline degree in m direction. More...
 
int degree_n () const
 Returns the spline degree in n direction. More...
 
unsigned int n_control_points_m () const
 Returns the number of controlpoints in m direction. More...
 
unsigned int n_control_points_n () const
 Returns the number of controlpoints in n direction. More...
 
unsigned int n_knots_m ()
 Returns the number of knots in m direction. More...
 
unsigned int n_knots_n ()
 Returns the number of knots in n direction. More...
 
void reset_control_net ()
 Clears the control net. More...
 
Point & get_control_point (unsigned int _m, unsigned int _n)
 Returns a reference to the control point (m, n) More...
 
Point & operator() (unsigned int _m, unsigned int _n)
 Returns a reference to the control point (m, n) More...
 
const Point & operator() (unsigned int _m, unsigned int _n) const
 Returns a const reference to the control point (m, n) More...
 
Point & operator() (Vec2i _param)
 Returns a reference to the control point (m, n) More...
 
const Point & operator() (Vec2i _param) const
 Returns a const reference to the control point (m, n) More...
 
void get_vector_m (std::vector< Point > &_control_polygon, unsigned int _m)
 Returns an n control point vector. More...
 
void get_vector_n (std::vector< Point > &_control_polygon, unsigned int _n)
 Returns an m ctrPointVector. More...
 
void add_vector_m (const std::vector< Point > &_control_polygon)
 Adds a control point n-vector. More...
 
void add_vector_n (const std::vector< Point > &_control_polygon)
 Adds a control point m-vector. More...
 
void insert_vector_m (const std::vector< Point > &_control_polygon, unsigned int _m)
 Inserts an n control point vector. More...
 
void insert_vector_n (const std::vector< Point > &_control_polygon, unsigned int _n)
 Inserts an m control point vector. More...
 
void delete_vector_m (unsigned int _m)
 Deletes an n control point vector. More...
 
void delete_vector_n (unsigned int _n)
 Deletes an m control point vector. More...
 
Point surfacePoint (double _u, double _v)
 Evaluates a spline surface at parameters _u and _v. More...
 
void surfacePointNormal (Point &_pt, Point &_normal, double _u, double _v)
 Evaluates a spline surface at parameters _u and _v. More...
 
Point surfacePoint_rec (double _u, double _v)
 Evaluates a spline surface at parameters _u and _v. More...
 
Point derivativeSurfacePoint (double _u, double _v, int _derm, int _dern)
 Returns the _derm'th derivative of a spline surface. More...
 
Point normalSurfacePoint (double _u, double _v)
 Returns the normal of a spline surface. More...
 
Scalar basisFunction (Knotvector &_knotvector, int _i, int _n, double _t)
 A Spline Basis Function. More...
 
Scalar derivativeBasisFunction (Knotvector &_knotvector, int _i, int _n, double _t, int _der)
 Derivative of a Spline Basis Function. More...
 
ACG::Vec2i spanm (double _t)
 Returns the basis functions which are unequal to zero at parameter u. More...
 
ACG::Vec2i spann (double _t)
 Returns the basis functions which are unequal to zero at parameter v. More...
 
ACG::Vec2i interval_m (double _t)
 Returns the index of the knots u and u+1 such that t in [u, u+1) More...
 
ACG::Vec2i interval_n (double _t)
 Returns the index of the knots v and v+1 such that t in [v, v+1) More...
 
Scalar loweru ()
 Returns the lower u parameter. More...
 
Scalar upperu ()
 Returns the upper u parameter. More...
 
Scalar lowerv ()
 Returns the lower v parameter. More...
 
Scalar upperv ()
 Returns the upper v parameter. More...
 
void request_controlpoint_selections ()
 request control point selection property More...
 
void request_edge_selections ()
 request edge selection property More...
 
void release_controlpoint_selections ()
 release control point selection property More...
 
void release_edge_selections ()
 release edge selection property More...
 
bool controlpoint_selections_available () const
 Check if control point selection property is available. More...
 
bool edge_selections_available () const
 Check if edge selection property is available. More...
 
unsigned char & controlpoint_selection (unsigned int _i, unsigned int _j)
 
const unsigned char & controlpoint_selection (unsigned int _i, unsigned int _j) const
 
unsigned char & edge_selection (unsigned int _i, unsigned int _j)
 
const unsigned char & edge_selection (unsigned int _i, unsigned int _j) const
 
void select_controlpoint (unsigned int _iIdx, unsigned int _jIdx)
 
void deselect_controlpoint (unsigned int _iIdx, unsigned int _jIdx)
 
bool controlpoint_selected (unsigned int _iIdx, unsigned int _jIdx) const
 

Private Member Functions

template<class PropT >
void request_prop (unsigned int &_ref_count, PropT &_prop)
 
template<class PropT >
void release_prop (unsigned int &_ref_count, PropT &_prop)
 

Private Attributes

unsigned int dimm_
 number of control points in m direction More...
 
unsigned int dimn_
 number of control points in n direction More...
 
unsigned int degree_m_
 Spline degree in m direction. More...
 
unsigned int degree_n_
 Spline degree in n direction. More...
 
Knotvector knotvector_m_
 Knotvector in m direction. More...
 
Knotvector knotvector_n_
 Knotvector in n direction. More...
 
ControlNet control_net_
 
PropertyNet cpselections_
 list of control point properties More...
 
PropertyNet eselections_
 list of edge properties More...
 
unsigned int ref_count_cpselections_
 
unsigned int ref_count_eselections_
 

Detailed Description

template<class PointT>
class ACG::BSplineSurfaceT< PointT >

Brief Description.

A more elaborate description follows.

Definition at line 82 of file BSplineSurfaceT.hh.

Member Typedef Documentation

◆ ControlNet

template<class PointT >
typedef std::vector< std::vector< Point > > ACG::BSplineSurfaceT< PointT >::ControlNet

Definition at line 89 of file BSplineSurfaceT.hh.

◆ Point

template<class PointT >
typedef PointT ACG::BSplineSurfaceT< PointT >::Point

Definition at line 87 of file BSplineSurfaceT.hh.

◆ PropertyNet

template<class PointT >
typedef std::vector< std::vector< unsigned char > > ACG::BSplineSurfaceT< PointT >::PropertyNet

Definition at line 90 of file BSplineSurfaceT.hh.

◆ Scalar

template<class PointT >
typedef Point::value_type ACG::BSplineSurfaceT< PointT >::Scalar

Definition at line 88 of file BSplineSurfaceT.hh.

Constructor & Destructor Documentation

◆ BSplineSurfaceT()

template<class PointT >
ACG::BSplineSurfaceT< PointT >::BSplineSurfaceT ( unsigned int  _degm = 3,
unsigned int  _degn = 3 
)
explicit

Constructor.

Parameters
_degmDegree in m direction
_degnDegree in n direction

Definition at line 74 of file BSplineSurfaceT_impl.hh.

Member Function Documentation

◆ add_vector_m()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::add_vector_m ( const std::vector< Point > &  _control_polygon)

Adds a control point n-vector.

Parameters
_control_polygonAdditional control point vector

Definition at line 186 of file BSplineSurfaceT_impl.hh.

◆ add_vector_n()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::add_vector_n ( const std::vector< Point > &  _control_polygon)

Adds a control point m-vector.

Parameters
_control_polygonAdditional control point vector

Definition at line 196 of file BSplineSurfaceT_impl.hh.

◆ basisFunction()

template<class PointT >
BSplineSurfaceT< PointT >::Scalar ACG::BSplineSurfaceT< PointT >::basisFunction ( Knotvector _knotvector,
int  _i,
int  _n,
double  _t 
)

A Spline Basis Function.

Parameters
_knotvectorthe knotvector
_ithe i'th basis function
_nthe spline degree
_tthe parameter Returns N_i^p(_u)

Definition at line 603 of file BSplineSurfaceT_impl.hh.

◆ controlpoint_selected()

template<class PointT >
bool ACG::BSplineSurfaceT< PointT >::controlpoint_selected ( unsigned int  _iIdx,
unsigned int  _jIdx 
) const
inline

Definition at line 444 of file BSplineSurfaceT.hh.

◆ controlpoint_selection() [1/2]

template<class PointT >
unsigned char & ACG::BSplineSurfaceT< PointT >::controlpoint_selection ( unsigned int  _i,
unsigned int  _j 
)
inline

Definition at line 420 of file BSplineSurfaceT.hh.

◆ controlpoint_selection() [2/2]

template<class PointT >
const unsigned char & ACG::BSplineSurfaceT< PointT >::controlpoint_selection ( unsigned int  _i,
unsigned int  _j 
) const
inline

Definition at line 421 of file BSplineSurfaceT.hh.

◆ controlpoint_selections_available()

template<class PointT >
bool ACG::BSplineSurfaceT< PointT >::controlpoint_selections_available ( ) const
inline

Check if control point selection property is available.

Definition at line 414 of file BSplineSurfaceT.hh.

◆ createKnots()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::createKnots

Creates interpolating knotvectors 0...0, 1, 2, ..., n...n.

Definition at line 164 of file BSplineSurfaceT_impl.hh.

◆ degree_m()

template<class PointT >
int ACG::BSplineSurfaceT< PointT >::degree_m ( ) const
inline

Returns the spline degree in m direction.

Definition at line 172 of file BSplineSurfaceT.hh.

◆ degree_n()

template<class PointT >
int ACG::BSplineSurfaceT< PointT >::degree_n ( ) const
inline

Returns the spline degree in n direction.

Definition at line 174 of file BSplineSurfaceT.hh.

◆ delete_vector_m()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::delete_vector_m ( unsigned int  _m)

Deletes an n control point vector.

Parameters
_mthe m'th pointvector
Todo:
Improve deletion routine for control points and knots!

Definition at line 274 of file BSplineSurfaceT_impl.hh.

◆ delete_vector_n()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::delete_vector_n ( unsigned int  _n)

Deletes an m control point vector.

Parameters
_nthe n'th pointvector
Todo:
: Improve deletion routine for control points and knots!

Definition at line 301 of file BSplineSurfaceT_impl.hh.

◆ derivativeBasisFunction()

template<class PointT >
BSplineSurfaceT< PointT >::Scalar ACG::BSplineSurfaceT< PointT >::derivativeBasisFunction ( Knotvector _knotvector,
int  _i,
int  _n,
double  _t,
int  _der 
)

Derivative of a Spline Basis Function.

Parameters
_knotvectorthe knotvector
_ithe i'th basis function
_nthe spline degree
_tthe parameter
_derthe _der'th derivative

Definition at line 691 of file BSplineSurfaceT_impl.hh.

◆ derivativeSurfacePoint()

template<class PointT >
PointT ACG::BSplineSurfaceT< PointT >::derivativeSurfacePoint ( double  _u,
double  _v,
int  _derm,
int  _dern 
)

Returns the _derm'th derivative of a spline surface.

Parameters
_uthe parameter in u direction
_vthe parameter in v direction
_dermthe _derm'th derivative in m
_dernthe _dern'th derivative in n
Returns
the derivative

Definition at line 641 of file BSplineSurfaceT_impl.hh.

◆ deselect_controlpoint()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::deselect_controlpoint ( unsigned int  _iIdx,
unsigned int  _jIdx 
)
inline

Definition at line 442 of file BSplineSurfaceT.hh.

◆ edge_selection() [1/2]

template<class PointT >
unsigned char & ACG::BSplineSurfaceT< PointT >::edge_selection ( unsigned int  _i,
unsigned int  _j 
)
inline

Definition at line 426 of file BSplineSurfaceT.hh.

◆ edge_selection() [2/2]

template<class PointT >
const unsigned char & ACG::BSplineSurfaceT< PointT >::edge_selection ( unsigned int  _i,
unsigned int  _j 
) const
inline

Definition at line 427 of file BSplineSurfaceT.hh.

◆ edge_selections_available()

template<class PointT >
bool ACG::BSplineSurfaceT< PointT >::edge_selections_available ( ) const
inline

Check if edge selection property is available.

Definition at line 416 of file BSplineSurfaceT.hh.

◆ get_control_point()

template<class PointT >
Point & ACG::BSplineSurfaceT< PointT >::get_control_point ( unsigned int  _m,
unsigned int  _n 
)
inline

Returns a reference to the control point (m, n)

Parameters
_m,_nthe control point index

Definition at line 193 of file BSplineSurfaceT.hh.

◆ get_knot_m()

template<class PointT >
Scalar ACG::BSplineSurfaceT< PointT >::get_knot_m ( int  _i)
inline

Get knot i in m direction.

Parameters
_iKnot index
Returns
Knot i

Definition at line 127 of file BSplineSurfaceT.hh.

◆ get_knot_n()

template<class PointT >
Scalar ACG::BSplineSurfaceT< PointT >::get_knot_n ( int  _i)
inline

Get knot i in n direction.

Parameters
_iKnot index
Returns
Knot i

Definition at line 134 of file BSplineSurfaceT.hh.

◆ get_knots_m()

template<class PointT >
std::vector< Scalar > & ACG::BSplineSurfaceT< PointT >::get_knots_m ( )
inline

get the knotvector in m direction of the bspline surface

Definition at line 108 of file BSplineSurfaceT.hh.

◆ get_knots_n()

template<class PointT >
std::vector< Scalar > & ACG::BSplineSurfaceT< PointT >::get_knots_n ( )
inline

get the knotvector in m direction of the bspline surface

Definition at line 110 of file BSplineSurfaceT.hh.

◆ get_knotvector_m()

template<class PointT >
Knotvector ACG::BSplineSurfaceT< PointT >::get_knotvector_m ( )
inline

Get the knotvector in m direction.

Definition at line 113 of file BSplineSurfaceT.hh.

◆ get_knotvector_m_ref()

template<class PointT >
Knotvector * ACG::BSplineSurfaceT< PointT >::get_knotvector_m_ref ( )
inline

Get a reference to the knotvector in m direction.

Definition at line 118 of file BSplineSurfaceT.hh.

◆ get_knotvector_n()

template<class PointT >
Knotvector ACG::BSplineSurfaceT< PointT >::get_knotvector_n ( )
inline

Get the knotvector in n direction.

Definition at line 115 of file BSplineSurfaceT.hh.

◆ get_knotvector_n_ref()

template<class PointT >
Knotvector * ACG::BSplineSurfaceT< PointT >::get_knotvector_n_ref ( )
inline

Get a reference to the knotvector in n direction.

Definition at line 120 of file BSplineSurfaceT.hh.

◆ get_vector_m()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::get_vector_m ( std::vector< Point > &  _control_polygon,
unsigned int  _m 
)

Returns an n control point vector.

Parameters
_mthe m'th pointvector
_control_polygonthe returned pointvector

Definition at line 332 of file BSplineSurfaceT_impl.hh.

◆ get_vector_n()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::get_vector_n ( std::vector< Point > &  _control_polygon,
unsigned int  _n 
)

Returns an m ctrPointVector.

Parameters
_nthe n'th pointvector
_control_polygonthe returned pointvector

Definition at line 343 of file BSplineSurfaceT_impl.hh.

◆ insert_knot_m()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::insert_knot_m ( double  _t)

Insert a knot i in m direction without changing the surface.

Parameters
_tParameter value

Definition at line 379 of file BSplineSurfaceT_impl.hh.

◆ insert_knot_n()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::insert_knot_n ( double  _t)

Insert a knot i in n direction without changing the surface.

Parameters
_tParameter value

Definition at line 423 of file BSplineSurfaceT_impl.hh.

◆ insert_vector_m()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::insert_vector_m ( const std::vector< Point > &  _control_polygon,
unsigned int  _m 
)

Inserts an n control point vector.

Parameters
_mthe position in m direction
_control_polygonthe pointvector to be inserted

Definition at line 206 of file BSplineSurfaceT_impl.hh.

◆ insert_vector_n()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::insert_vector_n ( const std::vector< Point > &  _control_polygon,
unsigned int  _n 
)

Inserts an m control point vector.

Parameters
_nthe position in n direction
_control_polygonthe pointvector to be inserted

Definition at line 239 of file BSplineSurfaceT_impl.hh.

◆ interval_m()

template<class PointT >
ACG::Vec2i ACG::BSplineSurfaceT< PointT >::interval_m ( double  _t)

Returns the index of the knots u and u+1 such that t in [u, u+1)

Parameters
_tthe parameter

Definition at line 776 of file BSplineSurfaceT_impl.hh.

◆ interval_n()

template<class PointT >
ACG::Vec2i ACG::BSplineSurfaceT< PointT >::interval_n ( double  _t)

Returns the index of the knots v and v+1 such that t in [v, v+1)

Parameters
_tthe parameter

Definition at line 796 of file BSplineSurfaceT_impl.hh.

◆ loweru()

template<class PointT >
BSplineSurfaceT< PointT >::Scalar ACG::BSplineSurfaceT< PointT >::loweru

Returns the lower u parameter.

Definition at line 718 of file BSplineSurfaceT_impl.hh.

◆ lowerv()

template<class PointT >
BSplineSurfaceT< PointT >::Scalar ACG::BSplineSurfaceT< PointT >::lowerv

Returns the lower v parameter.

Definition at line 737 of file BSplineSurfaceT_impl.hh.

◆ n_control_points_m()

template<class PointT >
unsigned int ACG::BSplineSurfaceT< PointT >::n_control_points_m ( ) const
inline

Returns the number of controlpoints in m direction.

Definition at line 177 of file BSplineSurfaceT.hh.

◆ n_control_points_n()

template<class PointT >
unsigned int ACG::BSplineSurfaceT< PointT >::n_control_points_n ( ) const
inline

Returns the number of controlpoints in n direction.

Definition at line 179 of file BSplineSurfaceT.hh.

◆ n_knots_m()

template<class PointT >
unsigned int ACG::BSplineSurfaceT< PointT >::n_knots_m ( )
inline

Returns the number of knots in m direction.

Definition at line 182 of file BSplineSurfaceT.hh.

◆ n_knots_n()

template<class PointT >
unsigned int ACG::BSplineSurfaceT< PointT >::n_knots_n ( )
inline

Returns the number of knots in n direction.

Definition at line 184 of file BSplineSurfaceT.hh.

◆ normalSurfacePoint()

template<class PointT >
PointT ACG::BSplineSurfaceT< PointT >::normalSurfacePoint ( double  _u,
double  _v 
)

Returns the normal of a spline surface.

Parameters
_uthe parameter in u direction
_vthe parameter in v direction
Returns
the normal

Definition at line 673 of file BSplineSurfaceT_impl.hh.

◆ operator()() [1/4]

template<class PointT >
Point & ACG::BSplineSurfaceT< PointT >::operator() ( unsigned int  _m,
unsigned int  _n 
)
inline

Returns a reference to the control point (m, n)

Parameters
_m,_nthe control point index

Definition at line 203 of file BSplineSurfaceT.hh.

◆ operator()() [2/4]

template<class PointT >
const Point & ACG::BSplineSurfaceT< PointT >::operator() ( unsigned int  _m,
unsigned int  _n 
) const
inline

Returns a const reference to the control point (m, n)

Parameters
_m,_nthe control point index

Definition at line 213 of file BSplineSurfaceT.hh.

◆ operator()() [3/4]

template<class PointT >
Point & ACG::BSplineSurfaceT< PointT >::operator() ( Vec2i  _param)
inline

Returns a reference to the control point (m, n)

Parameters
_paramthe control point index

Definition at line 223 of file BSplineSurfaceT.hh.

◆ operator()() [4/4]

template<class PointT >
const Point & ACG::BSplineSurfaceT< PointT >::operator() ( Vec2i  _param) const
inline

Returns a const reference to the control point (m, n)

Parameters
_paramthe control point index

Definition at line 233 of file BSplineSurfaceT.hh.

◆ release_controlpoint_selections()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::release_controlpoint_selections ( )
inline

release control point selection property

Definition at line 409 of file BSplineSurfaceT.hh.

◆ release_edge_selections()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::release_edge_selections ( )
inline

release edge selection property

Definition at line 411 of file BSplineSurfaceT.hh.

◆ release_prop()

template<class PointT >
template<class PropT >
void ACG::BSplineSurfaceT< PointT >::release_prop ( unsigned int &  _ref_count,
PropT &  _prop 
)
private

Definition at line 109 of file BSplineSurfaceT_impl.hh.

◆ request_controlpoint_selections()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::request_controlpoint_selections ( )
inline

request control point selection property

Definition at line 404 of file BSplineSurfaceT.hh.

◆ request_edge_selections()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::request_edge_selections ( )
inline

request edge selection property

Definition at line 406 of file BSplineSurfaceT.hh.

◆ request_prop()

template<class PointT >
template<class PropT >
void ACG::BSplineSurfaceT< PointT >::request_prop ( unsigned int &  _ref_count,
PropT &  _prop 
)
private

Definition at line 89 of file BSplineSurfaceT_impl.hh.

◆ reset_control_net()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::reset_control_net

Clears the control net.

Definition at line 150 of file BSplineSurfaceT_impl.hh.

◆ resize()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::resize ( unsigned int  _m,
unsigned int  _n 
)

Resizes the spline struct.

You usually shoudn't have to care about this I will probably make it private...

Parameters
_msize in m direction
_nsize in n direction

Definition at line 124 of file BSplineSurfaceT_impl.hh.

◆ select_controlpoint()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::select_controlpoint ( unsigned int  _iIdx,
unsigned int  _jIdx 
)
inline

Definition at line 441 of file BSplineSurfaceT.hh.

◆ set_degree()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::set_degree ( unsigned int  _degm,
unsigned int  _degn 
)

Sets the degree of the spline surface.

Parameters
_degmDegree in m direction
_degnDegree in n direction

Definition at line 175 of file BSplineSurfaceT_impl.hh.

◆ set_knots_m()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::set_knots_m ( std::vector< Scalar >  _knots)

Set the knotvector of the bspline surface in m direction.

Parameters
_knotsThe new knots

Definition at line 357 of file BSplineSurfaceT_impl.hh.

◆ set_knots_n()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::set_knots_n ( std::vector< Scalar >  _knots)

Set the knotvector of the bspline surface in n direction.

Parameters
_knotsThe new knots

Definition at line 368 of file BSplineSurfaceT_impl.hh.

◆ spanm()

template<class PointT >
ACG::Vec2i ACG::BSplineSurfaceT< PointT >::spanm ( double  _t)

Returns the basis functions which are unequal to zero at parameter u.

Parameters
_tthe parameter

Definition at line 756 of file BSplineSurfaceT_impl.hh.

◆ spann()

template<class PointT >
ACG::Vec2i ACG::BSplineSurfaceT< PointT >::spann ( double  _t)

Returns the basis functions which are unequal to zero at parameter v.

Parameters
_tthe parameter

Definition at line 766 of file BSplineSurfaceT_impl.hh.

◆ surfacePoint()

template<class PointT >
PointT ACG::BSplineSurfaceT< PointT >::surfacePoint ( double  _u,
double  _v 
)

Evaluates a spline surface at parameters _u and _v.

Parameters
_uthe parameter in u direction
_vthe parameter in v direction
Returns
the surface point

Definition at line 469 of file BSplineSurfaceT_impl.hh.

◆ surfacePoint_rec()

template<class PointT >
PointT ACG::BSplineSurfaceT< PointT >::surfacePoint_rec ( double  _u,
double  _v 
)

Evaluates a spline surface at parameters _u and _v.

Slower version of surfacePoint(), which evaluates the basis functions recursively.

Parameters
_uthe parameter in u direction
_vthe parameter in v direction
Returns
the surface point

Definition at line 570 of file BSplineSurfaceT_impl.hh.

◆ surfacePointNormal()

template<class PointT >
void ACG::BSplineSurfaceT< PointT >::surfacePointNormal ( Point &  _pt,
Point &  _normal,
double  _u,
double  _v 
)

Evaluates a spline surface at parameters _u and _v.

Computes surface point and normal at the same time (optimized).

Parameters
_pointpoint output
_normalnormal output
_uthe parameter in u direction
_vthe parameter in v direction
Returns
the surface point

Definition at line 512 of file BSplineSurfaceT_impl.hh.

◆ upperu()

template<class PointT >
BSplineSurfaceT< PointT >::Scalar ACG::BSplineSurfaceT< PointT >::upperu

Returns the upper u parameter.

Definition at line 728 of file BSplineSurfaceT_impl.hh.

◆ upperv()

template<class PointT >
BSplineSurfaceT< PointT >::Scalar ACG::BSplineSurfaceT< PointT >::upperv

Returns the upper v parameter.

Definition at line 747 of file BSplineSurfaceT_impl.hh.

Member Data Documentation

◆ control_net_

template<class PointT >
ControlNet ACG::BSplineSurfaceT< PointT >::control_net_
private

Definition at line 465 of file BSplineSurfaceT.hh.

◆ cpselections_

template<class PointT >
PropertyNet ACG::BSplineSurfaceT< PointT >::cpselections_
private

list of control point properties

Definition at line 478 of file BSplineSurfaceT.hh.

◆ degree_m_

template<class PointT >
unsigned int ACG::BSplineSurfaceT< PointT >::degree_m_
private

Spline degree in m direction.

Definition at line 459 of file BSplineSurfaceT.hh.

◆ degree_n_

template<class PointT >
unsigned int ACG::BSplineSurfaceT< PointT >::degree_n_
private

Spline degree in n direction.

Definition at line 460 of file BSplineSurfaceT.hh.

◆ dimm_

template<class PointT >
unsigned int ACG::BSplineSurfaceT< PointT >::dimm_
private

number of control points in m direction

Definition at line 457 of file BSplineSurfaceT.hh.

◆ dimn_

template<class PointT >
unsigned int ACG::BSplineSurfaceT< PointT >::dimn_
private

number of control points in n direction

Definition at line 458 of file BSplineSurfaceT.hh.

◆ eselections_

template<class PointT >
PropertyNet ACG::BSplineSurfaceT< PointT >::eselections_
private

list of edge properties

Definition at line 482 of file BSplineSurfaceT.hh.

◆ knotvector_m_

template<class PointT >
Knotvector ACG::BSplineSurfaceT< PointT >::knotvector_m_
private

Knotvector in m direction.

Definition at line 462 of file BSplineSurfaceT.hh.

◆ knotvector_n_

template<class PointT >
Knotvector ACG::BSplineSurfaceT< PointT >::knotvector_n_
private

Knotvector in n direction.

Definition at line 463 of file BSplineSurfaceT.hh.

◆ ref_count_cpselections_

template<class PointT >
unsigned int ACG::BSplineSurfaceT< PointT >::ref_count_cpselections_
private

Definition at line 485 of file BSplineSurfaceT.hh.

◆ ref_count_eselections_

template<class PointT >
unsigned int ACG::BSplineSurfaceT< PointT >::ref_count_eselections_
private

Definition at line 486 of file BSplineSurfaceT.hh.


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