OpenMesh
OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType > Class Template Referenceabstract

Abstract base class for uniform subdivision algorithms. More...

#include <OpenMesh/Tools/Subdivider/Uniform/SubdividerT.hh>

Inheritance diagram for OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >:
Collaboration diagram for OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >:

Public Types

typedef MeshType mesh_t
 
typedef RealType real_t
 

Public Member Functions

virtual ~SubdividerT ()
 Destructor (calls detach())
 
virtual const char * name (void) const =0
 Return name of subdivision algorithm.
 
Constructors
 SubdividerT (void)
 Constructor to be used with interface 2. More...
 
 SubdividerT (MeshType &_m)
 Constructor to be used with interface 1 (calls attach()) More...
 
Interface 1
bool operator() (MeshType &_m, size_t _n, const bool _update_points=true)
 Subdivide the mesh _m _n times. More...
 
Interface 2
bool attach (MeshType &_m)
 Attach mesh _m to self. More...
 
bool operator() (size_t _n, const bool _update_points=true)
 Subdivide the attached _n times. More...
 
void detach (void)
 Detach an eventually attached mesh. More...
 

Protected Member Functions

Overload theses methods
virtual bool prepare (MeshType &_m)=0
 Prepare mesh, e.g. add properties.
 
virtual bool subdivide (MeshType &_m, size_t _n, const bool _update_points=true)=0
 Subdivide mesh _m _n times.
 
virtual bool cleanup (MeshType &_m)=0
 Cleanup mesh after usage, e.g. remove added properties.
 

Detailed Description

template<typename MeshType, typename RealType = double>
class OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >

Abstract base class for uniform subdivision algorithms.

A derived class must overload the following functions:

  1. const char* name() const
  2. void prepare(MeshType&)
  3. void subdivide(MeshType&, size_t, bool)
  4. void cleanup(MeshType&)

Constructor & Destructor Documentation

◆ SubdividerT() [1/2]

template<typename MeshType , typename RealType = double>
OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >::SubdividerT ( void  )
inline

Constructor to be used with interface 2.

See also
attach(), operator()(size_t), detach()

◆ SubdividerT() [2/2]

template<typename MeshType , typename RealType = double>
OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >::SubdividerT ( MeshType &  _m)
inlineexplicit

Constructor to be used with interface 1 (calls attach())

See also
operator()( MeshType&, size_t )

Member Function Documentation

◆ attach()

template<typename MeshType , typename RealType = double>
bool OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >::attach ( MeshType &  _m)
inline

Attach mesh _m to self.

See also
SubdividerT(), operator()(size_t), detach()

◆ detach()

template<typename MeshType , typename RealType = double>
void OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >::detach ( void  )
inline

Detach an eventually attached mesh.

See also
SubdividerT(), attach(), operator()(size_t)

◆ operator()() [1/2]

template<typename MeshType , typename RealType = double>
bool OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >::operator() ( MeshType &  _m,
size_t  _n,
const bool  _update_points = true 
)
inline

Subdivide the mesh _m _n times.

See also
SubdividerT(MeshType&)

◆ operator()() [2/2]

template<typename MeshType , typename RealType = double>
bool OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >::operator() ( size_t  _n,
const bool  _update_points = true 
)
inline

Subdivide the attached _n times.

See also
SubdividerT(), attach(), detach()

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

Project OpenMesh, ©  Computer Graphics Group, RWTH Aachen. Documentation generated using doxygen .