OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType > Class Template Reference

#include <ModifiedButterFlyT.hh>

Inheritance diagram for OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef MeshType mesh_t
typedef SubdividerT< mesh_t,
real_t
parent_t
typedef RealType real_t
typedef std::vector< real_tweight_t
typedef std::vector
< std::vector< real_t > > 
weights_t

Public Member Functions

void init_weights (size_t _max_valence=20)
 Pre-compute weights.
 ModifiedButterflyT (mesh_t &_m)
 ModifiedButterflyT ()
const char * name () const
 Return name of subdivision algorithm.
 ~ModifiedButterflyT ()

Protected Member Functions

bool cleanup (mesh_t &_m)
 Cleanup mesh after usage, e.g. remove added properties.
bool prepare (mesh_t &_m)
 Prepare mesh, e.g. add properties.
bool subdivide (mesh_t &_m, size_t _n)
 Subdivide mesh _m _n times.

Private Member Functions

void compute_midpoint (mesh_t &_m, const typename mesh_t::EdgeHandle &_eh)
void corner_cutting (mesh_t &_m, const typename mesh_t::HalfedgeHandle &_he)
void split_edge (mesh_t &_m, const typename mesh_t::EdgeHandle &_eh)
void split_face (mesh_t &_m, const typename mesh_t::FaceHandle &_fh)

Private Attributes

OpenMesh::EPropHandleT
< typename mesh_t::Point > 
ep_pos_
OpenMesh::VPropHandleT
< typename mesh_t::Point > 
vp_pos_
weights_t weights

Detailed Description

template<typename MeshType, typename RealType = float>
class OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >

Modified Butterfly subdivision algorithm

Implementation of the modified butterfly scheme of Denis Zorin, Peter Schröder and Wim Sweldens, ``Interpolating subdivision for meshes with arbitrary topology,'' in Proceedings of SIGGRAPH 1996, ACM SIGGRAPH, 1996, pp. 189-192.

Clement Courbet - clement.courbet@ecp.fr

Definition at line 92 of file ModifiedButterFlyT.hh.


Member Typedef Documentation

template<typename MeshType , typename RealType = float>
typedef MeshType OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::mesh_t
template<typename MeshType , typename RealType = float>
typedef SubdividerT< mesh_t, real_t > OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::parent_t

Definition at line 98 of file ModifiedButterFlyT.hh.

template<typename MeshType , typename RealType = float>
typedef RealType OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::real_t
template<typename MeshType , typename RealType = float>
typedef std::vector<real_t> OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::weight_t

Definition at line 101 of file ModifiedButterFlyT.hh.

template<typename MeshType , typename RealType = float>
typedef std::vector< std::vector<real_t> > OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::weights_t

Definition at line 100 of file ModifiedButterFlyT.hh.


Constructor & Destructor Documentation

template<typename MeshType , typename RealType = float>
OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::ModifiedButterflyT (  )  [inline]

Definition at line 106 of file ModifiedButterFlyT.hh.

template<typename MeshType , typename RealType = float>
OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::ModifiedButterflyT ( mesh_t _m  )  [inline]

Definition at line 110 of file ModifiedButterFlyT.hh.

template<typename MeshType , typename RealType = float>
OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::~ModifiedButterflyT (  )  [inline]

Definition at line 114 of file ModifiedButterFlyT.hh.


Member Function Documentation

template<typename MeshType , typename RealType = float>
bool OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::cleanup ( mesh_t _m  )  [inline, protected, virtual]

Cleanup mesh after usage, e.g. remove added properties.

Implements OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.

Definition at line 169 of file ModifiedButterFlyT.hh.

template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::compute_midpoint ( mesh_t _m,
const typename mesh_t::EdgeHandle &  _eh 
) [inline, private]

Definition at line 366 of file ModifiedButterFlyT.hh.

template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::corner_cutting ( mesh_t _m,
const typename mesh_t::HalfedgeHandle &  _he 
) [inline, private]

Definition at line 244 of file ModifiedButterFlyT.hh.

template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::init_weights ( size_t  _max_valence = 20  )  [inline]

Pre-compute weights.

Definition at line 124 of file ModifiedButterFlyT.hh.

template<typename MeshType , typename RealType = float>
const char* OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::name (  )  const [inline, virtual]

Return name of subdivision algorithm.

Implements OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.

Definition at line 120 of file ModifiedButterFlyT.hh.

template<typename MeshType , typename RealType = float>
bool OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::prepare ( mesh_t _m  )  [inline, protected, virtual]

Prepare mesh, e.g. add properties.

Implements OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.

Definition at line 161 of file ModifiedButterFlyT.hh.

template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::split_edge ( mesh_t _m,
const typename mesh_t::EdgeHandle &  _eh 
) [inline, private]

Definition at line 305 of file ModifiedButterFlyT.hh.

template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::split_face ( mesh_t _m,
const typename mesh_t::FaceHandle &  _fh 
) [inline, private]

Definition at line 230 of file ModifiedButterFlyT.hh.

template<typename MeshType , typename RealType = float>
bool OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::subdivide ( mesh_t _m,
size_t  _n 
) [inline, protected, virtual]

Subdivide mesh _m _n times.

Implements OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.

Definition at line 177 of file ModifiedButterFlyT.hh.


Member Data Documentation

template<typename MeshType , typename RealType = float>
OpenMesh::EPropHandleT< typename mesh_t::Point > OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::ep_pos_ [private]

Definition at line 542 of file ModifiedButterFlyT.hh.

template<typename MeshType , typename RealType = float>
OpenMesh::VPropHandleT< typename mesh_t::Point > OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::vp_pos_ [private]

Definition at line 541 of file ModifiedButterFlyT.hh.

template<typename MeshType , typename RealType = float>
weights_t OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >::weights [private]

Definition at line 544 of file ModifiedButterFlyT.hh.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


openmesh
Author(s): Benjamin Pitzer
autogenerated on Fri Jan 11 12:11:20 2013