OpenMesh
OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType > Class Template Reference

Uniform Interpolating Sqrt3 subdivision algorithm More...

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

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

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
 
- Public Types inherited from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >
typedef MeshType mesh_t
 
typedef RealType real_t
 

Public Member Functions

 InterpolatingSqrt3LGT (MeshType &_m)
 
const char * name () const override
 Return name of subdivision algorithm. More...
 
void init_weights (size_t _max_valence=50)
 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 (MeshType &_m) override
 Prepare mesh, e.g. More...
 
bool cleanup (MeshType &_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 >

Detailed Description

template<typename MeshType, typename RealType = double>
class OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >

Uniform Interpolating Sqrt3 subdivision algorithm

Implementation of the interpolating Labsik Greiner Subdivider as described in "interpolating sqrt(3) subdivision" Labsik & Greiner, 2000

Clement Courbet - cleme.nosp@m.nt.c.nosp@m.ourbe.nosp@m.t@ec.nosp@m.p.fr

Member Function Documentation

◆ cleanup()

template<typename MeshType , typename RealType = double>
bool OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::cleanup ( MeshType &  _m)
inlineoverrideprotectedvirtual

Cleanup mesh after usage, e.g. remove added properties.

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

◆ name()

template<typename MeshType , typename RealType = double>
const char * OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::name ( ) const
inlineoverridevirtual

Return name of subdivision algorithm.

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

◆ prepare()

template<typename MeshType , typename RealType = double>
bool OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::prepare ( MeshType &  )
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 >.

◆ subdivide()

template<typename MeshType , typename RealType = double>
bool OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::subdivide ( MeshType &  _m,
size_t  _n,
const bool  _update_points = true 
)
inlineoverrideprotectedvirtual

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, ©  Visual Computing Institute, RWTH Aachen. Documentation generated using doxygen .