44 #ifndef OPENMESH_POLYCONNECTIVITY_HH 45 #define OPENMESH_POLYCONNECTIVITY_HH 47 #include <OpenMesh/Core/Mesh/ArrayKernel.hh> 48 #include <OpenMesh/Core/Mesh/IteratorsT.hh> 49 #include <OpenMesh/Core/Mesh/CirculatorsT.hh> 187 &Iterators::GenericCirculatorBaseT<This>::toHalfedgeHandle>
195 &Iterators::GenericCirculatorBaseT<This>::toHalfedgeHandle>
222 &Iterators::GenericCirculatorBaseT<This>::toVertexHandle>
231 &Iterators::GenericCirculatorBaseT<This>::toVertexHandle,
false>
238 &Iterators::GenericCirculatorBaseT<This>::toHalfedgeHandle>
247 &Iterators::GenericCirculatorBaseT<This>::toHalfedgeHandle,
false>
254 &Iterators::GenericCirculatorBaseT<This>::toEdgeHandle>
263 &Iterators::GenericCirculatorBaseT<This>::toEdgeHandle,
false>
386 inline static bool is_triangles()
400 {
return new_vertex(); }
409 FaceHandle add_face(
const std::vector<VertexHandle>& _vhandles);
462 void delete_vertex(
VertexHandle _vh,
bool _delete_isolated_vertices =
true);
472 void delete_edge(
EdgeHandle _eh,
bool _delete_isolated_vertices=
true);
484 void delete_face(
FaceHandle _fh,
bool _delete_isolated_vertices=
true);
493 VertexIter vertices_begin();
495 ConstVertexIter vertices_begin()
const;
497 VertexIter vertices_end();
499 ConstVertexIter vertices_end()
const;
502 HalfedgeIter halfedges_begin();
504 ConstHalfedgeIter halfedges_begin()
const;
506 HalfedgeIter halfedges_end();
508 ConstHalfedgeIter halfedges_end()
const;
511 EdgeIter edges_begin();
513 ConstEdgeIter edges_begin()
const;
515 EdgeIter edges_end();
517 ConstEdgeIter edges_end()
const;
520 FaceIter faces_begin();
522 ConstFaceIter faces_begin()
const;
524 FaceIter faces_end();
526 ConstFaceIter faces_end()
const;
539 {
return ConstVertexIter(*
this,
VertexHandle(0),
true); }
550 {
return EdgeIter(*
this,
EdgeHandle(0),
true); }
553 {
return ConstEdgeIter(*
this,
EdgeHandle(0),
true); }
557 {
return FaceIter(*
this,
FaceHandle(0),
true); }
560 {
return ConstFaceIter(*
this,
FaceHandle(0),
true); }
575 {
return VertexVertexCWIter(*
this, _vh); }
584 {
return VertexIHalfedgeCWIter(*
this, _vh); }
593 {
return VertexOHalfedgeCWIter(*
this, _vh); }
602 {
return VertexEdgeCWIter(*
this, _vh); }
611 {
return VertexFaceCWIter(*
this, _vh); }
618 {
return ConstVertexVertexIter(*
this, _vh); }
621 {
return ConstVertexVertexCWIter(*
this, _vh); }
624 {
return ConstVertexVertexCCWIter(*
this, _vh); }
627 {
return ConstVertexIHalfedgeIter(*
this, _vh); }
630 {
return ConstVertexIHalfedgeCWIter(*
this, _vh); }
633 {
return ConstVertexIHalfedgeCCWIter(*
this, _vh); }
636 {
return ConstVertexOHalfedgeIter(*
this, _vh); }
639 {
return ConstVertexOHalfedgeCWIter(*
this, _vh); }
642 {
return ConstVertexOHalfedgeCCWIter(*
this, _vh); }
645 {
return ConstVertexEdgeIter(*
this, _vh); }
648 {
return ConstVertexEdgeCWIter(*
this, _vh); }
651 {
return ConstVertexEdgeCCWIter(*
this, _vh); }
654 {
return ConstVertexFaceIter(*
this, _vh); }
657 {
return ConstVertexFaceCWIter(*
this, _vh); }
660 {
return ConstVertexFaceCCWIter(*
this, _vh); }
670 {
return FaceVertexCCWIter(*
this, _fh); }
679 {
return FaceHalfedgeCCWIter(*
this, _fh); }
688 {
return FaceEdgeCCWIter(*
this, _fh); }
697 {
return FaceFaceCCWIter(*
this, _fh); }
701 {
return ConstFaceVertexIter(*
this, _fh); }
704 {
return ConstFaceVertexCWIter(*
this, _fh); }
707 {
return ConstFaceVertexCCWIter(*
this, _fh); }
710 {
return ConstFaceHalfedgeIter(*
this, _fh); }
713 {
return ConstFaceHalfedgeCWIter(*
this, _fh); }
716 {
return ConstFaceHalfedgeCCWIter(*
this, _fh); }
719 {
return ConstFaceEdgeIter(*
this, _fh); }
722 {
return ConstFaceEdgeCWIter(*
this, _fh); }
725 {
return ConstFaceEdgeCCWIter(*
this, _fh); }
728 {
return ConstFaceFaceIter(*
this, _fh); }
731 {
return ConstFaceFaceCWIter(*
this, _fh); }
734 {
return ConstFaceFaceCCWIter(*
this, _fh); }
743 {
return VertexVertexCWIter(*
this, _vh); }
752 {
return VertexIHalfedgeCWIter(*
this, _vh); }
761 {
return VertexOHalfedgeCWIter(*
this, _vh); }
770 {
return VertexEdgeCWIter(*
this, _vh); }
779 {
return VertexFaceCWIter(*
this, _vh); }
787 {
return ConstVertexVertexIter(*
this, _vh); }
790 {
return ConstVertexVertexCWIter(*
this, _vh); }
793 {
return ConstVertexVertexCCWIter(*
this, _vh); }
796 {
return ConstVertexIHalfedgeIter(*
this, _vh); }
799 {
return ConstVertexIHalfedgeCWIter(*
this, _vh); }
802 {
return ConstVertexIHalfedgeCCWIter(*
this, _vh); }
805 {
return ConstVertexOHalfedgeIter(*
this, _vh); }
808 {
return ConstVertexOHalfedgeCWIter(*
this, _vh); }
811 {
return ConstVertexOHalfedgeCCWIter(*
this, _vh); }
814 {
return ConstVertexEdgeIter(*
this, _vh); }
817 {
return ConstVertexEdgeCWIter(*
this, _vh); }
820 {
return ConstVertexEdgeCCWIter(*
this, _vh); }
823 {
return ConstVertexFaceIter(*
this, _vh); }
826 {
return ConstVertexFaceCWIter(*
this, _vh); }
829 {
return ConstVertexFaceCCWIter(*
this, _vh); }
839 {
return FaceVertexCCWIter(*
this, _fh); }
848 {
return FaceHalfedgeCCWIter(*
this, _fh); }
857 {
return FaceEdgeCCWIter(*
this, _fh); }
866 {
return FaceFaceCCWIter(*
this, _fh); }
872 {
return HalfedgeLoopCWIter(*
this, _heh); }
879 {
return ConstFaceVertexIter(*
this, _fh); }
882 {
return ConstFaceVertexCWIter(*
this, _fh); }
885 {
return ConstFaceVertexCCWIter(*
this, _fh); }
888 {
return ConstFaceHalfedgeIter(*
this, _fh); }
891 {
return ConstFaceHalfedgeCWIter(*
this, _fh); }
894 {
return ConstFaceHalfedgeCCWIter(*
this, _fh); }
897 {
return ConstFaceEdgeIter(*
this, _fh); }
900 {
return ConstFaceEdgeCWIter(*
this, _fh); }
903 {
return ConstFaceEdgeCCWIter(*
this, _fh); }
906 {
return ConstFaceFaceIter(*
this, _fh); }
909 {
return ConstFaceFaceCWIter(*
this, _fh); }
912 {
return ConstFaceFaceCCWIter(*
this, _fh); }
915 {
return ConstHalfedgeLoopIter(*
this, _heh); }
918 {
return ConstHalfedgeLoopCWIter(*
this, _heh); }
921 {
return ConstHalfedgeLoopCCWIter(*
this, _heh); }
930 {
return VertexVertexCWIter(*
this, _vh,
true); }
939 {
return VertexIHalfedgeCWIter(*
this, _vh,
true); }
948 {
return VertexOHalfedgeCWIter(*
this, _vh,
true); }
957 {
return VertexEdgeCWIter(*
this, _vh,
true); }
966 {
return VertexFaceCWIter(*
this, _vh,
true); }
973 {
return ConstVertexVertexIter(*
this, _vh,
true); }
976 {
return ConstVertexVertexCWIter(*
this, _vh,
true); }
979 {
return ConstVertexVertexCCWIter(*
this, _vh,
true); }
982 {
return ConstVertexIHalfedgeIter(*
this, _vh,
true); }
985 {
return ConstVertexIHalfedgeCWIter(*
this, _vh,
true); }
988 {
return ConstVertexIHalfedgeCCWIter(*
this, _vh,
true); }
991 {
return ConstVertexOHalfedgeIter(*
this, _vh,
true); }
994 {
return ConstVertexOHalfedgeCWIter(*
this, _vh,
true); }
997 {
return ConstVertexOHalfedgeCCWIter(*
this, _vh,
true); }
1000 {
return ConstVertexEdgeIter(*
this, _vh,
true); }
1003 {
return ConstVertexEdgeCWIter(*
this, _vh,
true); }
1006 {
return ConstVertexEdgeCCWIter(*
this, _vh,
true); }
1009 {
return ConstVertexFaceIter(*
this, _vh,
true); }
1012 {
return ConstVertexFaceCWIter(*
this, _vh,
true); }
1015 {
return ConstVertexFaceCCWIter(*
this, _vh,
true); }
1025 {
return FaceVertexCCWIter(*
this, _fh,
true); }
1034 {
return FaceHalfedgeCCWIter(*
this, _fh,
true); }
1043 {
return FaceEdgeCCWIter(*
this, _fh,
true); }
1052 {
return FaceFaceCCWIter(*
this, _fh,
true); }
1058 {
return HalfedgeLoopCWIter(*
this, _heh,
true); }
1065 {
return ConstFaceVertexIter(*
this, _fh,
true); }
1068 {
return ConstFaceVertexCWIter(*
this, _fh,
true); }
1071 {
return ConstFaceVertexCCWIter(*
this, _fh,
true); }
1074 {
return ConstFaceHalfedgeIter(*
this, _fh,
true); }
1077 {
return ConstFaceHalfedgeCWIter(*
this, _fh,
true); }
1080 {
return ConstFaceHalfedgeCCWIter(*
this, _fh,
true); }
1083 {
return ConstFaceEdgeIter(*
this, _fh,
true); }
1086 {
return ConstFaceEdgeCWIter(*
this, _fh,
true); }
1089 {
return ConstFaceEdgeCCWIter(*
this, _fh,
true); }
1092 {
return ConstFaceFaceIter(*
this, _fh,
true); }
1095 {
return ConstFaceFaceCWIter(*
this, _fh,
true); }
1098 {
return ConstFaceFaceCCWIter(*
this, _fh,
true); }
1101 {
return ConstHalfedgeLoopIter(*
this, _heh,
true); }
1104 {
return ConstHalfedgeLoopCWIter(*
this, _heh,
true); }
1107 {
return ConstHalfedgeLoopCCWIter(*
this, _heh,
true); }
1115 typename CONTAINER_TYPE,
1117 ITER_TYPE (CONTAINER_TYPE::*begin_fn)()
const,
1118 ITER_TYPE (CONTAINER_TYPE::*end_fn)()
const>
1121 typedef ITER_TYPE iterator;
1122 typedef ITER_TYPE const_iterator;
1124 EntityRange(CONTAINER_TYPE &container) : container_(container) {}
1125 ITER_TYPE begin()
const {
return (container_.*begin_fn)(); }
1126 ITER_TYPE end()
const {
return (container_.*end_fn)(); }
1129 CONTAINER_TYPE &container_;
1137 const PolyConnectivity,
1142 const PolyConnectivity,
1147 const PolyConnectivity,
1152 const PolyConnectivity,
1157 const PolyConnectivity,
1162 const PolyConnectivity,
1167 const PolyConnectivity,
1176 ConstVertexRangeSkipping
vertices()
const {
return ConstVertexRangeSkipping(*
this); }
1188 ConstHalfedgeRangeSkipping
halfedges()
const {
return ConstHalfedgeRangeSkipping(*
this); }
1200 ConstEdgeRangeSkipping
edges()
const {
return ConstEdgeRangeSkipping(*
this); }
1206 ConstEdgeRange
all_edges()
const {
return ConstEdgeRange(*
this); }
1212 ConstFaceRangeSkipping
faces()
const {
return ConstFaceRangeSkipping(*
this); }
1218 ConstFaceRange
all_faces()
const {
return ConstFaceRange(*
this); }
1222 typename CONTAINER_TYPE,
1224 typename CENTER_ENTITY_TYPE,
1225 ITER_TYPE (CONTAINER_TYPE::*begin_fn)(CENTER_ENTITY_TYPE)
const,
1226 ITER_TYPE (CONTAINER_TYPE::*end_fn)(CENTER_ENTITY_TYPE)
const>
1229 typedef ITER_TYPE iterator;
1230 typedef ITER_TYPE const_iterator;
1233 const CONTAINER_TYPE &container,
1234 CENTER_ENTITY_TYPE center) :
1235 container_(container), center_(center) {}
1236 ITER_TYPE begin()
const {
return (container_.*begin_fn)(center_); }
1237 ITER_TYPE end()
const {
return (container_.*end_fn)(center_); }
1240 const CONTAINER_TYPE &container_;
1241 CENTER_ENTITY_TYPE center_;
1246 ConstVertexVertexCWIter,
1252 ConstVertexIHalfedgeIter,
1258 ConstVertexOHalfedgeIter, VertexHandle,
1263 ConstVertexEdgeIter,
1269 ConstVertexFaceIter,
1275 ConstFaceVertexIter,
1281 ConstFaceHalfedgeIter,
1302 ConstVertexVertexRange
vv_range(VertexHandle _vh)
const {
1303 return ConstVertexVertexRange(*
this, _vh);
1310 ConstVertexIHalfedgeRange
vih_range(VertexHandle _vh)
const {
1311 return ConstVertexIHalfedgeRange(*
this, _vh);
1318 ConstVertexOHalfedgeRange
voh_range(VertexHandle _vh)
const {
1319 return ConstVertexOHalfedgeRange(*
this, _vh);
1326 ConstVertexEdgeRange
ve_range(VertexHandle _vh)
const {
1327 return ConstVertexEdgeRange(*
this, _vh);
1334 ConstVertexFaceRange
vf_range(VertexHandle _vh)
const {
1335 return ConstVertexFaceRange(*
this, _vh);
1343 return ConstFaceVertexRange(*
this, _fh);
1350 ConstFaceHalfedgeRange
fh_range(FaceHandle _fh)
const {
1351 return ConstFaceHalfedgeRange(*
this, _fh);
1359 return ConstFaceEdgeRange(*
this, _fh);
1367 return ConstFaceFaceRange(*
this, _fh);
1397 return (is_boundary(halfedge_handle(_eh, 0)) ||
1398 is_boundary(halfedge_handle(_eh, 1)));
1415 return (!(heh.
is_valid() && face_handle(heh).is_valid()));
1427 bool is_boundary(FaceHandle _fh,
bool _check_vertex=
false)
const;
1439 bool is_manifold(VertexHandle _vh)
const;
1447 {
return face_handle(opposite_halfedge_handle(_heh)); }
1454 void adjust_outgoing_halfedge(VertexHandle _vh);
1457 HalfedgeHandle find_halfedge(VertexHandle _start_vh, VertexHandle _end_vh)
const;
1459 uint valence(VertexHandle _vh)
const;
1461 uint valence(FaceHandle _fh)
const;
1489 bool is_simply_connected(FaceHandle _fh)
const;
1530 void split(FaceHandle _fh, VertexHandle _vh);
1545 void split_copy(FaceHandle _fh, VertexHandle _vh);
1560 void triangulate(FaceHandle _fh);
1576 void split_edge(
EdgeHandle _eh, VertexHandle _vh);
1589 void split_edge_copy(
EdgeHandle _eh, VertexHandle _vh);
1597 const Vertex& deref(VertexHandle _h)
const {
return vertex(_h); }
1599 Vertex&
deref(VertexHandle _h) {
return vertex(_h); }
1604 const Face&
deref(FaceHandle _h)
const {
return face(_h); }
1605 Face&
deref(FaceHandle _h) {
return face(_h); }
1623 std::vector<AddFaceEdgeInfo> edgeData_;
1624 std::vector<std::pair<HalfedgeHandle, HalfedgeHandle> > next_cache_;
1630 #endif//OPENMESH_POLYCONNECTIVITY_HH ConstVertexVertexIter CVVIter
Alias typedef.
Iterators::GenericCirculatorT< This, This::VertexHandle, This::EdgeHandle, &Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > VertexEdgeCWIter
ConstFaceVertexIter cfv_iter(FaceHandle _fh) const
const face - vertex circulator
ConstVertexIHalfedgeIter cvih_end(VertexHandle _vh) const
const vertex - incoming halfedge circulator
FaceFaceCWIter ff_cwiter(FaceHandle _fh)
face - face circulator cw
ConstFaceHalfedgeCWIter cfh_cwbegin(FaceHandle _fh) const
const face - halfedge circulator cw
FaceEdgeCCWIter ConstFaceEdgeCCWIter
static const EdgeHandle InvalidEdgeHandle
Invalid handle.
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toFaceHandle > VertexFaceIter
VertexEdgeCCWIter ve_ccwiter(VertexHandle _vh)
vertex - edge circulator ccw
EntityRange< const PolyConnectivity, PolyConnectivity::ConstFaceIter, &PolyConnectivity::faces_sbegin, &PolyConnectivity::faces_end > ConstFaceRangeSkipping
EdgeIter EIter
Alias typedef.
ConstVertexOHalfedgeCWIter cvoh_cwbegin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
ConstHalfedgeLoopIter chl_begin(HalfedgeHandle _heh) const
const halfedge circulator
FaceHalfedgeIter fh_iter(FaceHandle _fh)
face - halfedge circulator
ConstFaceVertexCWIter cfv_cwiter(FaceHandle _fh) const
const face - vertex circulator cw
VertexVertexCWIter vv_cwend(VertexHandle _vh)
vertex - vertex circulator cw
ConstVertexOHalfedgeIter cvoh_end(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
FaceFaceCWIter ff_cwbegin(FaceHandle _fh)
face - face circulator cw
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toOppositeFaceHandle > FaceFaceIter
ConstVertexFaceCCWIter cvf_ccwiter(VertexHandle _vh) const
const vertex - face circulator ccw
VertexEdgeCWIter VECWIter
Alias typedef.
EdgeIter edges_begin()
Begin iterator for edges.
ConstFaceEdgeIter cfe_end(FaceHandle _fh) const
const face - edge circulator
VertexEdgeIter ve_begin(VertexHandle _vh)
vertex - edge circulator
Iterators::GenericCirculatorT< This, This::FaceHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toOppositeFaceHandle, false > FaceFaceCWIter
Handle for a vertex entity.
bool is_boundary(HalfedgeHandle _heh) const
Check if the halfedge is at the boundary.
HalfedgeIter HIter
Alias typedef.
VertexIHalfedgeIter VIHIter
Alias typedef.
EdgeIter edges_end()
End iterator for edges.
const Face & deref(FaceHandle _h) const
Get item from handle.
ConstVertexVertexCCWIter cvv_ccwend(VertexHandle _vh) const
const vertex circulator ccw
FaceHalfedgeCCWIter FHCWWIter
Alias typedef.
ConstFaceVertexCCWIter CFVCCWIter
Alias typedef.
HalfedgeLoopCCWIter hl_ccwend(HalfedgeHandle _heh)
face - face circulator ccw
FaceEdgeIter FEIter
Alias typedef.
VertexEdgeCWIter ve_cwend(VertexHandle _vh)
vertex - edge circulator cw
Iterators::GenericCirculatorT< This, This::VertexHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toFaceHandle > VertexFaceCWIter
ConstVertexIter CVIter
Alias typedef.
VertexIter vertices_begin()
Begin iterator for vertices.
static const FaceHandle InvalidFaceHandle
Invalid handle.
ConstHalfedgeIter halfedges_sbegin() const
Const begin iterator for halfedges.
ConstVertexOHalfedgeRange voh_range(VertexHandle _vh) const
VertexOHalfedgeCWIter voh_cwiter(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
VertexOHalfedgeCWIter voh_cwend(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toOppositeHalfedgeHandle > VertexIHalfedgeCWIter
ConstFaceEdgeIter cfe_iter(FaceHandle _fh) const
const face - edge circulator
Iterators::GenericCirculatorT< This, This::VertexHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toFaceHandle, false > VertexFaceCCWIter
VertexIHalfedgeIter ConstVertexIHalfedgeIter
ConstVertexOHalfedgeIter cvoh_iter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
ConstVertexEdgeCCWIter cve_ccwend(VertexHandle _vh) const
const vertex - edge circulator ccw
VertexEdgeIter VEIter
Alias typedef.
EntityRange< const PolyConnectivity, PolyConnectivity::ConstHalfedgeIter, &PolyConnectivity::halfedges_sbegin, &PolyConnectivity::halfedges_end > ConstHalfedgeRangeSkipping
FaceEdgeCWIter fe_cwbegin(FaceHandle _fh)
face - edge circulator cw
FaceFaceCCWIter ff_ccwbegin(FaceHandle _fh)
face - face circulator ccw
ConstVertexFaceIter cvf_iter(VertexHandle _vh) const
const vertex - face circulator
ConstFaceEdgeIter CFEIter
Alias typedef.
ConstVertexFaceRange vf_range(VertexHandle _vh) const
ConstVertexOHalfedgeCCWIter cvoh_ccwiter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
ConstFaceFaceIter cff_iter(FaceHandle _fh) const
const face - face circulator
ConstFaceFaceCWIter cff_cwbegin(FaceHandle _fh) const
const face - face circulator cw
ConstVertexOHalfedgeCCWIter cvoh_ccwend(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
VertexIHalfedgeCWIter vih_cwbegin(VertexHandle _vh)
vertex - incoming halfedge circulator cw
VertexIHalfedgeCWIter vih_cwend(VertexHandle _vh)
vertex - incoming halfedge circulator cw
VertexFaceIter vf_iter(VertexHandle _vh)
vertex - face circulator
VertexFaceCCWIter vf_ccwbegin(VertexHandle _vh)
vertex - face circulator ccw
FaceFaceIter ff_end(FaceHandle _fh)
face - face circulator
Iterators::GenericCirculatorT< This, This::VertexHandle, This::VertexHandle, &Iterators::GenericCirculatorBaseT< This >::toVertexHandle > VertexVertexCWIter
ConstFaceHalfedgeIter cfh_end(FaceHandle _fh) const
const face - halfedge circulator
ConstVertexIHalfedgeCWIter cvih_cwiter(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
ConstVertexEdgeCCWIter cve_ccwbegin(VertexHandle _vh) const
const vertex - edge circulator ccw
Face & deref(FaceHandle _h)
Get item from handle.
ConstFaceHalfedgeCWIter cfh_cwend(FaceHandle _fh) const
const face - halfedge circulator cw
ConstVertexFaceCWIter cvf_cwend(VertexHandle _vh) const
const vertex - face circulator cw
EdgeHandle EHandle
Alias typedef.
VertexFaceIter VFIter
Alias typedef.
HalfedgeLoopCWIter hl_cwbegin(HalfedgeHandle _heh)
halfedge circulator
FaceEdgeIter ConstFaceEdgeIter
ConstVertexOHalfedgeCWIter cvoh_cwiter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
VertexOHalfedgeCWIter ConstVertexOHalfedgeCWIter
HalfedgeLoopIter ConstHalfedgeLoopIter
VertexIHalfedgeCCWIter vih_ccwbegin(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
bool is_boundary(EdgeHandle _eh) const
Is the edge a boundary edge?
HalfedgeLoopCWIter ConstHalfedgeLoopCWIter
ConstFaceEdgeCWIter CFECWIter
Alias typedef.
ConstFaceFaceIter cff_begin(FaceHandle _fh) const
const face - face circulator
EntityRange< const PolyConnectivity, PolyConnectivity::ConstEdgeIter, &PolyConnectivity::edges_begin, &PolyConnectivity::edges_end > ConstEdgeRange
ConstVertexFaceIter cvf_end(VertexHandle _vh) const
const vertex - face circulator
VertexIter ConstVertexIter
Linear iterator.
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > VertexOHalfedgeIter
FaceVertexCCWIter fv_ccwbegin(FaceHandle _fh)
face - vertex circulator ccw
ConstVertexIHalfedgeCCWIter cvih_ccwend(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
FaceEdgeCWIter ConstFaceEdgeCWIter
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > HalfedgeLoopIter
ConstFaceVertexRange fv_range(FaceHandle _fh) const
ConstVertexOHalfedgeCWIter cvoh_cwend(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
ConstFaceVertexCWIter cfv_cwend(FaceHandle _fh) const
const face - vertex circulator cw
const Halfedge & deref(HalfedgeHandle _h) const
Get item from handle.
const Edge & deref(EdgeHandle _h) const
Get item from handle.
ConstVertexIHalfedgeRange vih_range(VertexHandle _vh) const
FaceEdgeIter fe_iter(FaceHandle _fh)
face - edge circulator
FaceVertexCWIter ConstFaceVertexCWIter
FaceHalfedgeCWIter fh_cwend(FaceHandle _fh)
face - halfedge circulator cw
ConstVertexFaceCCWIter cvf_ccwend(VertexHandle _vh) const
const vertex - face circulator ccw
VertexVertexCCWIter vv_ccwbegin(VertexHandle _vh)
vertex - vertex circulator ccw
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle, false > VertexOHalfedgeCCWIter
ConstFaceRangeSkipping faces() const
FaceVertexIter fv_iter(FaceHandle _fh)
face - vertex circulator
FaceFaceIter ff_begin(FaceHandle _fh)
face - face circulator
ConstEdgeIter CEIter
Alias typedef.
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle, false > FaceHalfedgeCWIter
VertexFaceIter vf_begin(VertexHandle _vh)
vertex - face circulator
Handle for a halfedge entity.
ConstVertexRange all_vertices() const
VertexVertexCCWIter ConstVertexVertexCCWIter
bool is_boundary(VertexHandle _vh) const
Is vertex _vh a boundary vertex ?
VertexEdgeCWIter ve_cwbegin(VertexHandle _vh)
vertex - edge circulator cw
FaceEdgeCCWIter fe_ccwiter(FaceHandle _fh)
face - edge circulator ccw
FaceVertexCWIter fv_cwiter(FaceHandle _fh)
face - vertex circulator cw
VertexEdgeCWIter ConstVertexEdgeCWIter
ConstFaceEdgeRange fe_range(FaceHandle _fh) const
FaceHalfedgeIter fh_end(FaceHandle _fh)
face - halfedge circulator
ConstFaceEdgeIter cfe_begin(FaceHandle _fh) const
const face - edge circulator
ConstEdgeIter edges_sbegin() const
Const begin iterator for edges.
VertexFaceCWIter VFCWIter
Alias typedef.
VertexEdgeCCWIter ConstVertexEdgeCCWIter
FaceEdgeCWIter fe_cwend(FaceHandle _fh)
face - edge circulator cw
VertexVertexCWIter ConstVertexVertexCWIter
Iterators::GenericCirculatorT< This, This::FaceHandle, This::EdgeHandle, &Iterators::GenericCirculatorBaseT< This >::toEdgeHandle, false > FaceEdgeCWIter
ConstVertexIHalfedgeIter cvih_iter(VertexHandle _vh) const
const vertex - incoming halfedge circulator
VertexVertexCCWIter VVCCWIter
Alias typedef.
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > FaceHalfedgeIter
Edge & deref(EdgeHandle _h)
Get item from handle.
ConstVertexVertexCWIter cvv_cwbegin(VertexHandle _vh) const
const vertex circulator cw
VertexHandle add_vertex()
Add a new vertex.
HalfedgeLoopCWIter hl_cwend(HalfedgeHandle _heh)
face - face circulator cw
ConstVertexOHalfedgeCWIter CVOHCWIter
Alias typedef.
FaceEdgeIter fe_begin(FaceHandle _fh)
face - edge circulator
FaceIter faces_sbegin()
Begin iterator for faces.
FaceFaceCWIter ConstFaceFaceCWIter
ConstVertexVertexCCWIter cvv_ccwiter(VertexHandle _vh) const
const vertex circulator ccw
ConstVertexEdgeIter cve_iter(VertexHandle _vh) const
const vertex - edge circulator
CirculatorRange< PolyConnectivity, ConstVertexIHalfedgeIter, VertexHandle, &PolyConnectivity::cvih_begin, &PolyConnectivity::cvih_end > ConstVertexIHalfedgeRange
EntityRange< const PolyConnectivity, PolyConnectivity::ConstHalfedgeIter, &PolyConnectivity::halfedges_begin, &PolyConnectivity::halfedges_end > ConstHalfedgeRange
CirculatorRange< PolyConnectivity, ConstVertexEdgeIter, VertexHandle, &PolyConnectivity::cve_begin, &PolyConnectivity::cve_end > ConstVertexEdgeRange
VertexVertexCWIter vv_cwbegin(VertexHandle _vh)
vertex - vertex circulator cw
ConstFaceVertexCCWIter cfv_ccwiter(FaceHandle _fh) const
const face - vertex circulator ccw
Iterators::GenericIteratorT< This, This::FaceHandle, ArrayKernel, &ArrayKernel::has_face_status, &ArrayKernel::n_faces > FaceIter
Linear iterator.
ConstFaceEdgeCWIter cfe_cwbegin(FaceHandle _fh) const
const face - edge circulator cw
FaceHalfedgeCWIter ConstFaceHalfedgeCWIter
FaceHalfedgeIter ConstFaceHalfedgeIter
VertexEdgeCCWIter VECCWIter
Alias typedef.
VertexOHalfedgeCCWIter voh_ccwbegin(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
FaceVertexCWIter fv_cwend(FaceHandle _fh)
face - vertex circulator cw
ConstVertexFaceCWIter cvf_cwbegin(VertexHandle _vh) const
const vertex - face circulator cw
VertexIHalfedgeCWIter vih_cwiter(VertexHandle _vh)
vertex - incoming halfedge circulator cw
FaceFaceCCWIter ff_ccwend(FaceHandle _fh)
face - face circulator ccw
VertexIHalfedgeCCWIter VIHICCWter
Alias typedef.
VertexEdgeCWIter ve_cwiter(VertexHandle _vh)
vertex - edge circulator cw
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toOppositeHalfedgeHandle > VertexIHalfedgeIter
FaceFaceIter FFIter
Alias typedef.
HalfedgeLoopIter hl_begin(HalfedgeHandle _heh)
halfedge circulator
VertexIHalfedgeCWIter VIHICWter
Alias typedef.
CirculatorRange< PolyConnectivity, ConstFaceVertexIter, FaceHandle, &PolyConnectivity::cfv_begin, &PolyConnectivity::cfv_end > ConstFaceVertexRange
VertexOHalfedgeCCWIter ConstVertexOHalfedgeCCWIter
ConstVertexIHalfedgeCCWIter cvih_ccwbegin(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
EntityRange< const PolyConnectivity, PolyConnectivity::ConstFaceIter, &PolyConnectivity::faces_begin, &PolyConnectivity::faces_end > ConstFaceRange
VertexIHalfedgeIter vih_end(VertexHandle _vh)
vertex - incoming halfedge circulator
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::EdgeHandle, &Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > VertexEdgeIter
ConstVertexIHalfedgeIter cvih_begin(VertexHandle _vh) const
const vertex - incoming halfedge circulator
VertexFaceCWIter vf_cwiter(VertexHandle _vh)
vertex - face circulator cw
ConstVertexEdgeIter CVEIter
Alias typedef.
ConstFaceFaceCCWIter CFFCCWIter
Alias typedef.
FaceVertexIter FVIter
Alias typedef.
VertexVertexCWIter vv_cwiter(VertexHandle _vh)
vertex - vertex circulator cw
Iterators::GenericCirculatorT< This, This::VertexHandle, This::EdgeHandle, &Iterators::GenericCirculatorBaseT< This >::toEdgeHandle, false > VertexEdgeCCWIter
ConstVertexIter vertices_sbegin() const
Const begin iterator for vertices.
void assign_connectivity(const PolyConnectivity &_other)
EdgeIter ConstEdgeIter
Linear iterator.
HalfedgeIter halfedges_begin()
Begin iterator for halfedges.
Generic class for vertex/halfedge/edge/face ranges.
FaceIter ConstFaceIter
Linear iterator.
static const HalfedgeHandle InvalidHalfedgeHandle
Invalid handle.
VertexIHalfedgeCCWIter vih_ccwiter(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
ConstVertexEdgeRange ve_range(VertexHandle _vh) const
ConstFaceVertexIter cfv_end(FaceHandle _fh) const
const face - vertex circulator
ConstEdgeRange all_edges() const
Iterators::GenericCirculatorT< This, This::FaceHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toOppositeFaceHandle > FaceFaceCCWIter
HalfedgeLoopCCWIter ConstHalfedgeLoopCCWIter
VertexIHalfedgeCCWIter ConstVertexIHalfedgeCCWIter
CirculatorRange< PolyConnectivity, ConstVertexVertexCWIter, VertexHandle, &PolyConnectivity::cvv_cwbegin, &PolyConnectivity::cvv_cwend > ConstVertexVertexRange
ConstVertexEdgeCWIter cve_cwiter(VertexHandle _vh) const
const vertex - edge circulator cw
VertexOHalfedgeCCWIter voh_ccwend(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
ConstHalfedgeRange all_halfedges() const
Iterators::GenericCirculatorT< This, This::FaceHandle, This::VertexHandle, &Iterators::GenericCirculatorBaseT< This >::toVertexHandle, false > FaceVertexCWIter
VertexVertexIter VVIter
Alias typedef.
HalfedgeLoopIter hl_end(HalfedgeHandle _heh)
face - face circulator
VertexOHalfedgeIter ConstVertexOHalfedgeIter
ConstFaceRange all_faces() const
FaceHalfedgeCWIter fh_cwbegin(FaceHandle _fh)
face - halfedge circulator cw
VertexEdgeCCWIter ve_ccwend(VertexHandle _vh)
vertex - edge circulator ccw
FaceVertexIter ConstFaceVertexIter
ConstFaceHalfedgeCCWIter CFHCCWIter
Alias typedef.
ConstFaceVertexIter cfv_begin(FaceHandle _fh) const
const face - vertex circulator
FaceVertexIter fv_end(FaceHandle _fh)
face - vertex circulator
FaceVertexCCWIter FVCCWIter
Alias typedef.
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > FaceHalfedgeCCWIter
ConstFaceFaceCWIter CFFCWIter
Alias typedef.
ConstFaceVertexIter CFVIter
Alias typedef.
ConstHalfedgeLoopCCWIter chl_ccwbegin(HalfedgeHandle _heh) const
const halfedge circulator ccw
ConstFaceHalfedgeCCWIter cfh_ccwend(FaceHandle _fh) const
const face - halfedge circulator ccw
ConstFaceEdgeCCWIter cfe_ccwiter(FaceHandle _fh) const
const face - edge circulator ccw
VertexVertexCWIter VVCWIter
Alias typedef.
ConstFaceHalfedgeIter cfh_begin(FaceHandle _fh) const
const face - halfedge circulator
ConstFaceHalfedgeRange fh_range(FaceHandle _fh) const
ConstVertexFaceCWIter cvf_cwiter(VertexHandle _vh) const
const vertex - face circulator cw
Iterators::GenericCirculatorT< This, This::FaceHandle, This::VertexHandle, &Iterators::GenericCirculatorBaseT< This >::toVertexHandle > FaceVertexCCWIter
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toOppositeHalfedgeHandle, false > VertexIHalfedgeCCWIter
EntityRange< const PolyConnectivity, PolyConnectivity::ConstEdgeIter, &PolyConnectivity::edges_sbegin, &PolyConnectivity::edges_end > ConstEdgeRangeSkipping
ConstFaceVertexCWIter cfv_cwbegin(FaceHandle _fh) const
const face - vertex circulator cw
FaceHandle opposite_face_handle(HalfedgeHandle _heh) const
returns the face handle of the opposite halfedge
FaceVertexCWIter FVCWIter
Alias typedef.
Handle for a face entity.
ConstFaceEdgeCWIter cfe_cwend(FaceHandle _fh) const
const face - edge circulator cw
FaceFaceCCWIter ff_ccwiter(FaceHandle _fh)
face - face circulator ccw
FaceFaceIter ConstFaceFaceIter
ConstFaceHalfedgeCWIter cfh_cwiter(FaceHandle _fh) const
const face - halfedge circulator cw
VertexVertexIter vv_iter(VertexHandle _vh)
vertex - vertex circulator
VertexIter vertices_end()
End iterator for vertices.
ConstVertexIHalfedgeCCWIter cvih_ccwiter(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
FaceHalfedgeIter fh_begin(FaceHandle _fh)
face - halfedge circulator
ConstVertexVertexCWIter cvv_cwiter(VertexHandle _vh) const
const vertex circulator cw
void assign_connectivity(const ArrayKernel &_other)
VertexVertexCCWIter vv_ccwend(VertexHandle _vh)
vertex - vertex circulator ccw
ConstHalfedgeLoopCWIter chl_cwbegin(HalfedgeHandle _heh) const
const halfedge circulator cw
VertexIter vertices_sbegin()
Begin iterator for vertices.
ConstHalfedgeRangeSkipping halfedges() const
VertexOHalfedgeCWIter voh_cwbegin(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
FaceFaceIter ff_iter(FaceHandle _fh)
face - face circulator
CirculatorRange< PolyConnectivity, ConstVertexOHalfedgeIter, VertexHandle, &PolyConnectivity::cvoh_begin, &PolyConnectivity::cvoh_end > ConstVertexOHalfedgeRange
HalfedgeHandle HHandle
Alias typedef.
VertexOHalfedgeCWIter VOHCWIter
Alias typedef.
ConstFaceVertexCCWIter cfv_ccwend(FaceHandle _fh) const
const face - vertex circulator ccw
ConstFaceFaceCWIter cff_cwend(FaceHandle _fh) const
const face - face circulator
ConstVertexOHalfedgeCCWIter CVOHCCWIter
Alias typedef.
ConstVertexVertexCCWIter CVVCCWIter
Alias typedef.
ConstVertexFaceCCWIter cvf_ccwbegin(VertexHandle _vh) const
const vertex - face circulator ccw
FaceEdgeCCWIter fe_ccwend(FaceHandle _fh)
face - edge circulator ccw
ConstFaceHalfedgeCWIter CFHCWIter
Alias typedef.
VertexFaceCWIter vf_cwbegin(VertexHandle _vh)
vertex - face circulator cw
ConstFaceVertexCCWIter cfv_ccwbegin(FaceHandle _fh) const
const face - vertex circulator ccw
ConstVertexOHalfedgeIter CVOHIter
Alias typedef.
ConstVertexIHalfedgeCWIter CVIHCWIter
Alias typedef.
ConstHalfedgeLoopCCWIter chl_ccwend(HalfedgeHandle _heh) const
const face - face circulator ccw
ConstHalfedgeLoopIter chl_end(HalfedgeHandle _heh) const
const face - face circulator
ConstVertexFaceIter cvf_begin(VertexHandle _vh) const
const vertex - face circulator
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle, false > HalfedgeLoopCWIter
Halfedge & deref(HalfedgeHandle _h)
Get item from handle.
ConstFaceFaceCWIter cff_cwiter(FaceHandle _fh) const
const face - face circulator cw
VertexFaceCCWIter VFCCWIter
Alias typedef.
ConstVertexRangeSkipping vertices() const
HalfedgeIter ConstHalfedgeIter
Linear iterator.
VertexFaceCWIter ConstVertexFaceCWIter
ConstVertexIHalfedgeCWIter cvih_cwend(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
ConstVertexEdgeCWIter cve_cwend(VertexHandle _vh) const
const vertex - edge circulator cw
VertexIHalfedgeIter vih_iter(VertexHandle _vh)
vertex - incoming halfedge circulator
ConstFaceFaceIter cff_end(FaceHandle _fh) const
const face - face circulator
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::VertexHandle, &Iterators::GenericCirculatorBaseT< This >::toVertexHandle > VertexVertexIter
VertexEdgeIter ve_iter(VertexHandle _vh)
vertex - edge circulator
ConstEdgeRangeSkipping edges() const
ConstVertexEdgeCCWIter CVECCWIter
Alias typedef.
Iterators::GenericIteratorT< This, This::EdgeHandle, ArrayKernel, &ArrayKernel::has_edge_status, &ArrayKernel::n_edges > EdgeIter
Linear iterator.
Handle for a edge entity.
CirculatorRange< PolyConnectivity, ConstVertexFaceIter, VertexHandle, &PolyConnectivity::cvf_begin, &PolyConnectivity::cvf_end > ConstVertexFaceRange
FaceFaceCCWIter ConstFaceFaceCCWIter
ConstVertexEdgeCWIter cve_cwbegin(VertexHandle _vh) const
const vertex - edge circulator cw
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > VertexOHalfedgeCWIter
VertexFaceIter vf_end(VertexHandle _vh)
vertex - face circulator
EdgeIter edges_sbegin()
Begin iterator for edges.
ConstVertexFaceCCWIter CVFCCWIter
Alias typedef.
ConstFaceFaceCCWIter cff_ccwend(FaceHandle _fh) const
const face - face circulator
VertexOHalfedgeIter voh_begin(VertexHandle _vh)
vertex - outgoing halfedge circulator
VertexOHalfedgeIter voh_iter(VertexHandle _vh)
vertex - outgoing halfedge circulator
FaceVertexCCWIter ConstFaceVertexCCWIter
ConstVertexVertexCWIter CVVCWIter
Alias typedef.
ConstFaceEdgeCWIter cfe_cwiter(FaceHandle _fh) const
const face - edge circulator cw
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::EdgeHandle, &Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > FaceEdgeIter
VertexFaceCCWIter ConstVertexFaceCCWIter
ConstVertexVertexIter cvv_begin(VertexHandle _vh) const
const vertex circulator
FaceEdgeCWIter FECWIter
Alias typedef.
VertexOHalfedgeCCWIter VOHCCWIter
Alias typedef.
VertexFaceCWIter vf_cwend(VertexHandle _vh)
vertex - face circulator cw
VertexVertexCCWIter vv_ccwiter(VertexHandle _vh)
vertex - vertex circulator ccw
ConstVertexOHalfedgeCCWIter cvoh_ccwbegin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
ConstFaceEdgeCCWIter CFECCWIter
Alias typedef.
ConstVertexFaceIter CVFIter
Alias typedef.
Connectivity Class for polygonal meshes.
ConstFaceEdgeCCWIter cfe_ccwbegin(FaceHandle _fh) const
const face - edge circulator ccw
ConstVertexFaceCWIter CVFCWIter
Alias typedef.
VertexOHalfedgeCCWIter voh_ccwiter(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
ConstVertexVertexIter cvv_end(VertexHandle _vh) const
const vertex circulator
EntityRange< const PolyConnectivity, PolyConnectivity::ConstVertexIter, &PolyConnectivity::vertices_begin, &PolyConnectivity::vertices_end > ConstVertexRange
VertexIHalfedgeCCWIter vih_ccwend(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
VertexVertexIter vv_begin(VertexHandle _vh)
vertex - vertex circulator
FaceVertexCCWIter fv_ccwiter(FaceHandle _fh)
face - vertex circulator ccw
ConstFaceIter CFIter
Alias typedef.
ConstFaceVertexCWIter CFVCWIter
Alias typedef.
FaceVertexIter fv_begin(FaceHandle _fh)
face - vertex circulator
FaceHalfedgeCCWIter fh_ccwiter(FaceHandle _fh)
face - halfedge circulator ccw
ConstFaceHalfedgeIter CFHIter
Alias typedef.
VertexIHalfedgeIter vih_begin(VertexHandle _vh)
vertex - incoming halfedge circulator
ConstFaceFaceRange ff_range(FaceHandle _fh) const
ConstFaceFaceCCWIter cff_ccwiter(FaceHandle _fh) const
const face - face circulator
ConstHalfedgeIter CHIter
Alias typedef.
VertexOHalfedgeIter VOHIter
Alias typedef.
FaceVertexCWIter fv_cwbegin(FaceHandle _fh)
face - vertex circulator cw
FaceEdgeCCWIter fe_ccwbegin(FaceHandle _fh)
face - edge circulator ccw
ConstFaceEdgeCCWIter cfe_ccwend(FaceHandle _fh) const
const face - edge circulator ccw
FaceEdgeIter fe_end(FaceHandle _fh)
face - edge circulator
VertexEdgeIter ConstVertexEdgeIter
bool is_valid() const
The handle is valid iff the index is not negative.
Iterators::GenericIteratorT< This, This::HalfedgeHandle, ArrayKernel, &ArrayKernel::has_halfedge_status, &ArrayKernel::n_halfedges > HalfedgeIter
Linear iterator.
VertexFaceCCWIter vf_ccwend(VertexHandle _vh)
vertex - face circulator ccw
FaceHalfedgeCCWIter fh_ccwbegin(FaceHandle _fh)
face - halfedge circulator ccw
ConstFaceHalfedgeCCWIter cfh_ccwiter(FaceHandle _fh) const
const face - halfedge circulator ccw
VertexEdgeIter ve_end(VertexHandle _vh)
vertex - edge circulator
ConstVertexEdgeIter cve_end(VertexHandle _vh) const
const vertex - edge circulator
FaceHalfedgeIter FHIter
Alias typedef.
VertexIHalfedgeCWIter ConstVertexIHalfedgeCWIter
FaceVertexCCWIter fv_ccwend(FaceHandle _fh)
face - vertex circulator ccw
ConstVertexIHalfedgeIter CVIHIter
Alias typedef.
FaceHandle FHandle
Alias typedef.
HalfedgeIter halfedges_sbegin()
Begin iterator for halfedges.
ConstVertexVertexCWIter cvv_cwend(VertexHandle _vh) const
const vertex circulator cw
CirculatorRange< PolyConnectivity, ConstFaceHalfedgeIter, FaceHandle, &PolyConnectivity::cfh_begin, &PolyConnectivity::cfh_end > ConstFaceHalfedgeRange
ConstVertexEdgeCCWIter cve_ccwiter(VertexHandle _vh) const
const vertex - edge circulator ccw
CirculatorRange< PolyConnectivity, ConstFaceFaceIter, FaceHandle, &PolyConnectivity::cff_begin, &PolyConnectivity::cff_end > ConstFaceFaceRange
ConstVertexVertexCCWIter cvv_ccwbegin(VertexHandle _vh) const
const vertex circulator ccw
ConstHalfedgeLoopCWIter chl_cwend(HalfedgeHandle _heh) const
const face - face circulator cw
EntityRange< const PolyConnectivity, PolyConnectivity::ConstVertexIter, &PolyConnectivity::vertices_sbegin, &PolyConnectivity::vertices_end > ConstVertexRangeSkipping
bool is_boundary(HalfedgeHandle _heh) const
Is halfedge _heh a boundary halfedge (is its face handle invalid) ?
Generic class for iterator ranges.
FaceHalfedgeCWIter fh_cwiter(FaceHandle _fh)
face - halfedge circulator cw
ConstVertexVertexRange vv_range(VertexHandle _vh) const
ConstFaceHalfedgeIter cfh_iter(FaceHandle _fh) const
const face - halfedge circulator
ConstVertexIHalfedgeCWIter cvih_cwbegin(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
ConstFaceFaceCCWIter cff_ccwbegin(FaceHandle _fh) const
const face - face circulator ccw
ConstVertexOHalfedgeIter cvoh_begin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
FaceIter faces_end()
End iterator for faces.
ConstVertexIHalfedgeCCWIter CVIHCCWIter
Alias typedef.
FaceIter faces_begin()
Begin iterator for faces.
ConstVertexEdgeCWIter CVECWIter
Alias typedef.
HalfedgeIter halfedges_end()
End iterator for halfedges.
VertexOHalfedgeIter voh_end(VertexHandle _vh)
vertex - outgoing halfedge circulator
HalfedgeLoopCCWIter hl_ccwbegin(HalfedgeHandle _heh)
halfedge circulator ccw
VertexFaceIter ConstVertexFaceIter
Iterators::GenericCirculatorT< This, This::FaceHandle, This::EdgeHandle, &Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > FaceEdgeCCWIter
VertexEdgeCCWIter ve_ccwbegin(VertexHandle _vh)
vertex - edge circulator ccw
ConstFaceIter faces_sbegin() const
Const begin iterator for faces.
CirculatorRange< PolyConnectivity, ConstFaceEdgeIter, FaceHandle, &PolyConnectivity::cfe_begin, &PolyConnectivity::cfe_end > ConstFaceEdgeRange
VertexVertexIter ConstVertexVertexIter
VertexFaceCCWIter vf_ccwiter(VertexHandle _vh)
vertex - face circulator ccw
Vertex & deref(VertexHandle _h)
Get item from handle.
ConstFaceFaceIter CFFIter
Alias typedef.
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::VertexHandle, &Iterators::GenericCirculatorBaseT< This >::toVertexHandle > FaceVertexIter
ConstVertexEdgeIter cve_begin(VertexHandle _vh) const
const vertex - edge circulator
VertexIter VIter
Alias typedef.
FaceIter FIter
Alias typedef.
ConstFaceHalfedgeCCWIter cfh_ccwbegin(FaceHandle _fh) const
const face - halfedge circulator ccw
VertexVertexIter vv_end(VertexHandle _vh)
vertex - vertex circulator
FaceEdgeCWIter fe_cwiter(FaceHandle _fh)
face - edge circulator cw
FaceHalfedgeCCWIter ConstFaceHalfedgeCCWIter
FaceFaceCWIter ff_cwend(FaceHandle _fh)
face - face circulator cw
ConstVertexVertexIter cvv_iter(VertexHandle _vh) const
const vertex circulator
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > HalfedgeLoopCCWIter
FaceHalfedgeCCWIter fh_ccwend(FaceHandle _fh)
face - halfedge circulator ccw
FaceEdgeCCWIter FECWWIter
Alias typedef.
FaceHalfedgeCWIter FHCWIter
Alias typedef.
Iterators::GenericCirculatorT< This, This::VertexHandle, This::VertexHandle, &Iterators::GenericCirculatorBaseT< This >::toVertexHandle, false > VertexVertexCCWIter