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 &) |
Prepare mesh, e.g. 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.
|
inlineprotectedvirtual |
Prepare mesh, e.g.
add properties
You have to reimplement this function to setup your mesh. The default implementation will always return false and therefore block your algorithm.
Reimplemented 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 >.