OpenMesh

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Classes | Public Types | Public Member Functions | Protected Member Functions | List of all members
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 >:
[legend]
Collaboration diagram for OpenMesh::Subdivider::Uniform::LoopT< MeshType, RealType >:
[legend]

## Classes

struct | compute_weight
| Helper functor to compute weights for Loop-subdivision.

## 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.
| SubdividerT (MeshType &_m)
| Constructor to be used with interface 1 (calls attach())
bool | operator() (MeshType &_m, size_t _n, const bool _update_points=true)
| Subdivide the mesh `_m` `_n` times.
bool | attach (MeshType &_m)
| Attach mesh `_m` to self.
bool | operator() (size_t _n, const bool _update_points=true)
| Subdivide the attached `_n` times.
void | detach (void)
| Detach an eventually attached mesh.

## 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.
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:

- OpenMesh/Tools/Subdivider/Uniform/LoopT.hh