Developer Documentation
OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType > Class Template Reference

#include <libs_required/OpenMesh/src/OpenMesh/Tools/Subdivider/Uniform/Sqrt3T.hh>

Inheritance diagram for OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >:
OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType > OpenMesh::Utils::Noncopyable

Classes

struct  compute_weight
 

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

 Sqrt3T (MeshType &_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)
 
 SubdividerT (MeshType &_m)
 
bool operator() (MeshType &_m, size_t _n, const bool _update_points=true)
 
bool attach (MeshType &_m)
 
bool operator() (size_t _n, const bool _update_points=true)
 
void detach (void)
 

Protected Member Functions

bool prepare (MeshType &_m)
 Prepare mesh, e.g. add properties.
 
bool cleanup (MeshType &_m)
 Cleanup mesh after usage, e.g. remove added properties.
 
bool subdivide (MeshType &_m, size_t _n, const bool _update_points=true)
 Subdivide mesh _m _n times. More...
 
Overload theses methods

Private Member Functions

void compute_new_boundary_points (MeshType &_m, const typename MeshType::EdgeHandle &_eh)
 
void boundary_split (MeshType &_m, const typename MeshType::FaceHandle &_fh)
 
void boundary_split (MeshType &_m, const typename MeshType::HalfedgeHandle &_heh, const typename MeshType::VertexHandle &_vh)
 
void boundary_split (MeshType &_m, const typename MeshType::HalfedgeHandle &_heh)
 

Private Attributes

weights_t weights_
 
OpenMesh::VPropHandleT< typename MeshType::Point > vp_pos_
 
OpenMesh::EPropHandleT< std::pair< typename MeshType::VertexHandle, typename MeshType::VertexHandle > > ep_nv_
 
OpenMesh::MPropHandleT< size_t > mp_gen_
 
const real_t _1over3
 
const real_t _1over27
 

Detailed Description

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

Uniform Sqrt3 subdivision algorithm

Implementation as described in

L. Kobbelt, "Sqrt(3) subdivision", Proceedings of SIGGRAPH 2000.

Definition at line 103 of file Sqrt3T.hh.

Member Function Documentation

template<typename MeshType, typename RealType = float>
bool OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::subdivide ( MeshType &  _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 >.

Definition at line 165 of file Sqrt3T.hh.


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