49 #ifndef OPENMESH_POLYCONNECTIVITY_HH 50 #define OPENMESH_POLYCONNECTIVITY_HH 52 #include <OpenMesh/Core/Mesh/ArrayKernel.hh> 53 #include <OpenMesh/Core/Mesh/IteratorsT.hh> 54 #include <OpenMesh/Core/Mesh/CirculatorsT.hh> 192 &Iterators::GenericCirculatorBaseT<This>::toHalfedgeHandle>
200 &Iterators::GenericCirculatorBaseT<This>::toHalfedgeHandle,
false>
227 &Iterators::GenericCirculatorBaseT<This>::toVertexHandle>
236 &Iterators::GenericCirculatorBaseT<This>::toVertexHandle,
false>
243 &Iterators::GenericCirculatorBaseT<This>::toHalfedgeHandle>
252 &Iterators::GenericCirculatorBaseT<This>::toHalfedgeHandle,
false>
259 &Iterators::GenericCirculatorBaseT<This>::toEdgeHandle>
268 &Iterators::GenericCirculatorBaseT<This>::toEdgeHandle,
false>
391 inline static bool is_triangles()
405 {
return new_vertex(); }
414 FaceHandle add_face(
const std::vector<VertexHandle>& _vhandles);
467 void delete_vertex(
VertexHandle _vh,
bool _delete_isolated_vertices =
true);
477 void delete_edge(
EdgeHandle _eh,
bool _delete_isolated_vertices=
true);
489 void delete_face(
FaceHandle _fh,
bool _delete_isolated_vertices=
true);
498 VertexIter vertices_begin();
500 ConstVertexIter vertices_begin()
const;
502 VertexIter vertices_end();
504 ConstVertexIter vertices_end()
const;
507 HalfedgeIter halfedges_begin();
509 ConstHalfedgeIter halfedges_begin()
const;
511 HalfedgeIter halfedges_end();
513 ConstHalfedgeIter halfedges_end()
const;
516 EdgeIter edges_begin();
518 ConstEdgeIter edges_begin()
const;
520 EdgeIter edges_end();
522 ConstEdgeIter edges_end()
const;
525 FaceIter faces_begin();
527 ConstFaceIter faces_begin()
const;
529 FaceIter faces_end();
531 ConstFaceIter faces_end()
const;
544 {
return ConstVertexIter(*
this,
VertexHandle(0),
true); }
555 {
return EdgeIter(*
this,
EdgeHandle(0),
true); }
558 {
return ConstEdgeIter(*
this,
EdgeHandle(0),
true); }
562 {
return FaceIter(*
this,
FaceHandle(0),
true); }
565 {
return ConstFaceIter(*
this,
FaceHandle(0),
true); }
580 {
return VertexVertexCWIter(*
this, _vh); }
589 {
return VertexIHalfedgeCWIter(*
this, _vh); }
598 {
return VertexOHalfedgeCWIter(*
this, _vh); }
607 {
return VertexEdgeCWIter(*
this, _vh); }
616 {
return VertexFaceCWIter(*
this, _vh); }
623 {
return ConstVertexVertexIter(*
this, _vh); }
626 {
return ConstVertexVertexCWIter(*
this, _vh); }
629 {
return ConstVertexVertexCCWIter(*
this, _vh); }
632 {
return ConstVertexIHalfedgeIter(*
this, _vh); }
635 {
return ConstVertexIHalfedgeCWIter(*
this, _vh); }
638 {
return ConstVertexIHalfedgeCCWIter(*
this, _vh); }
641 {
return ConstVertexOHalfedgeIter(*
this, _vh); }
644 {
return ConstVertexOHalfedgeCWIter(*
this, _vh); }
647 {
return ConstVertexOHalfedgeCCWIter(*
this, _vh); }
650 {
return ConstVertexEdgeIter(*
this, _vh); }
653 {
return ConstVertexEdgeCWIter(*
this, _vh); }
656 {
return ConstVertexEdgeCCWIter(*
this, _vh); }
659 {
return ConstVertexFaceIter(*
this, _vh); }
662 {
return ConstVertexFaceCWIter(*
this, _vh); }
665 {
return ConstVertexFaceCCWIter(*
this, _vh); }
675 {
return FaceVertexCCWIter(*
this, _fh); }
684 {
return FaceHalfedgeCCWIter(*
this, _fh); }
693 {
return FaceEdgeCCWIter(*
this, _fh); }
702 {
return FaceFaceCCWIter(*
this, _fh); }
706 {
return ConstFaceVertexIter(*
this, _fh); }
709 {
return ConstFaceVertexCWIter(*
this, _fh); }
712 {
return ConstFaceVertexCCWIter(*
this, _fh); }
715 {
return ConstFaceHalfedgeIter(*
this, _fh); }
718 {
return ConstFaceHalfedgeCWIter(*
this, _fh); }
721 {
return ConstFaceHalfedgeCCWIter(*
this, _fh); }
724 {
return ConstFaceEdgeIter(*
this, _fh); }
727 {
return ConstFaceEdgeCWIter(*
this, _fh); }
730 {
return ConstFaceEdgeCCWIter(*
this, _fh); }
733 {
return ConstFaceFaceIter(*
this, _fh); }
736 {
return ConstFaceFaceCWIter(*
this, _fh); }
739 {
return ConstFaceFaceCCWIter(*
this, _fh); }
748 {
return VertexVertexCWIter(*
this, _vh); }
757 {
return VertexIHalfedgeCWIter(*
this, _vh); }
766 {
return VertexOHalfedgeCWIter(*
this, _vh); }
775 {
return VertexEdgeCWIter(*
this, _vh); }
784 {
return VertexFaceCWIter(*
this, _vh); }
792 {
return ConstVertexVertexIter(*
this, _vh); }
795 {
return ConstVertexVertexCWIter(*
this, _vh); }
798 {
return ConstVertexVertexCCWIter(*
this, _vh); }
801 {
return ConstVertexIHalfedgeIter(*
this, _vh); }
804 {
return ConstVertexIHalfedgeCWIter(*
this, _vh); }
807 {
return ConstVertexIHalfedgeCCWIter(*
this, _vh); }
810 {
return ConstVertexOHalfedgeIter(*
this, _vh); }
813 {
return ConstVertexOHalfedgeCWIter(*
this, _vh); }
816 {
return ConstVertexOHalfedgeCCWIter(*
this, _vh); }
819 {
return ConstVertexEdgeIter(*
this, _vh); }
822 {
return ConstVertexEdgeCWIter(*
this, _vh); }
825 {
return ConstVertexEdgeCCWIter(*
this, _vh); }
828 {
return ConstVertexFaceIter(*
this, _vh); }
831 {
return ConstVertexFaceCWIter(*
this, _vh); }
834 {
return ConstVertexFaceCCWIter(*
this, _vh); }
844 {
return FaceVertexCCWIter(*
this, _fh); }
853 {
return FaceHalfedgeCCWIter(*
this, _fh); }
862 {
return FaceEdgeCCWIter(*
this, _fh); }
871 {
return FaceFaceCCWIter(*
this, _fh); }
877 {
return HalfedgeLoopCWIter(*
this, _heh); }
884 {
return ConstFaceVertexIter(*
this, _fh); }
887 {
return ConstFaceVertexCWIter(*
this, _fh); }
890 {
return ConstFaceVertexCCWIter(*
this, _fh); }
893 {
return ConstFaceHalfedgeIter(*
this, _fh); }
896 {
return ConstFaceHalfedgeCWIter(*
this, _fh); }
899 {
return ConstFaceHalfedgeCCWIter(*
this, _fh); }
902 {
return ConstFaceEdgeIter(*
this, _fh); }
905 {
return ConstFaceEdgeCWIter(*
this, _fh); }
908 {
return ConstFaceEdgeCCWIter(*
this, _fh); }
911 {
return ConstFaceFaceIter(*
this, _fh); }
914 {
return ConstFaceFaceCWIter(*
this, _fh); }
917 {
return ConstFaceFaceCCWIter(*
this, _fh); }
920 {
return ConstHalfedgeLoopIter(*
this, _heh); }
923 {
return ConstHalfedgeLoopCWIter(*
this, _heh); }
926 {
return ConstHalfedgeLoopCCWIter(*
this, _heh); }
935 {
return VertexVertexCWIter(*
this, _vh,
true); }
944 {
return VertexIHalfedgeCWIter(*
this, _vh,
true); }
953 {
return VertexOHalfedgeCWIter(*
this, _vh,
true); }
962 {
return VertexEdgeCWIter(*
this, _vh,
true); }
971 {
return VertexFaceCWIter(*
this, _vh,
true); }
978 {
return ConstVertexVertexIter(*
this, _vh,
true); }
981 {
return ConstVertexVertexCWIter(*
this, _vh,
true); }
984 {
return ConstVertexVertexCCWIter(*
this, _vh,
true); }
987 {
return ConstVertexIHalfedgeIter(*
this, _vh,
true); }
990 {
return ConstVertexIHalfedgeCWIter(*
this, _vh,
true); }
993 {
return ConstVertexIHalfedgeCCWIter(*
this, _vh,
true); }
996 {
return ConstVertexOHalfedgeIter(*
this, _vh,
true); }
999 {
return ConstVertexOHalfedgeCWIter(*
this, _vh,
true); }
1002 {
return ConstVertexOHalfedgeCCWIter(*
this, _vh,
true); }
1005 {
return ConstVertexEdgeIter(*
this, _vh,
true); }
1008 {
return ConstVertexEdgeCWIter(*
this, _vh,
true); }
1011 {
return ConstVertexEdgeCCWIter(*
this, _vh,
true); }
1014 {
return ConstVertexFaceIter(*
this, _vh,
true); }
1017 {
return ConstVertexFaceCWIter(*
this, _vh,
true); }
1020 {
return ConstVertexFaceCCWIter(*
this, _vh,
true); }
1030 {
return FaceVertexCCWIter(*
this, _fh,
true); }
1039 {
return FaceHalfedgeCCWIter(*
this, _fh,
true); }
1048 {
return FaceEdgeCCWIter(*
this, _fh,
true); }
1057 {
return FaceFaceCCWIter(*
this, _fh,
true); }
1063 {
return HalfedgeLoopCWIter(*
this, _heh,
true); }
1070 {
return ConstFaceVertexIter(*
this, _fh,
true); }
1073 {
return ConstFaceVertexCWIter(*
this, _fh,
true); }
1076 {
return ConstFaceVertexCCWIter(*
this, _fh,
true); }
1079 {
return ConstFaceHalfedgeIter(*
this, _fh,
true); }
1082 {
return ConstFaceHalfedgeCWIter(*
this, _fh,
true); }
1085 {
return ConstFaceHalfedgeCCWIter(*
this, _fh,
true); }
1088 {
return ConstFaceEdgeIter(*
this, _fh,
true); }
1091 {
return ConstFaceEdgeCWIter(*
this, _fh,
true); }
1094 {
return ConstFaceEdgeCCWIter(*
this, _fh,
true); }
1097 {
return ConstFaceFaceIter(*
this, _fh,
true); }
1100 {
return ConstFaceFaceCWIter(*
this, _fh,
true); }
1103 {
return ConstFaceFaceCCWIter(*
this, _fh,
true); }
1106 {
return ConstHalfedgeLoopIter(*
this, _heh,
true); }
1109 {
return ConstHalfedgeLoopCWIter(*
this, _heh,
true); }
1112 {
return ConstHalfedgeLoopCCWIter(*
this, _heh,
true); }
1120 typename CONTAINER_TYPE,
1122 ITER_TYPE (CONTAINER_TYPE::*begin_fn)()
const,
1123 ITER_TYPE (CONTAINER_TYPE::*end_fn)()
const>
1126 EntityRange(CONTAINER_TYPE &container) : container_(container) {}
1127 ITER_TYPE begin()
const {
return (container_.*begin_fn)(); }
1128 ITER_TYPE end()
const {
return (container_.*end_fn)(); }
1131 CONTAINER_TYPE &container_;
1139 const PolyConnectivity,
1144 const PolyConnectivity,
1149 const PolyConnectivity,
1158 ConstVertexRange
vertices()
const {
return ConstVertexRange(*
this); }
1164 ConstHalfedgeRange
halfedges()
const {
return ConstHalfedgeRange(*
this); }
1170 ConstEdgeRange
edges()
const {
return ConstEdgeRange(*
this); }
1176 ConstFaceRange
faces()
const {
return ConstFaceRange(*
this); }
1180 typename CONTAINER_TYPE,
1182 typename CENTER_ENTITY_TYPE,
1183 ITER_TYPE (CONTAINER_TYPE::*begin_fn)(CENTER_ENTITY_TYPE)
const,
1184 ITER_TYPE (CONTAINER_TYPE::*end_fn)(CENTER_ENTITY_TYPE)
const>
1188 const CONTAINER_TYPE &container,
1189 CENTER_ENTITY_TYPE center) :
1190 container_(container), center_(center) {}
1191 ITER_TYPE begin() {
return (container_.*begin_fn)(center_); }
1192 ITER_TYPE end() {
return (container_.*end_fn)(center_); }
1195 const CONTAINER_TYPE &container_;
1196 CENTER_ENTITY_TYPE center_;
1201 ConstVertexVertexCWIter,
1207 ConstVertexIHalfedgeIter,
1213 ConstVertexOHalfedgeIter, VertexHandle,
1218 ConstVertexEdgeIter,
1224 ConstVertexFaceIter,
1230 ConstFaceVertexIter,
1236 ConstFaceHalfedgeIter,
1257 ConstVertexVertexRange
vv_range(VertexHandle _vh)
const {
1258 return ConstVertexVertexRange(*
this, _vh);
1265 ConstVertexIHalfedgeRange
vih_range(VertexHandle _vh)
const {
1266 return ConstVertexIHalfedgeRange(*
this, _vh);
1273 ConstVertexOHalfedgeRange
voh_range(VertexHandle _vh)
const {
1274 return ConstVertexOHalfedgeRange(*
this, _vh);
1281 ConstVertexEdgeRange
ve_range(VertexHandle _vh)
const {
1282 return ConstVertexEdgeRange(*
this, _vh);
1289 ConstVertexFaceRange
vf_range(VertexHandle _vh)
const {
1290 return ConstVertexFaceRange(*
this, _vh);
1298 return ConstFaceVertexRange(*
this, _fh);
1305 ConstFaceHalfedgeRange
fh_range(FaceHandle _fh)
const {
1306 return ConstFaceHalfedgeRange(*
this, _fh);
1314 return ConstFaceEdgeRange(*
this, _fh);
1322 return ConstFaceFaceRange(*
this, _fh);
1352 return (is_boundary(halfedge_handle(_eh, 0)) ||
1353 is_boundary(halfedge_handle(_eh, 1)));
1370 return (!(heh.
is_valid() && face_handle(heh).is_valid()));
1382 bool is_boundary(FaceHandle _fh,
bool _check_vertex=
false)
const;
1394 bool is_manifold(VertexHandle _vh)
const;
1402 {
return face_handle(opposite_halfedge_handle(_heh)); }
1409 void adjust_outgoing_halfedge(VertexHandle _vh);
1412 HalfedgeHandle find_halfedge(VertexHandle _start_vh, VertexHandle _end_vh)
const;
1414 uint valence(VertexHandle _vh)
const;
1416 uint valence(FaceHandle _fh)
const;
1444 bool is_simply_connected(FaceHandle _fh)
const;
1485 void split(FaceHandle _fh, VertexHandle _vh);
1500 void split_copy(FaceHandle _fh, VertexHandle _vh);
1515 void triangulate(FaceHandle _fh);
1531 void split_edge(
EdgeHandle _eh, VertexHandle _vh);
1544 void split_edge_copy(
EdgeHandle _eh, VertexHandle _vh);
1552 const Vertex& deref(VertexHandle _h)
const {
return vertex(_h); }
1554 Vertex&
deref(VertexHandle _h) {
return vertex(_h); }
1559 const Face&
deref(FaceHandle _h)
const {
return face(_h); }
1560 Face&
deref(FaceHandle _h) {
return face(_h); }
1572 struct AddFaceEdgeInfo
1578 std::vector<AddFaceEdgeInfo> edgeData_;
1579 std::vector<std::pair<HalfedgeHandle, HalfedgeHandle> > next_cache_;
1585 #endif//OPENMESH_POLYCONNECTIVITY_HH ConstVertexEdgeCWIter cve_cwbegin(VertexHandle _vh) const
const vertex - edge circulator cw
Definition: PolyConnectivity.hh:821
VertexIter VIter
Alias typedef.
Definition: PolyConnectivity.hh:321
FaceFaceCCWIter ff_ccwend(FaceHandle _fh)
face - face circulator ccw
Definition: PolyConnectivity.hh:1056
ConstVertexOHalfedgeCWIter cvoh_cwend(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:998
ConstVertexEdgeIter cve_begin(VertexHandle _vh) const
const vertex - edge circulator
Definition: PolyConnectivity.hh:818
VertexFaceCCWIter vf_ccwbegin(VertexHandle _vh)
vertex - face circulator ccw
Definition: PolyConnectivity.hh:786
ConstVertexIter vertices_sbegin() const
Const begin iterator for vertices.
Definition: PolyConnectivity.hh:543
bool is_boundary(VertexHandle _vh) const
Is vertex _vh a boundary vertex ?
Definition: PolyConnectivity.hh:1367
VertexVertexCWIter vv_cwbegin(VertexHandle _vh)
vertex - vertex circulator cw
Definition: PolyConnectivity.hh:747
ConstFaceFaceCWIter cff_cwbegin(FaceHandle _fh) const
const face - face circulator cw
Definition: PolyConnectivity.hh:913
ConstFaceHalfedgeIter cfh_begin(FaceHandle _fh) const
const face - halfedge circulator
Definition: PolyConnectivity.hh:892
ConstFaceFaceCWIter CFFCWIter
Alias typedef.
Definition: PolyConnectivity.hh:382
VertexFaceCWIter vf_cwbegin(VertexHandle _vh)
vertex - face circulator cw
Definition: PolyConnectivity.hh:783
HalfedgeLoopCWIter ConstHalfedgeLoopCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:304
ConstVertexEdgeIter cve_end(VertexHandle _vh) const
const vertex - edge circulator
Definition: PolyConnectivity.hh:1004
ConstFaceEdgeCCWIter CFECCWIter
Alias typedef.
Definition: PolyConnectivity.hh:380
ConstVertexVertexIter CVVIter
Alias typedef.
Definition: PolyConnectivity.hh:357
ConstFaceFaceIter cff_end(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:1096
FaceVertexIter ConstFaceVertexIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:287
VertexOHalfedgeIter voh_begin(VertexHandle _vh)
vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:762
FaceIter faces_begin()
Begin iterator for faces.
Definition: PolyConnectivity.cc:697
Face & deref(FaceHandle _h)
Get item from handle.
Definition: PolyConnectivity.hh:1560
Edge & deref(EdgeHandle _h)
Get item from handle.
Definition: PolyConnectivity.hh:1558
ConstVertexFaceCWIter cvf_cwbegin(VertexHandle _vh) const
const vertex - face circulator cw
Definition: PolyConnectivity.hh:830
ConstVertexOHalfedgeCWIter CVOHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:361
VertexFaceIter vf_begin(VertexHandle _vh)
vertex - face circulator
Definition: PolyConnectivity.hh:780
VertexIter ConstVertexIter
Linear iterator.
Definition: PolyConnectivity.hh:91
ConstVertexOHalfedgeCWIter cvoh_cwbegin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:812
ConstVertexEdgeCWIter cve_cwend(VertexHandle _vh) const
const vertex - edge circulator cw
Definition: PolyConnectivity.hh:1007
FaceHalfedgeCWIter fh_cwbegin(FaceHandle _fh)
face - halfedge circulator cw
Definition: PolyConnectivity.hh:849
VertexIter vertices_begin()
Begin iterator for vertices.
Definition: PolyConnectivity.cc:625
VertexEdgeCCWIter ve_ccwiter(VertexHandle _vh)
vertex - edge circulator ccw
Definition: PolyConnectivity.hh:609
CirculatorRange< PolyConnectivity, ConstFaceFaceIter, FaceHandle,&PolyConnectivity::cff_begin,&PolyConnectivity::cff_end > ConstFaceFaceRange
Definition: PolyConnectivity.hh:1251
Definition: IteratorsT.hh:89
Connectivity Class for polygonal meshes.
Definition: PolyConnectivity.hh:61
ConstVertexVertexIter cvv_iter(VertexHandle _vh) const
const vertex circulator
Definition: PolyConnectivity.hh:622
ConstVertexEdgeIter CVEIter
Alias typedef.
Definition: PolyConnectivity.hh:366
ConstFaceFaceCCWIter CFFCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:383
VertexOHalfedgeCCWIter voh_ccwbegin(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:768
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > HalfedgeLoopIter
Identical to FaceHalfedgeIter.
Definition: PolyConnectivity.hh:193
FaceVertexCWIter fv_cwend(FaceHandle _fh)
face - vertex circulator cw
Definition: PolyConnectivity.hh:1026
ConstFaceEdgeCCWIter cfe_ccwbegin(FaceHandle _fh) const
const face - edge circulator ccw
Definition: PolyConnectivity.hh:907
Definition: CirculatorsT.hh:258
VertexIHalfedgeCWIter vih_cwend(VertexHandle _vh)
vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:943
HalfedgeLoopIter ConstHalfedgeLoopIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:303
FaceHalfedgeCWIter ConstFaceHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:291
ConstVertexIHalfedgeCCWIter cvih_ccwiter(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:637
HalfedgeLoopCCWIter hl_ccwend(HalfedgeHandle _heh)
face - face circulator ccw
Definition: PolyConnectivity.hh:1065
VertexVertexCCWIter vv_ccwbegin(VertexHandle _vh)
vertex - vertex circulator ccw
Definition: PolyConnectivity.hh:750
FaceVertexCCWIter fv_ccwiter(FaceHandle _fh)
face - vertex circulator ccw
Definition: PolyConnectivity.hh:674
ConstFaceFaceCCWIter cff_ccwend(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:1102
HalfedgeLoopIter hl_end(HalfedgeHandle _heh)
face - face circulator
Definition: PolyConnectivity.hh:1059
ConstVertexFaceCCWIter cvf_ccwiter(VertexHandle _vh) const
const vertex - face circulator ccw
Definition: PolyConnectivity.hh:664
FaceFaceCCWIter ff_ccwiter(FaceHandle _fh)
face - face circulator ccw
Definition: PolyConnectivity.hh:701
VertexOHalfedgeCWIter voh_cwend(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:952
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::EdgeHandle,&Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > VertexEdgeIter
Enumerates incident edges in a clockwise fashion.
Definition: PolyConnectivity.hh:178
CirculatorRange< PolyConnectivity, ConstFaceHalfedgeIter, FaceHandle,&PolyConnectivity::cfh_begin,&PolyConnectivity::cfh_end > ConstFaceHalfedgeRange
Definition: PolyConnectivity.hh:1239
ConstVertexVertexCWIter cvv_cwiter(VertexHandle _vh) const
const vertex circulator cw
Definition: PolyConnectivity.hh:625
ConstFaceVertexRange fv_range(FaceHandle _fh) const
Definition: PolyConnectivity.hh:1297
ConstFaceEdgeIter cfe_iter(FaceHandle _fh) const
const face - edge circulator
Definition: PolyConnectivity.hh:723
FaceEdgeCCWIter ConstFaceEdgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:295
VertexOHalfedgeIter voh_end(VertexHandle _vh)
vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:949
FaceFaceIter ff_begin(FaceHandle _fh)
face - face circulator
Definition: PolyConnectivity.hh:864
FaceVertexIter fv_begin(FaceHandle _fh)
face - vertex circulator
Definition: PolyConnectivity.hh:837
ConstVertexIHalfedgeRange vih_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1265
ConstVertexVertexIter cvv_end(VertexHandle _vh) const
const vertex circulator
Definition: PolyConnectivity.hh:977
VertexIHalfedgeIter VIHIter
Alias typedef.
Definition: PolyConnectivity.hh:337
ConstFaceHalfedgeCWIter cfh_cwbegin(FaceHandle _fh) const
const face - halfedge circulator cw
Definition: PolyConnectivity.hh:895
FaceHalfedgeCCWIter fh_ccwbegin(FaceHandle _fh)
face - halfedge circulator ccw
Definition: PolyConnectivity.hh:852
FaceHalfedgeCWIter fh_cwiter(FaceHandle _fh)
face - halfedge circulator cw
Definition: PolyConnectivity.hh:680
EdgeIter edges_end()
End iterator for edges.
Definition: PolyConnectivity.cc:685
FaceEdgeCWIter fe_cwbegin(FaceHandle _fh)
face - edge circulator cw
Definition: PolyConnectivity.hh:858
HalfedgeLoopIter hl_begin(HalfedgeHandle _heh)
halfedge circulator
Definition: PolyConnectivity.hh:873
ConstVertexIHalfedgeCWIter cvih_cwend(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:989
VertexVertexCCWIter vv_ccwiter(VertexHandle _vh)
vertex - vertex circulator ccw
Definition: PolyConnectivity.hh:582
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toOppositeHalfedgeHandle, false > VertexIHalfedgeCCWIter
Enumerates incoming half edges in a counter clockwise fashion.
Definition: PolyConnectivity.hh:155
EntityRange< const PolyConnectivity, PolyConnectivity::ConstHalfedgeIter,&PolyConnectivity::halfedges_begin,&PolyConnectivity::halfedges_end > ConstHalfedgeRange
Definition: PolyConnectivity.hh:1142
FaceEdgeIter fe_iter(FaceHandle _fh)
face - edge circulator
Definition: PolyConnectivity.hh:686
ConstFaceVertexCWIter cfv_cwend(FaceHandle _fh) const
const face - vertex circulator cw
Definition: PolyConnectivity.hh:1072
static const FaceHandle InvalidFaceHandle
Invalid handle.
Definition: PolyConnectivity.hh:73
VertexFaceIter vf_iter(VertexHandle _vh)
vertex - face circulator
Definition: PolyConnectivity.hh:612
EntityRange< const PolyConnectivity, PolyConnectivity::ConstEdgeIter,&PolyConnectivity::edges_begin,&PolyConnectivity::edges_end > ConstEdgeRange
Definition: PolyConnectivity.hh:1147
ConstFaceVertexCWIter cfv_cwbegin(FaceHandle _fh) const
const face - vertex circulator cw
Definition: PolyConnectivity.hh:886
static const EdgeHandle InvalidEdgeHandle
Invalid handle.
Definition: PolyConnectivity.hh:71
ConstFaceEdgeRange fe_range(FaceHandle _fh) const
Definition: PolyConnectivity.hh:1313
FaceHalfedgeCCWIter FHCWWIter
Alias typedef.
Definition: PolyConnectivity.hh:351
ConstFaceFaceCWIter cff_cwiter(FaceHandle _fh) const
const face - face circulator cw
Definition: PolyConnectivity.hh:735
ConstVertexVertexCCWIter cvv_ccwbegin(VertexHandle _vh) const
const vertex circulator ccw
Definition: PolyConnectivity.hh:797
ConstFaceFaceCCWIter cff_ccwbegin(FaceHandle _fh) const
const face - face circulator ccw
Definition: PolyConnectivity.hh:916
ConstVertexVertexCWIter cvv_cwend(VertexHandle _vh) const
const vertex circulator cw
Definition: PolyConnectivity.hh:980
FaceVertexCCWIter fv_ccwbegin(FaceHandle _fh)
face - vertex circulator ccw
Definition: PolyConnectivity.hh:843
FaceHalfedgeCCWIter ConstFaceHalfedgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:292
Iterators::GenericCirculatorT< This, This::FaceHandle, This::VertexHandle,&Iterators::GenericCirculatorBaseT< This >::toVertexHandle > FaceVertexCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:230
VertexEdgeIter VEIter
Alias typedef.
Definition: PolyConnectivity.hh:340
ConstFaceHalfedgeIter cfh_iter(FaceHandle _fh) const
const face - halfedge circulator
Definition: PolyConnectivity.hh:714
Iterators::GenericCirculatorT< This, This::FaceHandle, This::FaceHandle,&Iterators::GenericCirculatorBaseT< This >::toOppositeFaceHandle, false > FaceFaceCWIter
Enumerate adjacent faces in a clockwise fashion.
Definition: PolyConnectivity.hh:285
ConstVertexVertexCWIter cvv_cwbegin(VertexHandle _vh) const
const vertex circulator cw
Definition: PolyConnectivity.hh:794
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toOppositeHalfedgeHandle > VertexIHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:148
CirculatorRange< PolyConnectivity, ConstFaceVertexIter, FaceHandle,&PolyConnectivity::cfv_begin,&PolyConnectivity::cfv_end > ConstFaceVertexRange
Definition: PolyConnectivity.hh:1233
VertexIter vertices_end()
End iterator for vertices.
Definition: PolyConnectivity.cc:637
ConstFaceVertexIter cfv_iter(FaceHandle _fh) const
const face - vertex circulator
Definition: PolyConnectivity.hh:705
Handle for a vertex entity.
Definition: Handles.hh:125
bool is_valid() const
The handle is valid iff the index is not equal to -1.
Definition: Handles.hh:77
Definition: CirculatorsT.hh:430
FaceHalfedgeCCWIter fh_ccwend(FaceHandle _fh)
face - halfedge circulator ccw
Definition: PolyConnectivity.hh:1038
VertexEdgeCCWIter ConstVertexEdgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:217
ConstHalfedgeLoopCWIter chl_cwend(HalfedgeHandle _heh) const
const face - face circulator cw
Definition: PolyConnectivity.hh:1108
ConstFaceHalfedgeCCWIter cfh_ccwiter(FaceHandle _fh) const
const face - halfedge circulator ccw
Definition: PolyConnectivity.hh:720
Definition: CirculatorsT.hh:196
ConstVertexOHalfedgeCCWIter cvoh_ccwbegin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:815
HalfedgeIter halfedges_end()
End iterator for halfedges.
Definition: PolyConnectivity.cc:661
ConstFaceEdgeCCWIter cfe_ccwend(FaceHandle _fh) const
const face - edge circulator ccw
Definition: PolyConnectivity.hh:1093
FaceHandle FHandle
Alias typedef.
Definition: PolyConnectivity.hh:319
VertexEdgeIter ConstVertexEdgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:215
bool is_boundary(HalfedgeHandle _heh) const
Is halfedge _heh a boundary halfedge (is its face handle invalid) ?
Definition: ArrayKernel.hh:403
VertexFaceCWIter vf_cwend(VertexHandle _vh)
vertex - face circulator cw
Definition: PolyConnectivity.hh:970
VertexEdgeCCWIter ve_ccwbegin(VertexHandle _vh)
vertex - edge circulator ccw
Definition: PolyConnectivity.hh:777
ConstVertexOHalfedgeRange voh_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1273
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > VertexOHalfedgeIter
Enumerates outgoing half edges in a clockwise fashion.
Definition: PolyConnectivity.hh:130
ConstFaceVertexIter cfv_begin(FaceHandle _fh) const
const face - vertex circulator
Definition: PolyConnectivity.hh:883
ConstVertexEdgeCCWIter cve_ccwbegin(VertexHandle _vh) const
const vertex - edge circulator ccw
Definition: PolyConnectivity.hh:824
ConstVertexEdgeCWIter cve_cwiter(VertexHandle _vh) const
const vertex - edge circulator cw
Definition: PolyConnectivity.hh:652
ConstFaceHalfedgeRange fh_range(FaceHandle _fh) const
Definition: PolyConnectivity.hh:1305
ConstFaceVertexCCWIter CFVCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:374
ConstHalfedgeLoopCCWIter chl_ccwend(HalfedgeHandle _heh) const
const face - face circulator ccw
Definition: PolyConnectivity.hh:1111
FaceHalfedgeCWIter fh_cwend(FaceHandle _fh)
face - halfedge circulator cw
Definition: PolyConnectivity.hh:1035
VertexVertexIter VVIter
Alias typedef.
Definition: PolyConnectivity.hh:331
VertexEdgeIter ve_end(VertexHandle _vh)
vertex - edge circulator
Definition: PolyConnectivity.hh:958
ConstVertexVertexCCWIter cvv_ccwiter(VertexHandle _vh) const
const vertex circulator ccw
Definition: PolyConnectivity.hh:628
ConstVertexVertexCCWIter cvv_ccwend(VertexHandle _vh) const
const vertex circulator ccw
Definition: PolyConnectivity.hh:983
FaceFaceCWIter ff_cwbegin(FaceHandle _fh)
face - face circulator cw
Definition: PolyConnectivity.hh:867
FaceVertexIter fv_end(FaceHandle _fh)
face - vertex circulator
Definition: PolyConnectivity.hh:1023
ConstVertexEdgeCCWIter cve_ccwiter(VertexHandle _vh) const
const vertex - edge circulator ccw
Definition: PolyConnectivity.hh:655
VertexOHalfedgeIter voh_iter(VertexHandle _vh)
vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:594
EdgeIter ConstEdgeIter
Linear iterator.
Definition: PolyConnectivity.hh:93
FaceVertexCWIter FVCWIter
Alias typedef.
Definition: PolyConnectivity.hh:347
Generic class for vertex/halfedge/edge/face ranges.
Definition: PolyConnectivity.hh:1124
ConstHalfedgeLoopIter chl_begin(HalfedgeHandle _heh) const
const halfedge circulator
Definition: PolyConnectivity.hh:919
ConstFaceEdgeCCWIter cfe_ccwiter(FaceHandle _fh) const
const face - edge circulator ccw
Definition: PolyConnectivity.hh:729
ConstVertexEdgeCCWIter CVECCWIter
Alias typedef.
Definition: PolyConnectivity.hh:368
VertexEdgeCWIter ConstVertexEdgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:216
VertexIHalfedgeIter vih_iter(VertexHandle _vh)
vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:585
VertexFaceCCWIter vf_ccwend(VertexHandle _vh)
vertex - face circulator ccw
Definition: PolyConnectivity.hh:973
FaceVertexIter fv_iter(FaceHandle _fh)
face - vertex circulator
Definition: PolyConnectivity.hh:668
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::FaceHandle,&Iterators::GenericCirculatorBaseT< This >::toFaceHandle > VertexFaceIter
Enumerates incident faces in a clockwise fashion.
Definition: PolyConnectivity.hh:162
FaceEdgeCWIter fe_cwend(FaceHandle _fh)
face - edge circulator cw
Definition: PolyConnectivity.hh:1044
ConstEdgeIter edges_sbegin() const
Const begin iterator for edges.
Definition: PolyConnectivity.hh:557
ConstFaceVertexIter cfv_end(FaceHandle _fh) const
const face - vertex circulator
Definition: PolyConnectivity.hh:1069
VertexIter vertices_sbegin()
Begin iterator for vertices.
Definition: PolyConnectivity.hh:540
EntityRange< const PolyConnectivity, PolyConnectivity::ConstVertexIter,&PolyConnectivity::vertices_begin,&PolyConnectivity::vertices_end > ConstVertexRange
Definition: PolyConnectivity.hh:1137
ConstEdgeIter CEIter
Alias typedef.
Definition: PolyConnectivity.hh:328
VertexVertexIter vv_end(VertexHandle _vh)
vertex - vertex circulator
Definition: PolyConnectivity.hh:931
VertexEdgeCCWIter ve_ccwend(VertexHandle _vh)
vertex - edge circulator ccw
Definition: PolyConnectivity.hh:964
HalfedgeLoopCWIter hl_cwend(HalfedgeHandle _heh)
face - face circulator cw
Definition: PolyConnectivity.hh:1062
FaceFaceIter ff_end(FaceHandle _fh)
face - face circulator
Definition: PolyConnectivity.hh:1050
FaceFaceCWIter ConstFaceFaceCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:297
VertexIHalfedgeCWIter VIHICWter
Alias typedef.
Definition: PolyConnectivity.hh:338
EntityRange< const PolyConnectivity, PolyConnectivity::ConstFaceIter,&PolyConnectivity::faces_begin,&PolyConnectivity::faces_end > ConstFaceRange
Definition: PolyConnectivity.hh:1152
const Face & deref(FaceHandle _h) const
Get item from handle.
Definition: PolyConnectivity.hh:1559
CirculatorRange< PolyConnectivity, ConstVertexIHalfedgeIter, VertexHandle,&PolyConnectivity::cvih_begin,&PolyConnectivity::cvih_end > ConstVertexIHalfedgeRange
Definition: PolyConnectivity.hh:1210
ConstFaceVertexIter CFVIter
Alias typedef.
Definition: PolyConnectivity.hh:372
VertexEdgeCWIter ve_cwend(VertexHandle _vh)
vertex - edge circulator cw
Definition: PolyConnectivity.hh:961
VertexFaceCWIter VFCWIter
Alias typedef.
Definition: PolyConnectivity.hh:344
FaceHalfedgeCCWIter fh_ccwiter(FaceHandle _fh)
face - halfedge circulator ccw
Definition: PolyConnectivity.hh:683
CirculatorRange< PolyConnectivity, ConstVertexFaceIter, VertexHandle,&PolyConnectivity::cvf_begin,&PolyConnectivity::cvf_end > ConstVertexFaceRange
Definition: PolyConnectivity.hh:1227
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::FaceHandle,&Iterators::GenericCirculatorBaseT< This >::toOppositeFaceHandle > FaceFaceIter
Enumerate adjacent faces in a counter clockwise fashion.
Definition: PolyConnectivity.hh:276
Iterators::GenericCirculatorT< This, This::FaceHandle, This::EdgeHandle,&Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > FaceEdgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:262
FaceHalfedgeIter ConstFaceHalfedgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:290
ConstFaceVertexCCWIter cfv_ccwbegin(FaceHandle _fh) const
const face - vertex circulator ccw
Definition: PolyConnectivity.hh:889
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > FaceHalfedgeIter
Enumerate incident half edges in a counter clockwise fashion.
Definition: PolyConnectivity.hh:244
HalfedgeLoopCCWIter ConstHalfedgeLoopCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:305
ConstVertexFaceIter CVFIter
Alias typedef.
Definition: PolyConnectivity.hh:369
VertexEdgeIter ve_iter(VertexHandle _vh)
vertex - edge circulator
Definition: PolyConnectivity.hh:603
FaceHalfedgeIter fh_iter(FaceHandle _fh)
face - halfedge circulator
Definition: PolyConnectivity.hh:677
ConstVertexEdgeIter cve_iter(VertexHandle _vh) const
const vertex - edge circulator
Definition: PolyConnectivity.hh:649
ConstVertexFaceCCWIter cvf_ccwend(VertexHandle _vh) const
const vertex - face circulator ccw
Definition: PolyConnectivity.hh:1019
ConstVertexVertexCCWIter CVVCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:359
FaceVertexIter FVIter
Alias typedef.
Definition: PolyConnectivity.hh:346
VertexVertexCWIter VVCWIter
Alias typedef.
Definition: PolyConnectivity.hh:332
HalfedgeIter halfedges_begin()
Begin iterator for halfedges.
Definition: PolyConnectivity.cc:649
ConstVertexEdgeCWIter CVECWIter
Alias typedef.
Definition: PolyConnectivity.hh:367
ConstFaceHalfedgeIter cfh_end(FaceHandle _fh) const
const face - halfedge circulator
Definition: PolyConnectivity.hh:1078
ConstHalfedgeIter CHIter
Alias typedef.
Definition: PolyConnectivity.hh:327
VertexHandle add_vertex()
Add a new vertex.
Definition: PolyConnectivity.hh:404
EdgeIter edges_sbegin()
Begin iterator for edges.
Definition: PolyConnectivity.hh:554
CirculatorRange< PolyConnectivity, ConstFaceEdgeIter, FaceHandle,&PolyConnectivity::cfe_begin,&PolyConnectivity::cfe_end > ConstFaceEdgeRange
Definition: PolyConnectivity.hh:1245
ConstFaceEdgeIter cfe_end(FaceHandle _fh) const
const face - edge circulator
Definition: PolyConnectivity.hh:1087
Iterators::GenericCirculatorT< This, This::FaceHandle, This::FaceHandle,&Iterators::GenericCirculatorBaseT< This >::toOppositeFaceHandle > FaceFaceCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:278
ConstEdgeRange edges() const
Definition: PolyConnectivity.hh:1170
Iterators::GenericCirculatorT< This, This::FaceHandle, This::EdgeHandle,&Iterators::GenericCirculatorBaseT< This >::toEdgeHandle, false > FaceEdgeCWIter
Enumerate incident edges in a clockwise fashion.
Definition: PolyConnectivity.hh:269
VertexEdgeCWIter ve_cwiter(VertexHandle _vh)
vertex - edge circulator cw
Definition: PolyConnectivity.hh:606
FaceFaceIter ff_iter(FaceHandle _fh)
face - face circulator
Definition: PolyConnectivity.hh:695
VertexOHalfedgeCWIter voh_cwiter(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:597
VertexIHalfedgeIter vih_end(VertexHandle _vh)
vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:940
ConstVertexEdgeCCWIter cve_ccwend(VertexHandle _vh) const
const vertex - edge circulator ccw
Definition: PolyConnectivity.hh:1010
const Halfedge & deref(HalfedgeHandle _h) const
Get item from handle.
Definition: PolyConnectivity.hh:1555
ConstVertexIHalfedgeCWIter CVIHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:364
EdgeHandle EHandle
Alias typedef.
Definition: PolyConnectivity.hh:318
ConstFaceVertexCWIter cfv_cwiter(FaceHandle _fh) const
const face - vertex circulator cw
Definition: PolyConnectivity.hh:708
HalfedgeIter HIter
Alias typedef.
Definition: PolyConnectivity.hh:322
FaceEdgeCCWIter fe_ccwiter(FaceHandle _fh)
face - edge circulator ccw
Definition: PolyConnectivity.hh:692
FaceHandle opposite_face_handle(HalfedgeHandle _heh) const
returns the face handle of the opposite halfedge
Definition: PolyConnectivity.hh:1401
HalfedgeIter halfedges_sbegin()
Begin iterator for halfedges.
Definition: PolyConnectivity.hh:547
ConstVertexFaceIter cvf_iter(VertexHandle _vh) const
const vertex - face circulator
Definition: PolyConnectivity.hh:658
ConstHalfedgeRange halfedges() const
Definition: PolyConnectivity.hh:1164
bool is_boundary(EdgeHandle _eh) const
Is the edge a boundary edge?
Definition: PolyConnectivity.hh:1350
Iterators::GenericCirculatorT< This, This::VertexHandle, This::EdgeHandle,&Iterators::GenericCirculatorBaseT< This >::toEdgeHandle, false > VertexEdgeCCWIter
Enumerates incident edges in a counter clockwise fashion.
Definition: PolyConnectivity.hh:186
VertexOHalfedgeCCWIter voh_ccwend(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:955
FaceEdgeCCWIter fe_ccwend(FaceHandle _fh)
face - edge circulator ccw
Definition: PolyConnectivity.hh:1047
VertexFaceIter VFIter
Alias typedef.
Definition: PolyConnectivity.hh:343
HalfedgeLoopCWIter hl_cwbegin(HalfedgeHandle _heh)
halfedge circulator
Definition: PolyConnectivity.hh:876
ConstFaceHalfedgeCWIter CFHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:376
ConstVertexFaceCCWIter cvf_ccwbegin(VertexHandle _vh) const
const vertex - face circulator ccw
Definition: PolyConnectivity.hh:833
FaceEdgeCWIter fe_cwiter(FaceHandle _fh)
face - edge circulator cw
Definition: PolyConnectivity.hh:689
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > VertexOHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:132
ConstVertexOHalfedgeIter CVOHIter
Alias typedef.
Definition: PolyConnectivity.hh:360
HalfedgeIter ConstHalfedgeIter
Linear iterator.
Definition: PolyConnectivity.hh:92
FaceEdgeCWIter FECWIter
Alias typedef.
Definition: PolyConnectivity.hh:353
void assign_connectivity(const ArrayKernel &_other)
ArrayKernel uses the default copy constructor and assignment operator, which means that the connectiv...
Definition: ArrayKernel.cc:76
ConstVertexVertexIter cvv_begin(VertexHandle _vh) const
const vertex circulator
Definition: PolyConnectivity.hh:791
VertexEdgeCCWIter VECCWIter
Alias typedef.
Definition: PolyConnectivity.hh:342
Iterators::GenericCirculatorT< This, This::VertexHandle, This::FaceHandle,&Iterators::GenericCirculatorBaseT< This >::toFaceHandle, false > VertexFaceCCWIter
Enumerates incident faces in a counter clockwise fashion.
Definition: PolyConnectivity.hh:171
ConstVertexFaceCWIter CVFCWIter
Alias typedef.
Definition: PolyConnectivity.hh:370
HalfedgeLoopCCWIter hl_ccwbegin(HalfedgeHandle _heh)
halfedge circulator ccw
Definition: PolyConnectivity.hh:879
ConstFaceHalfedgeIter CFHIter
Alias typedef.
Definition: PolyConnectivity.hh:375
VertexOHalfedgeCWIter ConstVertexOHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:207
const Edge & deref(EdgeHandle _h) const
Get item from handle.
Definition: PolyConnectivity.hh:1557
FaceEdgeIter ConstFaceEdgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:293
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > FaceHalfedgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:246
Iterators::GenericIteratorT< This, This::EdgeHandle, ArrayKernel,&ArrayKernel::has_edge_status,&ArrayKernel::n_edges > EdgeIter
Linear iterator.
Definition: PolyConnectivity.hh:88
FaceIter ConstFaceIter
Linear iterator.
Definition: PolyConnectivity.hh:94
ConstVertexOHalfedgeCCWIter cvoh_ccwiter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:646
ConstVertexOHalfedgeCWIter cvoh_cwiter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:643
ConstVertexFaceIter cvf_end(VertexHandle _vh) const
const vertex - face circulator
Definition: PolyConnectivity.hh:1013
ConstFaceFaceRange ff_range(FaceHandle _fh) const
Definition: PolyConnectivity.hh:1321
Mesh kernel using arrays for mesh item storage.
Definition: ArrayKernel.hh:92
ConstFaceVertexCWIter CFVCWIter
Alias typedef.
Definition: PolyConnectivity.hh:373
FaceFaceCWIter ff_cwiter(FaceHandle _fh)
face - face circulator cw
Definition: PolyConnectivity.hh:698
ConstHalfedgeIter halfedges_sbegin() const
Const begin iterator for halfedges.
Definition: PolyConnectivity.hh:550
ConstVertexIHalfedgeCCWIter cvih_ccwbegin(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:806
FaceEdgeIter fe_end(FaceHandle _fh)
face - edge circulator
Definition: PolyConnectivity.hh:1041
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle, false > VertexOHalfedgeCCWIter
Enumerates outgoing half edges in a counter clockwise fashion.
Definition: PolyConnectivity.hh:139
VertexIHalfedgeCWIter vih_cwiter(VertexHandle _vh)
vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:588
Iterators::GenericIteratorT< This, This::HalfedgeHandle, ArrayKernel,&ArrayKernel::has_halfedge_status,&ArrayKernel::n_halfedges > HalfedgeIter
Linear iterator.
Definition: PolyConnectivity.hh:87
ConstVertexOHalfedgeIter cvoh_begin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:809
ConstVertexIHalfedgeCWIter cvih_cwiter(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:634
FaceEdgeCCWIter fe_ccwbegin(FaceHandle _fh)
face - edge circulator ccw
Definition: PolyConnectivity.hh:861
ConstFaceFaceCCWIter cff_ccwiter(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:738
ConstVertexIHalfedgeIter CVIHIter
Alias typedef.
Definition: PolyConnectivity.hh:363
Iterators::GenericCirculatorT< This, This::VertexHandle, This::FaceHandle,&Iterators::GenericCirculatorBaseT< This >::toFaceHandle > VertexFaceCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:164
VertexFaceCCWIter vf_ccwiter(VertexHandle _vh)
vertex - face circulator ccw
Definition: PolyConnectivity.hh:618
VertexOHalfedgeCCWIter VOHCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:336
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle, false > FaceHalfedgeCWIter
Enumerate incident half edges in a clockwise fashion.
Definition: PolyConnectivity.hh:253
FaceHalfedgeCWIter FHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:350
static const HalfedgeHandle InvalidHalfedgeHandle
Invalid handle.
Definition: PolyConnectivity.hh:69
ConstVertexFaceRange vf_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1289
ConstFaceFaceIter CFFIter
Alias typedef.
Definition: PolyConnectivity.hh:381
ConstHalfedgeLoopCCWIter chl_ccwbegin(HalfedgeHandle _heh) const
const halfedge circulator ccw
Definition: PolyConnectivity.hh:925
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle, false > HalfedgeLoopCCWIter
Identical to FaceHalfedgeIter.
Definition: PolyConnectivity.hh:201
VertexVertexIter ConstVertexVertexIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:203
ConstVertexIter CVIter
Alias typedef.
Definition: PolyConnectivity.hh:326
EdgeIter EIter
Alias typedef.
Definition: PolyConnectivity.hh:323
VertexOHalfedgeIter ConstVertexOHalfedgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:206
ConstVertexOHalfedgeIter cvoh_end(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:995
ConstVertexOHalfedgeCCWIter cvoh_ccwend(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:1001
ConstFaceHalfedgeCWIter cfh_cwend(FaceHandle _fh) const
const face - halfedge circulator cw
Definition: PolyConnectivity.hh:1081
ConstVertexOHalfedgeCCWIter CVOHCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:362
VertexVertexCWIter ConstVertexVertexCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:204
FaceVertexCWIter ConstFaceVertexCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:288
VertexFaceCWIter vf_cwiter(VertexHandle _vh)
vertex - face circulator cw
Definition: PolyConnectivity.hh:615
ConstFaceEdgeIter cfe_begin(FaceHandle _fh) const
const face - edge circulator
Definition: PolyConnectivity.hh:901
ConstFaceIter CFIter
Alias typedef.
Definition: PolyConnectivity.hh:329
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toOppositeHalfedgeHandle > VertexIHalfedgeIter
Enumerates incoming half edges in a clockwise fashion.
Definition: PolyConnectivity.hh:146
CirculatorRange< PolyConnectivity, ConstVertexOHalfedgeIter, VertexHandle,&PolyConnectivity::cvoh_begin,&PolyConnectivity::cvoh_end > ConstVertexOHalfedgeRange
Definition: PolyConnectivity.hh:1215
FaceVertexCCWIter FVCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:348
VertexFaceIter ConstVertexFaceIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:212
FaceEdgeCCWIter FECWWIter
Alias typedef.
Definition: PolyConnectivity.hh:354
FaceHalfedgeIter fh_begin(FaceHandle _fh)
face - halfedge circulator
Definition: PolyConnectivity.hh:846
FaceEdgeIter fe_begin(FaceHandle _fh)
face - edge circulator
Definition: PolyConnectivity.hh:855
VertexVertexCWIter vv_cwend(VertexHandle _vh)
vertex - vertex circulator cw
Definition: PolyConnectivity.hh:934
ConstFaceEdgeCWIter cfe_cwiter(FaceHandle _fh) const
const face - edge circulator cw
Definition: PolyConnectivity.hh:726
ConstFaceFaceCWIter cff_cwend(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:1099
VertexFaceCCWIter ConstVertexFaceCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:214
Iterators::GenericIteratorT< This, This::FaceHandle, ArrayKernel,&ArrayKernel::has_face_status,&ArrayKernel::n_faces > FaceIter
Linear iterator.
Definition: PolyConnectivity.hh:89
CirculatorRange< PolyConnectivity, ConstVertexEdgeIter, VertexHandle,&PolyConnectivity::cve_begin,&PolyConnectivity::cve_end > ConstVertexEdgeRange
Definition: PolyConnectivity.hh:1221
FaceVertexCWIter fv_cwiter(FaceHandle _fh)
face - vertex circulator cw
Definition: PolyConnectivity.hh:671
Vertex & deref(VertexHandle _h)
Get item from handle.
Definition: PolyConnectivity.hh:1554
FaceVertexCCWIter ConstFaceVertexCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:289
FaceIter faces_end()
End iterator for faces.
Definition: PolyConnectivity.cc:709
ConstVertexVertexRange vv_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1257
VertexVertexCCWIter VVCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:333
VertexOHalfedgeIter VOHIter
Alias typedef.
Definition: PolyConnectivity.hh:334
VertexIHalfedgeCCWIter vih_ccwend(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:946
FaceVertexCCWIter fv_ccwend(FaceHandle _fh)
face - vertex circulator ccw
Definition: PolyConnectivity.hh:1029
ConstFaceEdgeCWIter cfe_cwbegin(FaceHandle _fh) const
const face - edge circulator cw
Definition: PolyConnectivity.hh:904
ConstFaceHalfedgeCCWIter CFHCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:377
VertexIHalfedgeCCWIter vih_ccwiter(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:591
ConstHalfedgeLoopIter chl_end(HalfedgeHandle _heh) const
const face - face circulator
Definition: PolyConnectivity.hh:1105
ConstVertexFaceCWIter cvf_cwend(VertexHandle _vh) const
const vertex - face circulator cw
Definition: PolyConnectivity.hh:1016
bool is_boundary(HalfedgeHandle _heh) const
Check if the halfedge is at the boundary.
Definition: PolyConnectivity.hh:1339
VertexIHalfedgeIter vih_begin(VertexHandle _vh)
vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:753
VertexEdgeCWIter ve_cwbegin(VertexHandle _vh)
vertex - edge circulator cw
Definition: PolyConnectivity.hh:774
ConstFaceRange faces() const
Definition: PolyConnectivity.hh:1176
ConstFaceHalfedgeCCWIter cfh_ccwbegin(FaceHandle _fh) const
const face - halfedge circulator ccw
Definition: PolyConnectivity.hh:898
VertexOHalfedgeCWIter voh_cwbegin(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:765
FaceIter FIter
Alias typedef.
Definition: PolyConnectivity.hh:324
ConstVertexIHalfedgeIter cvih_begin(VertexHandle _vh) const
const vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:800
ConstFaceHalfedgeCCWIter cfh_ccwend(FaceHandle _fh) const
const face - halfedge circulator ccw
Definition: PolyConnectivity.hh:1084
HalfedgeHandle HHandle
Alias typedef.
Definition: PolyConnectivity.hh:317
VertexFaceIter vf_end(VertexHandle _vh)
vertex - face circulator
Definition: PolyConnectivity.hh:967
VertexVertexCCWIter vv_ccwend(VertexHandle _vh)
vertex - vertex circulator ccw
Definition: PolyConnectivity.hh:937
VertexOHalfedgeCCWIter voh_ccwiter(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:600
ConstFaceIter faces_sbegin() const
Const begin iterator for faces.
Definition: PolyConnectivity.hh:564
VertexIHalfedgeCWIter ConstVertexIHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:210
VertexIHalfedgeCCWIter vih_ccwbegin(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:759
VertexIHalfedgeCCWIter ConstVertexIHalfedgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:211
VertexFaceCWIter ConstVertexFaceCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:213
Iterators::GenericCirculatorT< This, This::FaceHandle, This::VertexHandle,&Iterators::GenericCirculatorBaseT< This >::toVertexHandle, false > FaceVertexCWIter
Enumerate incident vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:237
VertexIHalfedgeCWIter vih_cwbegin(VertexHandle _vh)
vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:756
ConstFaceHalfedgeCWIter cfh_cwiter(FaceHandle _fh) const
const face - halfedge circulator cw
Definition: PolyConnectivity.hh:717
ConstVertexFaceIter cvf_begin(VertexHandle _vh) const
const vertex - face circulator
Definition: PolyConnectivity.hh:827
ConstVertexFaceCCWIter CVFCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:371
VertexFaceCCWIter VFCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:345
VertexIHalfedgeCCWIter VIHICCWter
Alias typedef.
Definition: PolyConnectivity.hh:339
ConstFaceVertexCCWIter cfv_ccwiter(FaceHandle _fh) const
const face - vertex circulator ccw
Definition: PolyConnectivity.hh:711
FaceIter faces_sbegin()
Begin iterator for faces.
Definition: PolyConnectivity.hh:561
VertexOHalfedgeCCWIter ConstVertexOHalfedgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:208
FaceFaceCCWIter ConstFaceFaceCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:298
ConstFaceEdgeIter CFEIter
Alias typedef.
Definition: PolyConnectivity.hh:378
FaceEdgeIter FEIter
Alias typedef.
Definition: PolyConnectivity.hh:352
VertexVertexIter vv_iter(VertexHandle _vh)
vertex - vertex circulator
Definition: PolyConnectivity.hh:576
ConstFaceFaceIter cff_begin(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:910
ConstVertexVertexCWIter CVVCWIter
Alias typedef.
Definition: PolyConnectivity.hh:358
FaceEdgeCWIter ConstFaceEdgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:294
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::EdgeHandle,&Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > FaceEdgeIter
Enumerate incident edges in a counter clockwise fashion.
Definition: PolyConnectivity.hh:260
Handle for a face entity.
Definition: Handles.hh:146
ConstFaceFaceIter cff_iter(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:732
ConstFaceEdgeCWIter CFECWIter
Alias typedef.
Definition: PolyConnectivity.hh:379
ConstVertexFaceCWIter cvf_cwiter(VertexHandle _vh) const
const vertex - face circulator cw
Definition: PolyConnectivity.hh:661
Iterators::GenericCirculatorT< This, This::VertexHandle, This::EdgeHandle,&Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > VertexEdgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:180
VertexVertexCCWIter ConstVertexVertexCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:205
FaceHalfedgeIter FHIter
Alias typedef.
Definition: PolyConnectivity.hh:349
ConstVertexIHalfedgeIter cvih_iter(VertexHandle _vh) const
const vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:631
ConstVertexIHalfedgeCCWIter cvih_ccwend(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:992
VertexEdgeCWIter VECWIter
Alias typedef.
Definition: PolyConnectivity.hh:341
FaceVertexCWIter fv_cwbegin(FaceHandle _fh)
face - vertex circulator cw
Definition: PolyConnectivity.hh:840
Halfedge & deref(HalfedgeHandle _h)
Get item from handle.
Definition: PolyConnectivity.hh:1556
void assign_connectivity(const PolyConnectivity &_other)
assign_connectivity() method.
Definition: PolyConnectivity.hh:396
ConstVertexEdgeRange ve_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1281
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::VertexHandle,&Iterators::GenericCirculatorBaseT< This >::toVertexHandle > VertexVertexIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:114
VertexOHalfedgeCWIter VOHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:335
ConstHalfedgeLoopCWIter chl_cwbegin(HalfedgeHandle _heh) const
const halfedge circulator cw
Definition: PolyConnectivity.hh:922
Handle for a edge entity.
Definition: Handles.hh:139
VertexIHalfedgeIter ConstVertexIHalfedgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:209
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...
Definition: MeshItems.hh:64
EdgeIter edges_begin()
Begin iterator for edges.
Definition: PolyConnectivity.cc:673
ConstVertexIHalfedgeCCWIter CVIHCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:365
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > HalfedgeLoopCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:195
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::VertexHandle,&Iterators::GenericCirculatorBaseT< This >::toVertexHandle > FaceVertexIter
Enumerate incident vertices in a counter clockwise fashion.
Definition: PolyConnectivity.hh:228
FaceHalfedgeIter fh_end(FaceHandle _fh)
face - halfedge circulator
Definition: PolyConnectivity.hh:1032
Generic class for iterator ranges.
Definition: PolyConnectivity.hh:1185
VertexVertexIter vv_begin(VertexHandle _vh)
vertex - vertex circulator
Definition: PolyConnectivity.hh:744
FaceFaceIter FFIter
Alias typedef.
Definition: PolyConnectivity.hh:355
ConstVertexOHalfedgeIter cvoh_iter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:640
VertexEdgeIter ve_begin(VertexHandle _vh)
vertex - edge circulator
Definition: PolyConnectivity.hh:771
Handle for a halfedge entity.
Definition: Handles.hh:132
ConstFaceVertexCCWIter cfv_ccwend(FaceHandle _fh) const
const face - vertex circulator ccw
Definition: PolyConnectivity.hh:1075
FaceFaceCWIter ff_cwend(FaceHandle _fh)
face - face circulator cw
Definition: PolyConnectivity.hh:1053
FaceFaceCCWIter ff_ccwbegin(FaceHandle _fh)
face - face circulator ccw
Definition: PolyConnectivity.hh:870
ConstVertexIHalfedgeIter cvih_end(VertexHandle _vh) const
const vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:986
ConstVertexIHalfedgeCWIter cvih_cwbegin(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:803
Iterators::GenericCirculatorT< This, This::VertexHandle, This::VertexHandle,&Iterators::GenericCirculatorBaseT< This >::toVertexHandle, false > VertexVertexCCWIter
Enumerates 1-ring vertices in a counter clockwise fashion.
Definition: PolyConnectivity.hh:123
FaceFaceIter ConstFaceFaceIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:296
ConstVertexRange vertices() const
Definition: PolyConnectivity.hh:1158
VertexVertexCWIter vv_cwiter(VertexHandle _vh)
vertex - vertex circulator cw
Definition: PolyConnectivity.hh:579
ConstFaceEdgeCWIter cfe_cwend(FaceHandle _fh) const
const face - edge circulator cw
Definition: PolyConnectivity.hh:1090
Iterators::GenericCirculatorT< This, This::VertexHandle, This::VertexHandle,&Iterators::GenericCirculatorBaseT< This >::toVertexHandle > VertexVertexCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:116
CirculatorRange< PolyConnectivity, ConstVertexVertexCWIter, VertexHandle,&PolyConnectivity::cvv_cwbegin,&PolyConnectivity::cvv_cwend > ConstVertexVertexRange
Definition: PolyConnectivity.hh:1204