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

#include <LoopT.hh>

Inheritance diagram for OpenMesh::Subdivider::Uniform::LoopT< 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.
 LoopT (mesh_t &_m)
 LoopT (void)
const char * name () const
 Return name of subdivision algorithm.
 ~LoopT ()

Protected Member Functions

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

Private Member Functions

void compute_midpoint (mesh_t &_m, const typename mesh_t::EdgeHandle &_eh)
void corner_cutting (mesh_t &_m, const typename mesh_t::HalfedgeHandle &_he)
void smooth (mesh_t &_m, const typename mesh_t::VertexHandle &_vh)
void split_edge (mesh_t &_m, const typename mesh_t::EdgeHandle &_eh)
void split_face (mesh_t &_m, const typename mesh_t::FaceHandle &_fh)

Private Attributes

const real_t _1over8
const real_t _3over8
OpenMesh::EPropHandleT
< typename mesh_t::Point > 
ep_pos_
OpenMesh::VPropHandleT
< typename mesh_t::Point > 
vp_pos_
weights_t weights_

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.

Definition at line 88 of file LoopT.hh.


Member Typedef Documentation

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

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

Definition at line 93 of file LoopT.hh.

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

Definition at line 94 of file LoopT.hh.

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

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

Definition at line 92 of file LoopT.hh.

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

Definition at line 96 of file LoopT.hh.

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

Definition at line 97 of file LoopT.hh.


Constructor & Destructor Documentation

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

Definition at line 102 of file LoopT.hh.

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

Definition at line 106 of file LoopT.hh.

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

Definition at line 110 of file LoopT.hh.


Member Function Documentation

template<typename MeshType , typename RealType = float>
bool OpenMesh::Subdivider::Uniform::LoopT< MeshType, RealType >::cleanup ( mesh_t _m  )  [inline, protected, virtual]

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

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

Definition at line 138 of file LoopT.hh.

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

Definition at line 364 of file LoopT.hh.

template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::LoopT< MeshType, RealType >::corner_cutting ( mesh_t _m,
const typename mesh_t::HalfedgeHandle &  _he 
) [inline, private]

Definition at line 242 of file LoopT.hh.

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

Pre-compute weights.

Definition at line 120 of file LoopT.hh.

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

Return name of subdivision algorithm.

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

Definition at line 116 of file LoopT.hh.

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

Prepare mesh, e.g. add properties.

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

Definition at line 130 of file LoopT.hh.

template<typename MeshType , typename RealType = float>
void OpenMesh::Subdivider::Uniform::LoopT< MeshType, RealType >::smooth ( mesh_t _m,
const typename mesh_t::VertexHandle &  _vh 
) [inline, private]

Definition at line 394 of file LoopT.hh.

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

Definition at line 303 of file LoopT.hh.

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

Definition at line 228 of file LoopT.hh.

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

Subdivide mesh _m _n times.

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

Definition at line 146 of file LoopT.hh.


Member Data Documentation

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

Definition at line 450 of file LoopT.hh.

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

Definition at line 451 of file LoopT.hh.

template<typename MeshType , typename RealType = float>
OpenMesh::EPropHandleT< typename mesh_t::Point > OpenMesh::Subdivider::Uniform::LoopT< MeshType, RealType >::ep_pos_ [private]

Definition at line 446 of file LoopT.hh.

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

Definition at line 445 of file LoopT.hh.

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

Definition at line 448 of file LoopT.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:20 2013