![]() |
OpenMesh
|
Abstract base class for uniform subdivision algorithms. More...
#include <OpenMesh/Tools/Subdivider/Uniform/SubdividerT.hh>


Public Types | |
| typedef MeshType | mesh_t |
| typedef RealType | real_t |
Public Member Functions | |
Constructors | |
| SubdividerT (void) | |
| Constructor to be used with interface 2. More... | |
| SubdividerT (MeshType &_m) | |
| Constructor to be used with interface 1 (calls attach()) More... | |
| virtual | ~SubdividerT () |
| Destructor (calls detach()) | |
| virtual const char * | name (void) const =0 |
| Return name of subdivision algorithm. 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... | |
Overload theses methods | |
| virtual bool | prepare (MeshType &_m)=0 |
| Prepare mesh, e.g. add properties. More... | |
| virtual bool | subdivide (MeshType &_m, size_t _n, const bool _update_points=true)=0 |
Subdivide mesh _m _n times. More... | |
| virtual bool | cleanup (MeshType &_m)=0 |
| Cleanup mesh after usage, e.g. remove added properties. More... | |
Abstract base class for uniform subdivision algorithms.
A derived class must overload the following functions:
|
inline |
|
inlineexplicit |
Constructor to be used with interface 1 (calls attach())
|
inline |
Attach mesh _m to self.
|
protectedpure virtual |
Cleanup mesh after usage, e.g. remove added properties.
Implemented in OpenMesh::Subdivider::Uniform::LongestEdgeT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::MidpointT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::LoopT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::CatmullClarkT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::CompositeT< MeshType, double >, OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >, and OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >.
|
inline |
Detach an eventually attached mesh.
|
pure virtual |
Return name of subdivision algorithm.
Implemented in OpenMesh::Subdivider::Uniform::LongestEdgeT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::MidpointT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::CatmullClarkT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::CompositeLoopT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::CompositeSqrt3T< MeshType, RealType >, OpenMesh::Subdivider::Uniform::LoopT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >, OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >, and OpenMesh::Subdivider::Uniform::CompositeT< MeshType, double >.
|
inline |
Subdivide the mesh _m _n times.
|
inline |
Subdivide the attached _n times.
|
protectedpure virtual |
Prepare mesh, e.g. add properties.
Implemented in OpenMesh::Subdivider::Uniform::LongestEdgeT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::MidpointT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::LoopT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::CatmullClarkT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::CompositeT< MeshType, double >, OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >, and OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >.
|
protectedpure virtual |
Subdivide mesh _m _n times.
Implemented in OpenMesh::Subdivider::Uniform::MidpointT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::LoopT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::LongestEdgeT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::CatmullClarkT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::CompositeT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::CompositeT< MeshType, double >, OpenMesh::Subdivider::Uniform::ModifiedButterflyT< MeshType, RealType >, OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >, and OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >.