Code-Eli  0.3.6
eli::geom::surface::bezier< data__, dim__, tol__ > Class Template Reference

#include <bezier.hpp>

Collaboration diagram for eli::geom::surface::bezier< data__, dim__, tol__ >:

Public Types

typedef unsigned short dimension_type
 
typedef data__ data_type
 
typedef Eigen::Matrix< data_type, 1, dim__ > point_type
 
typedef point_type control_point_type
 
typedef control_point_type::Index index_type
 
typedef tol__ tolerance_type
 
typedef Eigen::Matrix< data_type, dim__, dim__ > rotation_matrix_type
 
typedef eli::geom::general::bounding_box< data_type, dim__, tolerance_typebounding_box_type
 
typedef eli::geom::curve::bezier< data_type, dim__, tolerance_typecurve_type
 

Public Member Functions

 bezier ()
 
 bezier (const index_type &u_dim, const index_type &v_dim)
 
 bezier (const bezier< data_type, dim__, tol__ > &bs)
 
 ~bezier ()
 
bezieroperator= (const bezier< data_type, dim__, tol__ > &bs)
 
bool operator== (const bezier< data_type, dim__, tol__ > &bs) const
 
bool abouteq (const bezier< data_type, dim__, tol__ > &bs, const data_type &ttol2) const
 
bool operator!= (const bezier< data_type, dim__, tol__ > &bs) const
 
index_type degree_u () const
 
index_type degree_v () const
 
void get_parameter_min (data_type &umin, data_type &vmin) const
 
void get_parameter_max (data_type &umax, data_type &vmax) const
 
data_type get_umin () const
 
data_type get_vmin () const
 
data_type get_umax () const
 
data_type get_vmax () const
 
void resize (const index_type &u_dim, const index_type &v_dim)
 
point_type get_control_point (const index_type &i, const index_type &j) const
 
void get_bounding_box (bounding_box_type &bb) const
 
void rotate (const rotation_matrix_type &rmat)
 
void rotate (const rotation_matrix_type &rmat, const point_type &rorig)
 
void translate (const point_type &trans)
 
void scale (const data_type &s)
 
bool open_u () const
 
bool closed_u () const
 
bool open_v () const
 
bool closed_v () const
 
void set_control_point (const point_type &cp, const index_type &i, const index_type &j)
 
void reverse_u ()
 
void reverse_v ()
 
void swap_uv ()
 
void get_uconst_curve (curve_type &bc, const data_type &u) const
 
void get_vconst_curve (curve_type &bc, const data_type &v) const
 
point_type f (const data_type &u, const data_type &v) const
 
point_type f_u (const data_type &u, const data_type &v) const
 
point_type f_v (const data_type &u, const data_type &v) const
 
point_type f_uu (const data_type &u, const data_type &v) const
 
point_type f_uv (const data_type &u, const data_type &v) const
 
point_type f_vv (const data_type &u, const data_type &v) const
 
point_type f_uuu (const data_type &u, const data_type &v) const
 
point_type f_uuv (const data_type &u, const data_type &v) const
 
point_type f_uvv (const data_type &u, const data_type &v) const
 
point_type f_vvv (const data_type &u, const data_type &v) const
 
point_type normal (const data_type &u, const data_type &v) const
 
void promote_u ()
 
void promote_u_to (index_type target_degree)
 
void promote_v ()
 
void promote_v_to (index_type target_degree)
 
bool demote_u (const geom::general::continuity &u_continuity_degree=geom::general::C0)
 
bool demote_v (const geom::general::continuity &v_continuity_degree=geom::general::C0)
 
void to_cubic_u ()
 
void to_cubic_v ()
 
void split_u (bezier< data_type, dim__, tol__ > &bs_lo, bezier< data_type, dim__, tol__ > &bs_hi, const data_type &u0) const
 
void split_v (bezier< data_type, dim__, tol__ > &bs_lo, bezier< data_type, dim__, tol__ > &bs_hi, const data_type &v0) const
 
data_type eqp_distance_bound (const bezier< data_type, dim__, tol__ > &bs) const
 

Static Public Member Functions

static dimension_type dimension ()
 

Private Types

typedef Eigen::Map< Eigen::Matrix< data_type, Eigen::Dynamic, dim__ >, Eigen::Unaligned, Eigen::Stride< 1, dim__ > > control_point_matrix_type
 
typedef Eigen::Map< Eigen::Matrix< data_type, Eigen::Dynamic, dim__ >, Eigen::Unaligned, Eigen::Stride< 1, Eigen::Dynamic > > v_dir_control_point_matrix_type
 
typedef std::vector< data_typecontrol_point_container
 
typedef std::vector< control_point_matrix_typeu_control_point_matrix_container
 
typedef std::vector< v_dir_control_point_matrix_typev_control_point_matrix_container
 

Private Member Functions

void set_Bs (index_type n, index_type m)
 

Private Attributes

control_point_container point_data
 
u_control_point_matrix_container B_u
 
v_control_point_matrix_container B_v
 

Member Typedef Documentation

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef eli::geom::general::bounding_box<data_type, dim__, tolerance_type> eli::geom::surface::bezier< data__, dim__, tol__ >::bounding_box_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef std::vector<data_type> eli::geom::surface::bezier< data__, dim__, tol__ >::control_point_container
private
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef Eigen::Map<Eigen::Matrix<data_type, Eigen::Dynamic, dim__>, Eigen::Unaligned, Eigen::Stride<1, dim__> > eli::geom::surface::bezier< data__, dim__, tol__ >::control_point_matrix_type
private
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef point_type eli::geom::surface::bezier< data__, dim__, tol__ >::control_point_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef eli::geom::curve::bezier<data_type, dim__, tolerance_type> eli::geom::surface::bezier< data__, dim__, tol__ >::curve_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef data__ eli::geom::surface::bezier< data__, dim__, tol__ >::data_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef unsigned short eli::geom::surface::bezier< data__, dim__, tol__ >::dimension_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef control_point_type::Index eli::geom::surface::bezier< data__, dim__, tol__ >::index_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef Eigen::Matrix<data_type, 1, dim__> eli::geom::surface::bezier< data__, dim__, tol__ >::point_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef Eigen::Matrix<data_type, dim__, dim__> eli::geom::surface::bezier< data__, dim__, tol__ >::rotation_matrix_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef tol__ eli::geom::surface::bezier< data__, dim__, tol__ >::tolerance_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef std::vector<control_point_matrix_type> eli::geom::surface::bezier< data__, dim__, tol__ >::u_control_point_matrix_container
private
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef std::vector<v_dir_control_point_matrix_type> eli::geom::surface::bezier< data__, dim__, tol__ >::v_control_point_matrix_container
private
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef Eigen::Map<Eigen::Matrix<data_type, Eigen::Dynamic, dim__>, Eigen::Unaligned, Eigen::Stride<1, Eigen::Dynamic> > eli::geom::surface::bezier< data__, dim__, tol__ >::v_dir_control_point_matrix_type
private

Constructor & Destructor Documentation

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
eli::geom::surface::bezier< data__, dim__, tol__ >::bezier ( )
inline

vector of v-direction, i.e. direction where u is constant, curve control points in point_data

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
eli::geom::surface::bezier< data__, dim__, tol__ >::bezier ( const index_type u_dim,
const index_type v_dim 
)
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
eli::geom::surface::bezier< data__, dim__, tol__ >::bezier ( const bezier< data_type, dim__, tol__ > &  bs)
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
eli::geom::surface::bezier< data__, dim__, tol__ >::~bezier ( )
inline

Member Function Documentation

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::surface::bezier< data__, dim__, tol__ >::abouteq ( const bezier< data_type, dim__, tol__ > &  bs,
const data_type ttol2 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::surface::bezier< data__, dim__, tol__ >::closed_u ( ) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::surface::bezier< data__, dim__, tol__ >::closed_v ( ) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
index_type eli::geom::surface::bezier< data__, dim__, tol__ >::degree_u ( ) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
index_type eli::geom::surface::bezier< data__, dim__, tol__ >::degree_v ( ) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::surface::bezier< data__, dim__, tol__ >::demote_u ( const geom::general::continuity u_continuity_degree = geom::general::C0)
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::surface::bezier< data__, dim__, tol__ >::demote_v ( const geom::general::continuity v_continuity_degree = geom::general::C0)
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
static dimension_type eli::geom::surface::bezier< data__, dim__, tol__ >::dimension ( )
inlinestatic
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
data_type eli::geom::surface::bezier< data__, dim__, tol__ >::eqp_distance_bound ( const bezier< data_type, dim__, tol__ > &  bs) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::surface::bezier< data__, dim__, tol__ >::f ( const data_type u,
const data_type v 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::surface::bezier< data__, dim__, tol__ >::f_u ( const data_type u,
const data_type v 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::surface::bezier< data__, dim__, tol__ >::f_uu ( const data_type u,
const data_type v 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::surface::bezier< data__, dim__, tol__ >::f_uuu ( const data_type u,
const data_type v 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::surface::bezier< data__, dim__, tol__ >::f_uuv ( const data_type u,
const data_type v 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::surface::bezier< data__, dim__, tol__ >::f_uv ( const data_type u,
const data_type v 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::surface::bezier< data__, dim__, tol__ >::f_uvv ( const data_type u,
const data_type v 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::surface::bezier< data__, dim__, tol__ >::f_v ( const data_type u,
const data_type v 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::surface::bezier< data__, dim__, tol__ >::f_vv ( const data_type u,
const data_type v 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::surface::bezier< data__, dim__, tol__ >::f_vvv ( const data_type u,
const data_type v 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::get_bounding_box ( bounding_box_type bb) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::surface::bezier< data__, dim__, tol__ >::get_control_point ( const index_type i,
const index_type j 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::get_parameter_max ( data_type umax,
data_type vmax 
) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::get_parameter_min ( data_type umin,
data_type vmin 
) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::get_uconst_curve ( curve_type bc,
const data_type u 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
data_type eli::geom::surface::bezier< data__, dim__, tol__ >::get_umax ( ) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
data_type eli::geom::surface::bezier< data__, dim__, tol__ >::get_umin ( ) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::get_vconst_curve ( curve_type bc,
const data_type v 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
data_type eli::geom::surface::bezier< data__, dim__, tol__ >::get_vmax ( ) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
data_type eli::geom::surface::bezier< data__, dim__, tol__ >::get_vmin ( ) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::surface::bezier< data__, dim__, tol__ >::normal ( const data_type u,
const data_type v 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::surface::bezier< data__, dim__, tol__ >::open_u ( ) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::surface::bezier< data__, dim__, tol__ >::open_v ( ) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::surface::bezier< data__, dim__, tol__ >::operator!= ( const bezier< data_type, dim__, tol__ > &  bs) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bezier& eli::geom::surface::bezier< data__, dim__, tol__ >::operator= ( const bezier< data_type, dim__, tol__ > &  bs)
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::surface::bezier< data__, dim__, tol__ >::operator== ( const bezier< data_type, dim__, tol__ > &  bs) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::promote_u ( )
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::promote_u_to ( index_type  target_degree)
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::promote_v ( )
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::promote_v_to ( index_type  target_degree)
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::resize ( const index_type u_dim,
const index_type v_dim 
)
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::reverse_u ( )
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::reverse_v ( )
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::rotate ( const rotation_matrix_type rmat)
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::rotate ( const rotation_matrix_type rmat,
const point_type rorig 
)
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::scale ( const data_type s)
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::set_Bs ( index_type  n,
index_type  m 
)
inlineprivate
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::set_control_point ( const point_type cp,
const index_type i,
const index_type j 
)
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::split_u ( bezier< data_type, dim__, tol__ > &  bs_lo,
bezier< data_type, dim__, tol__ > &  bs_hi,
const data_type u0 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::split_v ( bezier< data_type, dim__, tol__ > &  bs_lo,
bezier< data_type, dim__, tol__ > &  bs_hi,
const data_type v0 
) const
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::swap_uv ( )
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::to_cubic_u ( )
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::to_cubic_v ( )
inline

Here is the call graph for this function:

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::surface::bezier< data__, dim__, tol__ >::translate ( const point_type trans)
inline

Here is the call graph for this function:

Member Data Documentation

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
u_control_point_matrix_container eli::geom::surface::bezier< data__, dim__, tol__ >::B_u
private

raw control points stored in vector. The order is {x,y...}_(0,0) {x,y...}_(1,0) ... {x,y...}_(n,0) {x,y...}_(0,1) {x,y...}_(1,1) ... {x,y...}_(n,1) ... {x,y...}_(n,m)

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
v_control_point_matrix_container eli::geom::surface::bezier< data__, dim__, tol__ >::B_v
private

vector of u-direction, i.e. direction where v is constant, curve control points in point_data

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
control_point_container eli::geom::surface::bezier< data__, dim__, tol__ >::point_data
private

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