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

#include <Sqrt3T.hh>

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

List of all members.

Classes

struct  compute_weight

Public Types

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

Public Member Functions

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

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

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

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 96 of file Sqrt3T.hh.


Member Typedef Documentation

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

Reimplemented from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.

Definition at line 101 of file Sqrt3T.hh.

template<typename MeshType , typename RealType = float>
typedef SubdividerT< mesh_t, real_t > OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::parent_t

Definition at line 102 of file Sqrt3T.hh.

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

Reimplemented from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >.

Definition at line 100 of file Sqrt3T.hh.

template<typename MeshType , typename RealType = float>
typedef std::pair< real_t, real_t > OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::weight_t

Definition at line 104 of file Sqrt3T.hh.

template<typename MeshType , typename RealType = float>
typedef std::vector< std::pair<real_t,real_t> > OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::weights_t

Definition at line 105 of file Sqrt3T.hh.


Constructor & Destructor Documentation

template<typename MeshType , typename RealType = float>
OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::Sqrt3T ( void   )  [inline]

Definition at line 110 of file Sqrt3T.hh.

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

Definition at line 113 of file Sqrt3T.hh.

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

Definition at line 116 of file Sqrt3T.hh.


Member Function Documentation

template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::boundary_split ( MeshType &  _m,
const typename MeshType::HalfedgeHandle &  _heh 
) [inline, private]

Definition at line 452 of file Sqrt3T.hh.

template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::boundary_split ( MeshType &  _m,
const typename MeshType::HalfedgeHandle &  _heh,
const typename MeshType::VertexHandle &  _vh 
) [inline, private]

Definition at line 386 of file Sqrt3T.hh.

template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::boundary_split ( MeshType &  _m,
const typename MeshType::FaceHandle &  _fh 
) [inline, private]

Definition at line 340 of file Sqrt3T.hh.

template<typename MeshType , typename RealType = float>
bool OpenMesh::Subdivider::Uniform::Sqrt3T< 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 149 of file Sqrt3T.hh.

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

Definition at line 292 of file Sqrt3T.hh.

template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::init_weights ( size_t  _max_valence = 50  )  [inline]

Pre-compute weights.

Definition at line 126 of file Sqrt3T.hh.

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

Return name of subdivision algorithm.

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

Definition at line 122 of file Sqrt3T.hh.

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

Prepare mesh, e.g. add properties.

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

Definition at line 136 of file Sqrt3T.hh.

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

Subdivide mesh _m _n times.

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

Definition at line 159 of file Sqrt3T.hh.


Member Data Documentation

template<typename MeshType , typename RealType = float>
const real_t OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::_1over27 [private]

Definition at line 508 of file Sqrt3T.hh.

template<typename MeshType , typename RealType = float>
const real_t OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::_1over3 [private]

Definition at line 507 of file Sqrt3T.hh.

template<typename MeshType , typename RealType = float>
OpenMesh::EPropHandleT< std::pair< typename MeshType::VertexHandle, typename MeshType::VertexHandle> > OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::ep_nv_ [private]

Definition at line 504 of file Sqrt3T.hh.

template<typename MeshType , typename RealType = float>
OpenMesh::MPropHandleT< size_t > OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::mp_gen_ [private]

Definition at line 505 of file Sqrt3T.hh.

template<typename MeshType , typename RealType = float>
OpenMesh::VPropHandleT< typename MeshType::Point > OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::vp_pos_ [private]

Definition at line 502 of file Sqrt3T.hh.

template<typename MeshType , typename RealType = float>
weights_t OpenMesh::Subdivider::Uniform::Sqrt3T< MeshType, RealType >::weights_ [private]

Definition at line 501 of file Sqrt3T.hh.


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:21 2013