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

#include <CatmullClarkT.hh>

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

Public Types

typedef MeshType::FaceHandle FaceHandle
 
typedef MeshType::VertexHandle VertexHandle
 
typedef MeshType::EdgeHandle EdgeHandle
 
typedef MeshType::HalfedgeHandle HalfedgeHandle
 
typedef MeshType::Point Point
 
typedef MeshType::Normal Normal
 
typedef MeshType::FaceIter FaceIter
 
typedef MeshType::EdgeIter EdgeIter
 
typedef MeshType::VertexIter VertexIter
 
typedef MeshType::VertexEdgeIter VertexEdgeIter
 
typedef MeshType::VertexFaceIter VertexFaceIter
 
typedef MeshType::VOHIter VOHIter
 
typedef SubdividerT< MeshType, RealType > parent_t
 
- Public Types inherited from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >
typedef MeshType mesh_t
 
typedef RealType real_t
 

Public Member Functions

 CatmullClarkT ()
 Constructor.
 
 CatmullClarkT (MeshType &_m)
 Constructor.
 
const char * name () const
 Return name of subdivision algorithm.
 
- Public Member Functions inherited from OpenMesh::Subdivider::Uniform::SubdividerT< MeshType, RealType >
virtual ~SubdividerT ()
 Destructor (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

virtual bool prepare (MeshType &_m)
 Initialize properties and weights.
 
virtual bool cleanup (MeshType &_m)
 Remove properties and weights.
 
virtual bool subdivide (MeshType &_m, size_t _n, const bool _update_points=true)
 Execute n subdivision steps. More...
 
Overload theses methods

Private Member Functions

Topology helpers
void split_edge (MeshType &_m, const EdgeHandle &_eh)
 
void split_face (MeshType &_m, const FaceHandle &_fh)
 
void compute_midpoint (MeshType &_m, const EdgeHandle &_eh, const bool _update_points)
 
void update_vertex (MeshType &_m, const VertexHandle &_vh)
 

Private Attributes

OpenMesh::VPropHandleT< Point > vp_pos_
 
OpenMesh::EPropHandleT< Point > ep_pos_
 
OpenMesh::FPropHandleT< Point > fp_pos_
 
OpenMesh::EPropHandleT< double > creaseWeights_
 

Detailed Description

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

Based on code from Leon Kos, CAD lab, Mech.Eng., University of Ljubljana, Slovenia (http://www.lecad.fs.uni-lj.si/~leon)

Note
Needs a PolyMesh to work on!

Definition at line 85 of file CatmullClarkT.hh.

Member Function Documentation

◆ subdivide()

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

Execute n subdivision steps.

Parameters
_mMesh to work on
_nNumber of iterations
_update_pointsUnused here
Returns
successful?

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

Definition at line 96 of file CatmullClarkT_impl.hh.


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