Developer Documentation
OpenMesh::Subdivider::Uniform::MidpointT< MeshType, RealType > Class Template Reference

#include <OpenFlipper/libs_required/OpenMesh/src/OpenMesh/Tools/Subdivider/Uniform/MidpointT.hh>

Inheritance diagram for OpenMesh::Subdivider::Uniform::MidpointT< MeshType, RealType >:
OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType > OpenMesh::Utils::Noncopyable

Public Types

typedef RealType real_t
 
typedef MeshType mesh_t
 
typedef SubdividerT< MeshType, RealType > parent_t
 
- Public Types inherited from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >
typedef MeshType mesh_t
 
typedef RealType real_t
 

Public Member Functions

 MidpointT (mesh_t &_m)
 
const char * name () const
 Return name of subdivision algorithm.
 
- Public Member Functions inherited from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >
virtual ~SubdividerT ()
 Destructor (calls detach())
 
 SubdividerT (void)
 
 SubdividerT (MeshType &_m)
 
bool operator() (MeshType &_m, size_t _n, const bool _update_points=true)
 
bool attach (MeshType &_m)
 
bool operator() (size_t _n, const bool _update_points=true)
 
void detach (void)
 

Protected Member Functions

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

Detailed Description

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

Midpoint subdivision algorithm.

With every step, the set of vertices is replaced by the midpoints of all current edges. Then, two sets of faces are created to set up the new connectivity: From all midpoints of edges surrounding an original face, a new face is created. Also, for all midpoints of edges surrounding an original vertex, a new face is created.

Note
This algorithm ignores the _update_points option.
This algorithm is best suited for closed meshes since boundaries tend to fragment into isolated faces after a few iterations.

Definition at line 27 of file MidpointT.hh.

Member Function Documentation

◆ subdivide()

template<typename MeshType , typename RealType = double>
bool OpenMesh::Subdivider::Uniform::MidpointT< MeshType, RealType >::subdivide ( mesh_t &  _m,
size_t  _n,
const bool  _update_points = true 
)
inlineprotectedvirtual

Performs one step of Midpoint subdivision.

Note
The _update_points option is ignored

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

Definition at line 48 of file MidpointT.hh.


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