56 #ifndef OPENMESH_STRIPIFIERT_HH
57 #define OPENMESH_STRIPIFIERT_HH
63 #include <OpenMesh/Core/Utils/Property.hh>
88 typedef unsigned int Index;
89 typedef std::vector<Index> Strip;
90 typedef typename Strip::const_iterator IndexIterator;
91 typedef std::vector<Strip> Strips;
92 typedef typename Strips::const_iterator StripsIterator;
105 void clear() { Strips().swap(strips_); }
114 StripsIterator
begin()
const {
return strips_.begin(); }
116 StripsIterator
end()
const {
return strips_.end(); }
121 typedef std::vector<typename Mesh::FaceHandle> FaceHandles;
128 void build_strip(
typename Mesh::HalfedgeHandle _start_hh,
130 FaceHandles& _faces);
133 return mesh_.property(processed_, _fh);
135 FPropHandleT<bool>::reference used(
typename Mesh::FaceHandle _fh) {
136 return mesh_.property(used_, _fh);
145 FPropHandleT<bool> processed_, used_;
152 #if defined(OM_INCLUDE_TEMPLATES) && !defined(OPENMESH_STRIPIFIERT_C)
153 #define OPENMESH_STRIPIFIERT_TEMPLATES
154 #include "StripifierT.cc"
157 #endif // OPENMESH_STRIPIFIERT_HH defined
bool is_valid() const
are strips computed?
~StripifierT()
Destructor.
void build_strips()
this method does the main work
size_t stripify()
Compute triangle strips, returns number of strips.
StripifierT(Mesh &_mesh)
Default constructor.
size_t n_strips() const
returns number of strips
StripsIterator begin() const
Access strips.
void build_strip(typename Mesh::HalfedgeHandle _start_hh, Strip &_strip, FaceHandles &_faces)
build a strip from a given halfedge (in both directions)
void clear()
delete all strips
StripsIterator end() const
Access strips.