42 #ifndef OPENMESH_POLYCONNECTIVITY_HH
43 #define OPENMESH_POLYCONNECTIVITY_HH
45 #include <OpenMesh/Core/Mesh/ArrayKernel.hh>
46 #include <OpenMesh/Core/Mesh/IteratorsT.hh>
47 #include <OpenMesh/Core/Mesh/CirculatorsT.hh>
167 inline static bool is_triangles()
181 {
return new_vertex(); }
190 FaceHandle add_face(
const std::vector<VertexHandle>& _vhandles);
243 void delete_vertex(
VertexHandle _vh,
bool _delete_isolated_vertices =
true);
253 void delete_edge(
EdgeHandle _eh,
bool _delete_isolated_vertices=
true);
265 void delete_face(
FaceHandle _fh,
bool _delete_isolated_vertices=
true);
274 VertexIter vertices_begin();
276 ConstVertexIter vertices_begin()
const;
278 VertexIter vertices_end();
280 ConstVertexIter vertices_end()
const;
283 HalfedgeIter halfedges_begin();
285 ConstHalfedgeIter halfedges_begin()
const;
287 HalfedgeIter halfedges_end();
289 ConstHalfedgeIter halfedges_end()
const;
292 EdgeIter edges_begin();
294 ConstEdgeIter edges_begin()
const;
296 EdgeIter edges_end();
298 ConstEdgeIter edges_end()
const;
301 FaceIter faces_begin();
303 ConstFaceIter faces_begin()
const;
305 FaceIter faces_end();
307 ConstFaceIter faces_end()
const;
309 template<
typename CONTAINER_TYPE,
typename ITER_TYPE, ITER_TYPE (CONTAINER_TYPE::*begin_fn)(), ITER_TYPE (CONTAINER_TYPE::*end_fn)()>
312 EntityRange(CONTAINER_TYPE &container) : container_(container) {}
313 ITER_TYPE begin() {
return (container_.*begin_fn)(); }
314 ITER_TYPE end() {
return (container_.*end_fn)(); }
317 CONTAINER_TYPE &container_;
592 return (is_boundary(halfedge_handle(_eh, 0)) ||
593 is_boundary(halfedge_handle(_eh, 1)));
610 return (!(heh.
is_valid() && face_handle(heh).is_valid()));
622 bool is_boundary(
FaceHandle _fh,
bool _check_vertex=
false)
const;
642 {
return face_handle(opposite_halfedge_handle(_heh)); }
684 bool is_simply_connected(
FaceHandle _fh)
const;
812 struct AddFaceEdgeInfo
818 std::vector<AddFaceEdgeInfo> edgeData_;
819 std::vector<std::pair<HalfedgeHandle, HalfedgeHandle> > next_cache_;
820 uint next_cache_count_;
826 #endif//OPENMESH_POLYCONNECTIVITY_HH