OpenMesh
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
OpenMesh::Subdivider::Uniform::LoopT< MeshType, RealType > Class Template Reference

Uniform Loop subdivision algorithm. More...

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

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

Public Types

typedef RealType real_t
 
typedef MeshType mesh_t
 
typedef SubdividerT< mesh_t,
real_t > 
parent_t
 
typedef std::pair< real_t, real_t > weight_t
 
typedef std::vector< std::pair
< real_t, real_t > > 
weights_t
 
- Public Types inherited from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >
typedef MeshType mesh_t
 
typedef RealType real_t
 

Public Member Functions

 LoopT (mesh_t &_m)
 
const char * name () const
 Return name of subdivision algorithm.
 
void init_weights (size_t _max_valence=50)
 Pre-compute weights.
 
- Public Member Functions inherited from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >
virtual ~SubdividerT ()
 Descructor (calls detach())
 
 SubdividerT (void)
 Constructor to be used with interface 2. More...
 
 SubdividerT (MeshType &_m)
 Constructor to be used with interface 1 (calls attach()) More...
 
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)
 Prepare mesh, e.g. add properties.
 
bool cleanup (mesh_t &_m)
 Cleanup mesh after usage, e.g. remove added properties.
 
bool subdivide (mesh_t &_m, size_t _n, const bool _update_points=true)
 Subdivide mesh _m _n times. More...
 
Overload theses methods

Detailed Description

template<typename MeshType, typename RealType = float>
class OpenMesh::Subdivider::Uniform::LoopT< MeshType, RealType >

Uniform Loop subdivision algorithm.

Implementation as described in

C. T. Loop, "Smooth Subdivision Surfaces Based on Triangles", M.S. Thesis, Department of Mathematics, University of Utah, August 1987.

Member Function Documentation

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

Subdivide mesh _m _n times.

TODO:Implement fixed positions

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


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

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