OpenMesh
|
Modified Butterfly subdivision algorithm. More...
#include <OpenMesh/Tools/Subdivider/Uniform/ModifiedButterFlyT.hh>
Public Types | |
typedef RealType | real_t |
typedef MeshType | mesh_t |
typedef SubdividerT< mesh_t, real_t > | parent_t |
typedef std::vector< std::vector< real_t > > | weights_t |
typedef std::vector< real_t > | weight_t |
Public Types inherited from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType > | |
typedef MeshType | mesh_t |
typedef RealType | real_t |
Public Member Functions | |
ModifiedButterflyT (mesh_t &_m) | |
const char * | name () const override |
Return name of subdivision algorithm. More... | |
void | init_weights (size_t _max_valence=30) |
Pre-compute weights. | |
Public Member Functions inherited from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType > | |
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()) | |
bool | operator() (MeshType &_m, size_t _n, const bool _update_points=true) |
Subdivide the mesh _m _n times. More... | |
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 | |
bool | prepare (mesh_t &_m) override |
Prepare mesh, e.g. More... | |
bool | cleanup (mesh_t &_m) override |
Cleanup mesh after usage, e.g. remove added properties. More... | |
bool | subdivide (MeshType &_m, size_t _n, const bool _update_points=true) override |
Subdivide mesh _m _n times. More... | |
Protected Member Functions inherited from OpenMesh::Subdivider::Uniform::SubdividerT< 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 - cleme.nosp@m.nt.c.nosp@m.ourbe.nosp@m.t@ec.nosp@m.p.fr
|
inlineoverrideprotectedvirtual |
Cleanup mesh after usage, e.g. remove added properties.
Implements OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.
|
inlineoverridevirtual |
Return name of subdivision algorithm.
Implements OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.
|
inlineoverrideprotectedvirtual |
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 from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.
|
inlineoverrideprotectedvirtual |
Subdivide mesh _m
_n
times.
TODO:Implement fixed positions
Implements OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.