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

#include <bezier.hpp>

Inheritance diagram for eli::geom::curve::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 point_type::Index index_type
 
typedef geom::curve::fit_container< data_type, index_type, dim__, dim__ > fit_container_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
 

Public Member Functions

 bezier ()
 
 bezier (const index_type &n)
 
 bezier (const bezier< data_type, dim__, tolerance_type > &bc)
 
 ~bezier ()
 
bezieroperator= (const bezier< data_type, dim__, tolerance_type > &bc)
 
bool operator== (const bezier< data_type, dim__, tolerance_type > &bc) const
 
bool operator!= (const bezier< data_type, dim__, tolerance_type > &bc) const
 
bool approximately_equal (const bezier< data_type, dim__, tolerance_type > &bc) const
 
data_type eqp_distance_bound (const bezier< data_type, dim__, tolerance_type > &bc) const
 
void clear ()
 
void resize (const index_type &t_dim)
 
index_type degree () const
 
data_type get_tmax () const
 
data_type get_t0 () const
 
void set_control_point (const control_point_type &cp, const index_type &i)
 
control_point_type get_control_point (const index_type &i) const
 
void reflect_xy ()
 
void reflect_xz ()
 
void reflect_yz ()
 
void reflect (const point_type &normal)
 
void reflect (const point_type &normal, const data_type &d)
 
void reverse ()
 
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 () const
 
bool closed () const
 
point_type f (const data_type &t) const
 
point_type fp (const data_type &t) const
 
point_type fpp (const data_type &t) const
 
point_type fppp (const data_type &t) const
 
point_type tangent (const data_type &t) const
 
void frenet_serret_frame (point_type &t, point_type &n, point_type &b, const data_type &t0)
 
void degree_promote ()
 
void degree_promote_to (const index_type target_degree)
 
bool degree_demote (const geom::general::continuity &continuity_degree=geom::general::C0)
 
void degree_to_cubic ()
 
void split (bezier< data_type, dim__ > &bc_l, bezier< data_type, dim__ > &bc_r, const data_type &t0) const
 
void fit (const fit_container_type &fcon, const index_type &deg_in)
 
void fit (std::vector< data_type > &t, const fit_container_type &fcon, const index_type &deg_in)
 
data_type fit_with_error (const fit_container_type &fcon, const index_type &deg_in)
 
data_type fit_with_error (std::vector< data_type > &t, const fit_container_type &fcon, const index_type &deg_in)
 
void interpolate (const fit_container_type &fcon)
 
void interpolate (std::vector< data_type > &t, const fit_container_type &fcon)
 

Static Public Member Functions

static dimension_type dimension ()
 

Private Types

typedef Eigen::Matrix< data_type, Eigen::Dynamic, dim__ > control_point_matrix_type
 
typedef Eigen::Matrix< data_type, Eigen::Dynamic, dim__ > row_pts_type
 
typedef Eigen::Matrix< data_type, Eigen::Dynamic, 1 > col_type
 
typedef Eigen::Matrix< data_type, 1, Eigen::Dynamic > row_type
 
typedef Eigen::Matrix< data_type, Eigen::Dynamic, Eigen::Dynamic > mat_type
 

Private Member Functions

void determine_t (std::vector< data_type > &t, const std::vector< point_type, Eigen::aligned_allocator< point_type > > &pts, bool closed) const
 
void fit_only (std::vector< data_type > &t, const fit_container_type &fcon, const index_type &deg_in)
 
data_type est_fit_error (std::vector< data_type > &t, const fit_container_type &fcon)
 

Private Attributes

control_point_matrix_type B
 

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::curve::bezier< data__, dim__, tol__ >::bounding_box_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef Eigen::Matrix<data_type, Eigen::Dynamic, 1> eli::geom::curve::bezier< data__, dim__, tol__ >::col_type
private
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef Eigen::Matrix<data_type, Eigen::Dynamic, dim__> eli::geom::curve::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::curve::bezier< data__, dim__, tol__ >::control_point_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef data__ eli::geom::curve::bezier< data__, dim__, tol__ >::data_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef unsigned short eli::geom::curve::bezier< data__, dim__, tol__ >::dimension_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef geom::curve::fit_container<data_type, index_type, dim__, dim__> eli::geom::curve::bezier< data__, dim__, tol__ >::fit_container_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef point_type::Index eli::geom::curve::bezier< data__, dim__, tol__ >::index_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef Eigen::Matrix<data_type, Eigen::Dynamic, Eigen::Dynamic> eli::geom::curve::bezier< data__, dim__, tol__ >::mat_type
private
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef Eigen::Matrix<data_type, 1, dim__> eli::geom::curve::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::curve::bezier< data__, dim__, tol__ >::rotation_matrix_type
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef Eigen::Matrix<data_type, Eigen::Dynamic, dim__> eli::geom::curve::bezier< data__, dim__, tol__ >::row_pts_type
private
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef Eigen::Matrix<data_type, 1, Eigen::Dynamic> eli::geom::curve::bezier< data__, dim__, tol__ >::row_type
private
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
typedef tol__ eli::geom::curve::bezier< data__, dim__, tol__ >::tolerance_type

Constructor & Destructor Documentation

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
eli::geom::curve::bezier< data__, dim__, tol__ >::bezier ( )
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
eli::geom::curve::bezier< data__, dim__, tol__ >::bezier ( const index_type n)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
eli::geom::curve::bezier< data__, dim__, tol__ >::bezier ( const bezier< data_type, dim__, tolerance_type > &  bc)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
eli::geom::curve::bezier< data__, dim__, tol__ >::~bezier ( )
inline

Member Function Documentation

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::curve::bezier< data__, dim__, tol__ >::approximately_equal ( const bezier< data_type, dim__, tolerance_type > &  bc) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::clear ( )
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::curve::bezier< data__, dim__, tol__ >::closed ( ) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
index_type eli::geom::curve::bezier< data__, dim__, tol__ >::degree ( ) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::curve::bezier< data__, dim__, tol__ >::degree_demote ( const geom::general::continuity continuity_degree = geom::general::C0)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::degree_promote ( )
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::degree_promote_to ( const index_type  target_degree)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::degree_to_cubic ( )
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::determine_t ( std::vector< data_type > &  t,
const std::vector< point_type, Eigen::aligned_allocator< point_type > > &  pts,
bool  closed 
) const
inlineprivate

control polygon coordinates

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
static dimension_type eli::geom::curve::bezier< data__, dim__, tol__ >::dimension ( )
inlinestatic
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
data_type eli::geom::curve::bezier< data__, dim__, tol__ >::eqp_distance_bound ( const bezier< data_type, dim__, tolerance_type > &  bc) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
data_type eli::geom::curve::bezier< data__, dim__, tol__ >::est_fit_error ( std::vector< data_type > &  t,
const fit_container_type fcon 
)
inlineprivate
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::curve::bezier< data__, dim__, tol__ >::f ( const data_type t) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::fit ( const fit_container_type fcon,
const index_type deg_in 
)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::fit ( std::vector< data_type > &  t,
const fit_container_type fcon,
const index_type deg_in 
)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::fit_only ( std::vector< data_type > &  t,
const fit_container_type fcon,
const index_type deg_in 
)
inlineprivate
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
data_type eli::geom::curve::bezier< data__, dim__, tol__ >::fit_with_error ( const fit_container_type fcon,
const index_type deg_in 
)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
data_type eli::geom::curve::bezier< data__, dim__, tol__ >::fit_with_error ( std::vector< data_type > &  t,
const fit_container_type fcon,
const index_type deg_in 
)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::curve::bezier< data__, dim__, tol__ >::fp ( const data_type t) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::curve::bezier< data__, dim__, tol__ >::fpp ( const data_type t) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::curve::bezier< data__, dim__, tol__ >::fppp ( const data_type t) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::frenet_serret_frame ( point_type t,
point_type n,
point_type b,
const data_type t0 
)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::get_bounding_box ( bounding_box_type bb) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
control_point_type eli::geom::curve::bezier< data__, dim__, tol__ >::get_control_point ( const index_type i) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
data_type eli::geom::curve::bezier< data__, dim__, tol__ >::get_t0 ( ) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
data_type eli::geom::curve::bezier< data__, dim__, tol__ >::get_tmax ( ) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::interpolate ( const fit_container_type fcon)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::interpolate ( std::vector< data_type > &  t,
const fit_container_type fcon 
)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::curve::bezier< data__, dim__, tol__ >::open ( ) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::curve::bezier< data__, dim__, tol__ >::operator!= ( const bezier< data_type, dim__, tolerance_type > &  bc) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bezier& eli::geom::curve::bezier< data__, dim__, tol__ >::operator= ( const bezier< data_type, dim__, tolerance_type > &  bc)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
bool eli::geom::curve::bezier< data__, dim__, tol__ >::operator== ( const bezier< data_type, dim__, tolerance_type > &  bc) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::reflect ( const point_type normal)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::reflect ( const point_type normal,
const data_type d 
)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::reflect_xy ( )
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::reflect_xz ( )
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::reflect_yz ( )
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::resize ( const index_type t_dim)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::reverse ( )
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::rotate ( const rotation_matrix_type rmat)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::rotate ( const rotation_matrix_type rmat,
const point_type rorig 
)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::scale ( const data_type s)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::set_control_point ( const control_point_type cp,
const index_type i 
)
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::split ( bezier< data_type, dim__ > &  bc_l,
bezier< data_type, dim__ > &  bc_r,
const data_type t0 
) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
point_type eli::geom::curve::bezier< data__, dim__, tol__ >::tangent ( const data_type t) const
inline
template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
void eli::geom::curve::bezier< data__, dim__, tol__ >::translate ( const point_type trans)
inline

Member Data Documentation

template<typename data__, unsigned short dim__, typename tol__ = eli::util::tolerance<data__>>
control_point_matrix_type eli::geom::curve::bezier< data__, dim__, tol__ >::B
private

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