 |
OpenMesh
|
Go to the documentation of this file.
59 #ifndef OPENMESH_SUBDIVIDER_UNIFORM_CATMULLCLARKT_HH
60 #define OPENMESH_SUBDIVIDER_UNIFORM_CATMULLCLARKT_HH
68 #if defined(OM_CC_MIPS)
79 namespace Subdivider {
91 template <
typename MeshType,
typename RealType =
float>
96 typedef typename MeshType::FaceHandle FaceHandle;
97 typedef typename MeshType::VertexHandle VertexHandle;
98 typedef typename MeshType::EdgeHandle EdgeHandle;
99 typedef typename MeshType::HalfedgeHandle HalfedgeHandle;
101 typedef typename MeshType::Point Point;
103 typedef typename MeshType::FaceIter FaceIter;
104 typedef typename MeshType::EdgeIter EdgeIter;
105 typedef typename MeshType::VertexIter VertexIter;
107 typedef typename MeshType::VertexEdgeIter VertexEdgeIter;
108 typedef typename MeshType::VertexFaceIter VertexFaceIter;
110 typedef typename MeshType::VOHIter VOHIter;
124 const char *
name()
const {
return "Uniform CatmullClark"; }
129 virtual bool prepare( MeshType& _m );
132 virtual bool cleanup( MeshType& _m );
141 virtual bool subdivide( MeshType& _m,
size_t _n ,
const bool _update_points =
true);
150 void split_edge( MeshType& _m,
const EdgeHandle& _eh);
152 void split_face( MeshType& _m,
const FaceHandle& _fh);
154 void compute_midpoint( MeshType& _m,
const EdgeHandle& _eh,
const bool _update_points);
156 void update_vertex(MeshType& _m,
const VertexHandle& _vh);
175 #if defined(OM_INCLUDE_TEMPLATES) && !defined(OPENMESH_SUBDIVIDER_UNIFORM_CATMULLCLARK_CC)
176 # define OPENMESH_SUBDIVIDER_TEMPLATES
177 # include "CatmullClarkT.cc"
180 #endif // OPENMESH_SUBDIVIDER_UNIFORM_CATMULLCLARKT_HH defined
Handle for a face entity.
Definition: Handles.hh:147
Handle for a vertex entity.
Definition: Handles.hh:126
CatmullClarkT(MeshType &_m)
Constructor.
Definition: CatmullClarkT.hh:118
virtual bool cleanup(MeshType &_m)
Remove properties and weights.
Definition: CatmullClarkT.cc:90
virtual bool prepare(MeshType &_m)
Initialize properties and weights.
Definition: CatmullClarkT.cc:72
Handle for a edge entity.
Definition: Handles.hh:140
@ Normal
Add normals to mesh item (vertices/faces)
Definition: Attributes.hh:87
virtual bool subdivide(MeshType &_m, size_t _n, const bool _update_points=true)
Execute n subdivision steps.
Definition: CatmullClarkT.cc:103
CatmullClarkT()
Constructor.
Definition: CatmullClarkT.hh:115
Definition: CatmullClarkT.hh:93
const char * name() const
Return name of subdivision algorithm.
Definition: CatmullClarkT.hh:124
Martin, 26.12.2004: 1) replaced resize(size()-1) with pop_back(), since the later is more efficient 2...
Definition: MeshItems.hh:64
Abstract base class for uniform subdivision algorithms.
Definition: SubdividerT.hh:95
Project OpenMesh,
© Computer Graphics Group, RWTH Aachen.
Documentation generated using
doxygen
.