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

#include <Sqrt3InterpolatingSubdividerLabsikGreinerT.hh>

Inheritance diagram for OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef MeshType mesh_t
typedef SubdividerT< mesh_t,
real_t
parent_t
typedef RealType real_t
typedef std::vector
< std::vector< real_t > > 
weights_t

Public Member Functions

void init_weights (size_t _max_valence=50)
 Pre-compute weights.
 InterpolatingSqrt3LGT (MeshType &_m)
 InterpolatingSqrt3LGT (void)
const char * name () const
 Return name of subdivision algorithm.
virtual ~InterpolatingSqrt3LGT ()

Protected Member Functions

bool cleanup (MeshType &_m)
 Cleanup mesh after usage, e.g. remove added properties.
bool prepare (MeshType &_m)
 Prepare mesh, e.g. add properties.
bool subdivide (MeshType &_m, size_t _n)
 Subdivide mesh _m _n times.

Private Member Functions

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

Private Attributes

OpenMesh::EPropHandleT
< std::pair< typename
MeshType::VertexHandle,
typename
MeshType::VertexHandle > > 
ep_nv_
OpenMesh::FPropHandleT
< typename
MeshType::VertexHandle > 
fp_pos_
OpenMesh::MPropHandleT< size_t > mp_gen_
weights_t weights_

Detailed Description

template<typename MeshType, typename RealType = float>
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 - clement.courbet@ecp.fr

Definition at line 106 of file Sqrt3InterpolatingSubdividerLabsikGreinerT.hh.


Member Typedef Documentation

template<typename MeshType , typename RealType = float>
typedef MeshType OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::mesh_t
template<typename MeshType , typename RealType = float>
typedef SubdividerT< mesh_t, real_t > OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::parent_t
template<typename MeshType , typename RealType = float>
typedef RealType OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::real_t
template<typename MeshType , typename RealType = float>
typedef std::vector< std::vector<real_t> > OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::weights_t

Constructor & Destructor Documentation

template<typename MeshType , typename RealType = float>
OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::InterpolatingSqrt3LGT ( void   )  [inline]
template<typename MeshType , typename RealType = float>
OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::InterpolatingSqrt3LGT ( MeshType &  _m  )  [inline]
template<typename MeshType , typename RealType = float>
virtual OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::~InterpolatingSqrt3LGT (  )  [inline, virtual]

Member Function Documentation

template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::boundary_split ( MeshType &  _m,
const typename MeshType::HalfedgeHandle &  _heh 
) [inline, private]
template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::boundary_split ( MeshType &  _m,
const typename MeshType::HalfedgeHandle &  _heh,
const typename MeshType::VertexHandle &  _vh 
) [inline, private]
template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::boundary_split ( MeshType &  _m,
const typename MeshType::FaceHandle &  _fh 
) [inline, private]
template<typename MeshType , typename RealType = float>
bool OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::cleanup ( MeshType &  _m  )  [inline, protected, virtual]

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

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

Definition at line 184 of file Sqrt3InterpolatingSubdividerLabsikGreinerT.hh.

template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::compute_new_boundary_points ( MeshType &  _m,
const typename MeshType::EdgeHandle &  _eh 
) [inline, private]
template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::init_weights ( size_t  _max_valence = 50  )  [inline]

Pre-compute weights.

Definition at line 134 of file Sqrt3InterpolatingSubdividerLabsikGreinerT.hh.

template<typename MeshType , typename RealType = float>
const char* OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::name (  )  const [inline, virtual]

Return name of subdivision algorithm.

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

Definition at line 131 of file Sqrt3InterpolatingSubdividerLabsikGreinerT.hh.

template<typename MeshType , typename RealType = float>
bool OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::prepare ( MeshType &  _m  )  [inline, protected, virtual]

Prepare mesh, e.g. add properties.

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

Definition at line 171 of file Sqrt3InterpolatingSubdividerLabsikGreinerT.hh.

template<typename MeshType , typename RealType = float>
bool OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::subdivide ( MeshType &  _m,
size_t  _n 
) [inline, protected, virtual]

Member Data Documentation

template<typename MeshType , typename RealType = float>
OpenMesh::EPropHandleT< std::pair< typename MeshType::VertexHandle, typename MeshType::VertexHandle> > OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::ep_nv_ [private]
template<typename MeshType , typename RealType = float>
OpenMesh::FPropHandleT< typename MeshType::VertexHandle > OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::fp_pos_ [private]
template<typename MeshType , typename RealType = float>
OpenMesh::MPropHandleT< size_t > OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::mp_gen_ [private]
template<typename MeshType , typename RealType = float>
weights_t OpenMesh::Subdivider::Uniform::InterpolatingSqrt3LGT< MeshType, RealType >::weights_ [private]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


openmesh
Author(s): Benjamin Pitzer
autogenerated on Fri Jan 11 12:11:20 2013