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 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 CONTAINER_TYPE &container_;
1196 CENTER_ENTITY_TYPE center_;
1200 const PolyConnectivity,
1201 ConstVertexVertexIter,
1206 const PolyConnectivity,
1207 ConstVertexIHalfedgeIter,
1212 const PolyConnectivity,
1213 ConstVertexOHalfedgeIter, VertexHandle,
1217 const PolyConnectivity,
1218 ConstVertexEdgeIter,
1223 const PolyConnectivity,
1224 ConstVertexFaceIter,
1229 const PolyConnectivity,
1230 ConstFaceVertexIter,
1235 const PolyConnectivity,
1236 ConstFaceHalfedgeIter,
1241 const PolyConnectivity,
1247 const PolyConnectivity,
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_;
1580 uint next_cache_count_;
1586 #endif//OPENMESH_POLYCONNECTIVITY_HH EntityRange< const PolyConnectivity, PolyConnectivity::ConstHalfedgeIter, &PolyConnectivity::halfedges_begin, &PolyConnectivity::halfedges_end > ConstHalfedgeRange
Definition: PolyConnectivity.hh:1142
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > HalfedgeLoopCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:195
CirculatorRange< const PolyConnectivity, ConstFaceHalfedgeIter, FaceHandle, &PolyConnectivity::cfh_begin, &PolyConnectivity::cfh_end > ConstFaceHalfedgeRange
Definition: PolyConnectivity.hh:1239
VertexVertexCWIter ConstVertexVertexCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:204
ConstVertexOHalfedgeIter CVOHIter
Alias typedef.
Definition: PolyConnectivity.hh:360
bool is_boundary(HalfedgeHandle _heh) const
Is halfedge _heh a boundary halfedge (is its face handle invalid) ?
Definition: ArrayKernel.hh:365
EdgeIter ConstEdgeIter
Linear iterator.
Definition: PolyConnectivity.hh:93
VertexVertexCCWIter VVCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:333
ConstVertexFaceIter CVFIter
Alias typedef.
Definition: PolyConnectivity.hh:369
VertexFaceIter vf_iter(VertexHandle _vh)
vertex - face circulator
Definition: PolyConnectivity.hh:612
VertexIHalfedgeIter vih_end(VertexHandle _vh)
vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:940
Iterators::GenericCirculatorT< This, This::FaceHandle, This::VertexHandle, &Iterators::GenericCirculatorBaseT< This >::toVertexHandle > FaceVertexCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:230
ConstHalfedgeLoopIter chl_end(HalfedgeHandle _heh) const
const face - face circulator
Definition: PolyConnectivity.hh:1105
VertexHandle add_vertex()
Add a new vertex.
Definition: PolyConnectivity.hh:404
CirculatorRange< const PolyConnectivity, ConstVertexFaceIter, VertexHandle, &PolyConnectivity::cvf_begin, &PolyConnectivity::cvf_end > ConstVertexFaceRange
Definition: PolyConnectivity.hh:1227
ConstFaceFaceIter cff_begin(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:910
ConstVertexEdgeIter CVEIter
Alias typedef.
Definition: PolyConnectivity.hh:366
VertexEdgeCCWIter ve_ccwiter(VertexHandle _vh)
vertex - edge circulator ccw
Definition: PolyConnectivity.hh:609
VertexVertexCWIter vv_cwiter(VertexHandle _vh)
vertex - vertex circulator cw
Definition: PolyConnectivity.hh:579
ConstVertexVertexIter cvv_end(VertexHandle _vh) const
const vertex circulator
Definition: PolyConnectivity.hh:977
FaceIter ConstFaceIter
Linear iterator.
Definition: PolyConnectivity.hh:94
FaceHalfedgeIter FHIter
Alias typedef.
Definition: PolyConnectivity.hh:349
ConstVertexFaceCCWIter cvf_ccwend(VertexHandle _vh) const
const vertex - face circulator ccw
Definition: PolyConnectivity.hh:1019
ConstVertexEdgeCWIter CVECWIter
Alias typedef.
Definition: PolyConnectivity.hh:367
bool is_boundary(EdgeHandle _eh) const
Is the edge a boundary edge?
Definition: PolyConnectivity.hh:1350
ConstFaceVertexCWIter cfv_cwend(FaceHandle _fh) const
const face - vertex circulator cw
Definition: PolyConnectivity.hh:1072
HalfedgeLoopCCWIter ConstHalfedgeLoopCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:305
FaceFaceCCWIter ConstFaceFaceCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:298
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::EdgeHandle, &Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > VertexEdgeIter
Enumerates incident edges in a clockwise fashion.
Definition: PolyConnectivity.hh:178
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 fh_cwiter(FaceHandle _fh)
face - halfedge circulator cw
Definition: PolyConnectivity.hh:680
VertexVertexCCWIter vv_ccwbegin(VertexHandle _vh)
vertex - vertex circulator ccw
Definition: PolyConnectivity.hh:750
ConstVertexIHalfedgeRange vih_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1265
EntityRange< const PolyConnectivity, PolyConnectivity::ConstFaceIter, &PolyConnectivity::faces_begin, &PolyConnectivity::faces_end > ConstFaceRange
Definition: PolyConnectivity.hh:1152
ConstVertexIHalfedgeCCWIter CVIHCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:365
FaceVertexCCWIter fv_ccwbegin(FaceHandle _fh)
face - vertex circulator ccw
Definition: PolyConnectivity.hh:843
FaceIter FIter
Alias typedef.
Definition: PolyConnectivity.hh:324
VertexVertexCCWIter vv_ccwiter(VertexHandle _vh)
vertex - vertex circulator ccw
Definition: PolyConnectivity.hh:582
ConstFaceFaceCWIter cff_cwend(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:1099
VertexVertexCWIter vv_cwend(VertexHandle _vh)
vertex - vertex circulator cw
Definition: PolyConnectivity.hh:934
FaceFaceCWIter ff_cwbegin(FaceHandle _fh)
face - face circulator cw
Definition: PolyConnectivity.hh:867
static const FaceHandle InvalidFaceHandle
Invalid handle.
Definition: PolyConnectivity.hh:73
VertexEdgeIter ve_begin(VertexHandle _vh)
vertex - edge circulator
Definition: PolyConnectivity.hh:771
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
ConstVertexEdgeRange ve_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1281
ConstFaceEdgeCCWIter cfe_ccwbegin(FaceHandle _fh) const
const face - edge circulator ccw
Definition: PolyConnectivity.hh:907
VertexVertexIter vv_begin(VertexHandle _vh)
vertex - vertex circulator
Definition: PolyConnectivity.hh:744
VertexOHalfedgeCWIter voh_cwend(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:952
FaceFaceIter ff_end(FaceHandle _fh)
face - face circulator
Definition: PolyConnectivity.hh:1050
VertexFaceCCWIter ConstVertexFaceCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:214
VertexEdgeCCWIter ConstVertexEdgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:217
VertexVertexIter vv_iter(VertexHandle _vh)
vertex - vertex circulator
Definition: PolyConnectivity.hh:576
EdgeIter edges_sbegin()
Begin iterator for edges.
Definition: PolyConnectivity.hh:554
ConstFaceFaceCCWIter cff_ccwend(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:1102
FaceEdgeCWIter fe_cwbegin(FaceHandle _fh)
face - edge circulator cw
Definition: PolyConnectivity.hh:858
VertexFaceCCWIter vf_ccwbegin(VertexHandle _vh)
vertex - face circulator ccw
Definition: PolyConnectivity.hh:786
ConstFaceHalfedgeIter cfh_begin(FaceHandle _fh) const
const face - halfedge circulator
Definition: PolyConnectivity.hh:892
VertexEdgeCCWIter ve_ccwend(VertexHandle _vh)
vertex - edge circulator ccw
Definition: PolyConnectivity.hh:964
HalfedgeLoopCCWIter hl_ccwbegin(HalfedgeHandle _heh)
halfedge circulator ccw
Definition: PolyConnectivity.hh:879
VertexIHalfedgeCCWIter VIHICCWter
Alias typedef.
Definition: PolyConnectivity.hh:339
VertexOHalfedgeCCWIter voh_ccwiter(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:600
ConstVertexEdgeCWIter cve_cwend(VertexHandle _vh) const
const vertex - edge circulator cw
Definition: PolyConnectivity.hh:1007
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > FaceHalfedgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:246
ConstVertexFaceCCWIter CVFCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:371
FaceHalfedgeCWIter fh_cwbegin(FaceHandle _fh)
face - halfedge circulator cw
Definition: PolyConnectivity.hh:849
ConstHalfedgeLoopIter chl_begin(HalfedgeHandle _heh) const
const halfedge circulator
Definition: PolyConnectivity.hh:919
Handle for a edge entity.
Definition: Handles.hh:135
VertexFaceCWIter vf_cwiter(VertexHandle _vh)
vertex - face circulator cw
Definition: PolyConnectivity.hh:615
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toFaceHandle > VertexFaceIter
Enumerates incident faces in a clockwise fashion.
Definition: PolyConnectivity.hh:162
HalfedgeLoopCWIter ConstHalfedgeLoopCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:304
ConstFaceFaceIter cff_iter(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:732
FaceVertexIter fv_end(FaceHandle _fh)
face - vertex circulator
Definition: PolyConnectivity.hh:1023
ConstFaceHalfedgeIter cfh_end(FaceHandle _fh) const
const face - halfedge circulator
Definition: PolyConnectivity.hh:1078
VertexOHalfedgeCCWIter VOHCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:336
VertexFaceCWIter vf_cwend(VertexHandle _vh)
vertex - face circulator cw
Definition: PolyConnectivity.hh:970
ConstFaceVertexIter cfv_iter(FaceHandle _fh) const
const face - vertex circulator
Definition: PolyConnectivity.hh:705
VertexFaceIter VFIter
Alias typedef.
Definition: PolyConnectivity.hh:343
ConstHalfedgeLoopCCWIter chl_ccwbegin(HalfedgeHandle _heh) const
const halfedge circulator ccw
Definition: PolyConnectivity.hh:925
VertexIHalfedgeCWIter vih_cwiter(VertexHandle _vh)
vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:588
ConstVertexVertexCCWIter cvv_ccwbegin(VertexHandle _vh) const
const vertex circulator ccw
Definition: PolyConnectivity.hh:797
VertexEdgeCWIter VECWIter
Alias typedef.
Definition: PolyConnectivity.hh:341
ConstVertexFaceIter cvf_end(VertexHandle _vh) const
const vertex - face circulator
Definition: PolyConnectivity.hh:1013
VertexOHalfedgeCCWIter ConstVertexOHalfedgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:208
ConstVertexEdgeIter cve_iter(VertexHandle _vh) const
const vertex - edge circulator
Definition: PolyConnectivity.hh:649
EntityRange< const PolyConnectivity, PolyConnectivity::ConstVertexIter, &PolyConnectivity::vertices_begin, &PolyConnectivity::vertices_end > ConstVertexRange
Definition: PolyConnectivity.hh:1137
const Edge & deref(EdgeHandle _h) const
Get item from handle.
Definition: PolyConnectivity.hh:1557
Iterators::GenericCirculatorT< This, This::FaceHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toOppositeFaceHandle > FaceFaceCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:278
ConstFaceEdgeCWIter CFECWIter
Alias typedef.
Definition: PolyConnectivity.hh:379
FaceHandle opposite_face_handle(HalfedgeHandle _heh) const
returns the face handle of the opposite halfedge
Definition: PolyConnectivity.hh:1401
ConstFaceHalfedgeIter cfh_iter(FaceHandle _fh) const
const face - halfedge circulator
Definition: PolyConnectivity.hh:714
ConstVertexIter vertices_sbegin() const
Const begin iterator for vertices.
Definition: PolyConnectivity.hh:543
FaceHalfedgeIter ConstFaceHalfedgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:290
VertexIter vertices_sbegin()
Begin iterator for vertices.
Definition: PolyConnectivity.hh:540
void assign_connectivity(const PolyConnectivity &_other)
assign_connectivity() method.
Definition: PolyConnectivity.hh:396
FaceEdgeCWIter ConstFaceEdgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:294
VertexOHalfedgeCWIter VOHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:335
ConstVertexOHalfedgeCWIter cvoh_cwiter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:643
ConstVertexVertexCWIter cvv_cwend(VertexHandle _vh) const
const vertex circulator cw
Definition: PolyConnectivity.hh:980
VertexIHalfedgeIter VIHIter
Alias typedef.
Definition: PolyConnectivity.hh:337
VertexOHalfedgeIter VOHIter
Alias typedef.
Definition: PolyConnectivity.hh:334
CirculatorRange< const PolyConnectivity, ConstVertexIHalfedgeIter, VertexHandle, &PolyConnectivity::cvih_begin, &PolyConnectivity::cvih_end > ConstVertexIHalfedgeRange
Definition: PolyConnectivity.hh:1210
VertexFaceIter vf_end(VertexHandle _vh)
vertex - face circulator
Definition: PolyConnectivity.hh:967
EdgeIter edges_end()
End iterator for edges.
Definition: PolyConnectivity.cc:684
ConstFaceEdgeIter cfe_begin(FaceHandle _fh) const
const face - edge circulator
Definition: PolyConnectivity.hh:901
VertexIHalfedgeIter vih_iter(VertexHandle _vh)
vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:585
VertexOHalfedgeCWIter ConstVertexOHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:207
ConstVertexOHalfedgeRange voh_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1273
CirculatorRange< const PolyConnectivity, ConstFaceFaceIter, FaceHandle, &PolyConnectivity::cff_begin, &PolyConnectivity::cff_end > ConstFaceFaceRange
Definition: PolyConnectivity.hh:1251
ConstFaceHalfedgeCCWIter cfh_ccwiter(FaceHandle _fh) const
const face - halfedge circulator ccw
Definition: PolyConnectivity.hh:720
ConstVertexEdgeIter cve_end(VertexHandle _vh) const
const vertex - edge circulator
Definition: PolyConnectivity.hh:1004
ConstVertexEdgeIter cve_begin(VertexHandle _vh) const
const vertex - edge circulator
Definition: PolyConnectivity.hh:818
ConstVertexIHalfedgeCWIter cvih_cwend(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:989
FaceVertexCWIter fv_cwiter(FaceHandle _fh)
face - vertex circulator cw
Definition: PolyConnectivity.hh:671
ConstVertexEdgeCCWIter CVECCWIter
Alias typedef.
Definition: PolyConnectivity.hh:368
VertexOHalfedgeIter voh_end(VertexHandle _vh)
vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:949
ConstEdgeIter CEIter
Alias typedef.
Definition: PolyConnectivity.hh:328
FaceFaceIter ConstFaceFaceIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:296
ConstFaceEdgeCCWIter cfe_ccwiter(FaceHandle _fh) const
const face - edge circulator ccw
Definition: PolyConnectivity.hh:729
VertexIter vertices_begin()
Begin iterator for vertices.
Definition: PolyConnectivity.cc:624
Iterators::GenericCirculatorT< This, This::VertexHandle, This::VertexHandle, &Iterators::GenericCirculatorBaseT< This >::toVertexHandle > VertexVertexCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:116
static const HalfedgeHandle InvalidHalfedgeHandle
Invalid handle.
Definition: PolyConnectivity.hh:69
ConstVertexEdgeCWIter cve_cwbegin(VertexHandle _vh) const
const vertex - edge circulator cw
Definition: PolyConnectivity.hh:821
ConstFaceIter CFIter
Alias typedef.
Definition: PolyConnectivity.hh:329
HalfedgeLoopIter hl_end(HalfedgeHandle _heh)
face - face circulator
Definition: PolyConnectivity.hh:1059
ConstVertexOHalfedgeCCWIter cvoh_ccwiter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:646
ConstVertexEdgeCCWIter cve_ccwbegin(VertexHandle _vh) const
const vertex - edge circulator ccw
Definition: PolyConnectivity.hh:824
Iterators::GenericCirculatorT< This, This::FaceHandle, This::EdgeHandle, &Iterators::GenericCirculatorBaseT< This >::toEdgeHandle, false > FaceEdgeCWIter
Enumerate incident edges in a clockwise fashion.
Definition: PolyConnectivity.hh:269
VertexIter vertices_end()
End iterator for vertices.
Definition: PolyConnectivity.cc:636
ConstFaceHalfedgeCCWIter cfh_ccwbegin(FaceHandle _fh) const
const face - halfedge circulator ccw
Definition: PolyConnectivity.hh:898
Definition: IteratorsT.hh:89
ConstFaceEdgeCWIter cfe_cwiter(FaceHandle _fh) const
const face - edge circulator cw
Definition: PolyConnectivity.hh:726
Face & deref(FaceHandle _h)
Get item from handle.
Definition: PolyConnectivity.hh:1560
static const EdgeHandle InvalidEdgeHandle
Invalid handle.
Definition: PolyConnectivity.hh:71
ConstVertexVertexIter cvv_begin(VertexHandle _vh) const
const vertex circulator
Definition: PolyConnectivity.hh:791
ConstVertexFaceCWIter cvf_cwend(VertexHandle _vh) const
const vertex - face circulator cw
Definition: PolyConnectivity.hh:1016
ConstFaceVertexCWIter cfv_cwiter(FaceHandle _fh) const
const face - vertex circulator cw
Definition: PolyConnectivity.hh:708
FaceFaceCCWIter ff_ccwend(FaceHandle _fh)
face - face circulator ccw
Definition: PolyConnectivity.hh:1056
CirculatorRange< const PolyConnectivity, ConstFaceEdgeIter, FaceHandle, &PolyConnectivity::cfe_begin, &PolyConnectivity::cfe_end > ConstFaceEdgeRange
Definition: PolyConnectivity.hh:1245
ConstVertexOHalfedgeIter cvoh_end(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:995
ConstVertexIHalfedgeCCWIter cvih_ccwiter(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:637
VertexEdgeCWIter ve_cwiter(VertexHandle _vh)
vertex - edge circulator cw
Definition: PolyConnectivity.hh:606
ConstVertexIHalfedgeIter CVIHIter
Alias typedef.
Definition: PolyConnectivity.hh:363
FaceEdgeCCWIter ConstFaceEdgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:295
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:672
FaceVertexIter FVIter
Alias typedef.
Definition: PolyConnectivity.hh:346
VertexOHalfedgeCWIter voh_cwbegin(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:765
FaceVertexCWIter ConstFaceVertexCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:288
EdgeHandle EHandle
Alias typedef.
Definition: PolyConnectivity.hh:318
VertexEdgeCCWIter VECCWIter
Alias typedef.
Definition: PolyConnectivity.hh:342
FaceHalfedgeIter fh_iter(FaceHandle _fh)
face - halfedge circulator
Definition: PolyConnectivity.hh:677
HalfedgeLoopIter ConstHalfedgeLoopIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:303
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > HalfedgeLoopIter
Identical to FaceHalfedgeIter.
Definition: PolyConnectivity.hh:193
VertexFaceIter vf_begin(VertexHandle _vh)
vertex - face circulator
Definition: PolyConnectivity.hh:780
FaceHalfedgeCWIter fh_cwend(FaceHandle _fh)
face - halfedge circulator cw
Definition: PolyConnectivity.hh:1035
ConstFaceEdgeCWIter cfe_cwbegin(FaceHandle _fh) const
const face - edge circulator cw
Definition: PolyConnectivity.hh:904
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
FaceHalfedgeCWIter ConstFaceHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:291
ConstVertexOHalfedgeIter cvoh_begin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:809
ConstFaceVertexIter cfv_end(FaceHandle _fh) const
const face - vertex circulator
Definition: PolyConnectivity.hh:1069
EdgeIter EIter
Alias typedef.
Definition: PolyConnectivity.hh:323
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
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
ConstFaceVertexCCWIter CFVCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:374
FaceVertexIter ConstFaceVertexIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:287
ConstVertexIter CVIter
Alias typedef.
Definition: PolyConnectivity.hh:326
ConstFaceHalfedgeCWIter cfh_cwbegin(FaceHandle _fh) const
const face - halfedge circulator cw
Definition: PolyConnectivity.hh:895
HalfedgeHandle HHandle
Alias typedef.
Definition: PolyConnectivity.hh:317
ConstFaceRange faces() const
Definition: PolyConnectivity.hh:1176
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toOppositeHalfedgeHandle > VertexIHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:148
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
CirculatorRange< const PolyConnectivity, ConstVertexEdgeIter, VertexHandle, &PolyConnectivity::cve_begin, &PolyConnectivity::cve_end > ConstVertexEdgeRange
Definition: PolyConnectivity.hh:1221
HalfedgeLoopIter hl_begin(HalfedgeHandle _heh)
halfedge circulator
Definition: PolyConnectivity.hh:873
FaceIter faces_begin()
Begin iterator for faces.
Definition: PolyConnectivity.cc:696
Handle for a halfedge entity.
Definition: Handles.hh:128
FaceEdgeCWIter fe_cwend(FaceHandle _fh)
face - edge circulator cw
Definition: PolyConnectivity.hh:1044
Definition: CirculatorsT.hh:428
VertexIHalfedgeCCWIter vih_ccwiter(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:591
VertexEdgeCWIter ConstVertexEdgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:216
ConstHalfedgeLoopCWIter chl_cwend(HalfedgeHandle _heh) const
const face - face circulator cw
Definition: PolyConnectivity.hh:1108
FaceVertexCCWIter ConstFaceVertexCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:289
const Face & deref(FaceHandle _h) const
Get item from handle.
Definition: PolyConnectivity.hh:1559
VertexFaceCWIter vf_cwbegin(VertexHandle _vh)
vertex - face circulator cw
Definition: PolyConnectivity.hh:783
ConstHalfedgeRange halfedges() const
Definition: PolyConnectivity.hh:1164
ConstVertexFaceCCWIter cvf_ccwbegin(VertexHandle _vh) const
const vertex - face circulator ccw
Definition: PolyConnectivity.hh:833
Generic class for vertex/halfedge/edge/face ranges.
Definition: PolyConnectivity.hh:1124
ConstVertexIHalfedgeIter cvih_iter(VertexHandle _vh) const
const vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:631
ConstFaceVertexIter CFVIter
Alias typedef.
Definition: PolyConnectivity.hh:372
FaceFaceCWIter ConstFaceFaceCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:297
VertexOHalfedgeIter ConstVertexOHalfedgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:206
bool is_valid() const
The handle is valid iff the index is not equal to -1.
Definition: Handles.hh:77
ConstVertexOHalfedgeCWIter CVOHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:361
Vertex & deref(VertexHandle _h)
Get item from handle.
Definition: PolyConnectivity.hh:1554
FaceEdgeCCWIter fe_ccwiter(FaceHandle _fh)
face - edge circulator ccw
Definition: PolyConnectivity.hh:692
ConstVertexIHalfedgeCWIter cvih_cwbegin(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:803
ConstEdgeIter edges_sbegin() const
Const begin iterator for edges.
Definition: PolyConnectivity.hh:557
VertexIHalfedgeCWIter vih_cwend(VertexHandle _vh)
vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:943
FaceFaceCCWIter ff_ccwbegin(FaceHandle _fh)
face - face circulator ccw
Definition: PolyConnectivity.hh:870
Iterators::GenericCirculatorT< This, This::VertexHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toFaceHandle > VertexFaceCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:164
ConstVertexFaceCWIter cvf_cwbegin(VertexHandle _vh) const
const vertex - face circulator cw
Definition: PolyConnectivity.hh:830
VertexVertexIter vv_end(VertexHandle _vh)
vertex - vertex circulator
Definition: PolyConnectivity.hh:931
VertexEdgeIter ve_iter(VertexHandle _vh)
vertex - edge circulator
Definition: PolyConnectivity.hh:603
ConstFaceFaceCCWIter cff_ccwiter(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:738
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
Iterators::GenericIteratorT< This, This::EdgeHandle, ArrayKernel, &This::has_edge_status, &This::n_edges > EdgeIter
Linear iterator.
Definition: PolyConnectivity.hh:88
ConstVertexFaceRange vf_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1289
FaceHalfedgeIter fh_end(FaceHandle _fh)
face - halfedge circulator
Definition: PolyConnectivity.hh:1032
FaceFaceCCWIter ff_ccwiter(FaceHandle _fh)
face - face circulator ccw
Definition: PolyConnectivity.hh:701
FaceIter faces_sbegin()
Begin iterator for faces.
Definition: PolyConnectivity.hh:561
ConstVertexVertexIter cvv_iter(VertexHandle _vh) const
const vertex circulator
Definition: PolyConnectivity.hh:622
ConstVertexIHalfedgeIter cvih_end(VertexHandle _vh) const
const vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:986
FaceEdgeIter FEIter
Alias typedef.
Definition: PolyConnectivity.hh:352
FaceHalfedgeIter fh_begin(FaceHandle _fh)
face - halfedge circulator
Definition: PolyConnectivity.hh:846
VertexFaceCCWIter vf_ccwend(VertexHandle _vh)
vertex - face circulator ccw
Definition: PolyConnectivity.hh:973
ConstVertexVertexCWIter CVVCWIter
Alias typedef.
Definition: PolyConnectivity.hh:358
FaceFaceIter FFIter
Alias typedef.
Definition: PolyConnectivity.hh:355
ConstVertexIHalfedgeCWIter cvih_cwiter(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:634
VertexVertexCCWIter vv_ccwend(VertexHandle _vh)
vertex - vertex circulator ccw
Definition: PolyConnectivity.hh:937
ConstFaceFaceCCWIter CFFCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:383
FaceVertexCCWIter fv_ccwiter(FaceHandle _fh)
face - vertex circulator ccw
Definition: PolyConnectivity.hh:674
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
FaceHalfedgeCWIter FHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:350
ConstVertexVertexCCWIter cvv_ccwiter(VertexHandle _vh) const
const vertex circulator ccw
Definition: PolyConnectivity.hh:628
Handle for a face entity.
Definition: Handles.hh:142
ConstHalfedgeIter CHIter
Alias typedef.
Definition: PolyConnectivity.hh:327
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
ConstVertexVertexCWIter cvv_cwiter(VertexHandle _vh) const
const vertex circulator cw
Definition: PolyConnectivity.hh:625
HalfedgeIter halfedges_begin()
Begin iterator for halfedges.
Definition: PolyConnectivity.cc:648
FaceEdgeCWIter FECWIter
Alias typedef.
Definition: PolyConnectivity.hh:353
FaceEdgeCCWIter fe_ccwbegin(FaceHandle _fh)
face - edge circulator ccw
Definition: PolyConnectivity.hh:861
Handle for a vertex entity.
Definition: Handles.hh:121
ConstFaceEdgeCCWIter cfe_ccwend(FaceHandle _fh) const
const face - edge circulator ccw
Definition: PolyConnectivity.hh:1093
ConstVertexFaceIter cvf_iter(VertexHandle _vh) const
const vertex - face circulator
Definition: PolyConnectivity.hh:658
ConstFaceFaceCWIter cff_cwbegin(FaceHandle _fh) const
const face - face circulator cw
Definition: PolyConnectivity.hh:913
VertexIHalfedgeCWIter VIHICWter
Alias typedef.
Definition: PolyConnectivity.hh:338
CirculatorRange< const PolyConnectivity, ConstVertexOHalfedgeIter, VertexHandle, &PolyConnectivity::cvoh_begin, &PolyConnectivity::cvoh_end > ConstVertexOHalfedgeRange
Definition: PolyConnectivity.hh:1215
FaceVertexCWIter FVCWIter
Alias typedef.
Definition: PolyConnectivity.hh:347
VertexIHalfedgeCCWIter vih_ccwend(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:946
ConstEdgeRange edges() const
Definition: PolyConnectivity.hh:1170
VertexIHalfedgeIter vih_begin(VertexHandle _vh)
vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:753
void assign_connectivity(const ArrayKernel &_other)
ArrayKernel uses the default copy constructor and assignment operator, which means that the connectiv...
Definition: ArrayKernel.cc:76
ConstVertexOHalfedgeCCWIter cvoh_ccwend(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:1001
VertexOHalfedgeCCWIter voh_ccwbegin(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:768
Halfedge & deref(HalfedgeHandle _h)
Get item from handle.
Definition: PolyConnectivity.hh:1556
Definition: CirculatorsT.hh:258
FaceEdgeCCWIter fe_ccwend(FaceHandle _fh)
face - edge circulator ccw
Definition: PolyConnectivity.hh:1047
bool is_boundary(HalfedgeHandle _heh) const
Check if the halfedge is at the boundary.
Definition: PolyConnectivity.hh:1339
ConstHalfedgeIter halfedges_sbegin() const
Const begin iterator for halfedges.
Definition: PolyConnectivity.hh:550
VertexEdgeCWIter ve_cwend(VertexHandle _vh)
vertex - edge circulator cw
Definition: PolyConnectivity.hh:961
VertexFaceCCWIter VFCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:345
ConstVertexRange vertices() const
Definition: PolyConnectivity.hh:1158
ConstFaceHalfedgeCWIter CFHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:376
ConstHalfedgeLoopCWIter chl_cwbegin(HalfedgeHandle _heh) const
const halfedge circulator cw
Definition: PolyConnectivity.hh:922
ConstVertexOHalfedgeIter cvoh_iter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:640
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
ConstVertexVertexCCWIter cvv_ccwend(VertexHandle _vh) const
const vertex circulator ccw
Definition: PolyConnectivity.hh:983
ConstVertexIHalfedgeCCWIter cvih_ccwbegin(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:806
ConstFaceFaceIter CFFIter
Alias typedef.
Definition: PolyConnectivity.hh:381
ConstFaceVertexRange fv_range(FaceHandle _fh) const
Definition: PolyConnectivity.hh:1297
Edge & deref(EdgeHandle _h)
Get item from handle.
Definition: PolyConnectivity.hh:1558
ConstVertexEdgeCWIter cve_cwiter(VertexHandle _vh) const
const vertex - edge circulator cw
Definition: PolyConnectivity.hh:652
HalfedgeLoopCWIter hl_cwbegin(HalfedgeHandle _heh)
halfedge circulator
Definition: PolyConnectivity.hh:876
ConstFaceFaceCCWIter cff_ccwbegin(FaceHandle _fh) const
const face - face circulator ccw
Definition: PolyConnectivity.hh:916
ConstFaceFaceIter cff_end(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:1096
ConstVertexIHalfedgeCCWIter cvih_ccwend(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:992
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
ConstVertexFaceCWIter cvf_cwiter(VertexHandle _vh) const
const vertex - face circulator cw
Definition: PolyConnectivity.hh:661
FaceVertexIter fv_iter(FaceHandle _fh)
face - vertex circulator
Definition: PolyConnectivity.hh:668
HalfedgeLoopCCWIter hl_ccwend(HalfedgeHandle _heh)
face - face circulator ccw
Definition: PolyConnectivity.hh:1065
ConstVertexFaceIter cvf_begin(VertexHandle _vh) const
const vertex - face circulator
Definition: PolyConnectivity.hh:827
VertexEdgeCCWIter ve_ccwbegin(VertexHandle _vh)
vertex - edge circulator ccw
Definition: PolyConnectivity.hh:777
VertexEdgeCWIter ve_cwbegin(VertexHandle _vh)
vertex - edge circulator cw
Definition: PolyConnectivity.hh:774
Iterators::GenericIteratorT< This, This::FaceHandle, ArrayKernel, &This::has_face_status, &This::n_faces > FaceIter
Linear iterator.
Definition: PolyConnectivity.hh:89
CirculatorRange< const PolyConnectivity, ConstFaceVertexIter, FaceHandle, &PolyConnectivity::cfv_begin, &PolyConnectivity::cfv_end > ConstFaceVertexRange
Definition: PolyConnectivity.hh:1233
HalfedgeIter halfedges_end()
End iterator for halfedges.
Definition: PolyConnectivity.cc:660
VertexOHalfedgeIter voh_begin(VertexHandle _vh)
vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:762
FaceFaceCWIter ff_cwend(FaceHandle _fh)
face - face circulator cw
Definition: PolyConnectivity.hh:1053
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
Iterators::GenericCirculatorT< This, This::FaceHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toOppositeFaceHandle, false > FaceFaceCWIter
Enumerate adjacent faces in a clockwise fashion.
Definition: PolyConnectivity.hh:285
Iterators::GenericCirculatorT< This, This::FaceHandle, This::VertexHandle, &Iterators::GenericCirculatorBaseT< This >::toVertexHandle, false > FaceVertexCWIter
Enumerate incident vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:237
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle, false > HalfedgeLoopCCWIter
Identical to FaceHalfedgeIter.
Definition: PolyConnectivity.hh:201
Iterators::GenericCirculatorT< This, This::VertexHandle, This::EdgeHandle, &Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > VertexEdgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:180
ConstFaceHalfedgeCWIter cfh_cwend(FaceHandle _fh) const
const face - halfedge circulator cw
Definition: PolyConnectivity.hh:1081
VertexOHalfedgeIter voh_iter(VertexHandle _vh)
vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:594
VertexFaceCWIter VFCWIter
Alias typedef.
Definition: PolyConnectivity.hh:344
VertexFaceCCWIter vf_ccwiter(VertexHandle _vh)
vertex - face circulator ccw
Definition: PolyConnectivity.hh:618
FaceEdgeIter fe_end(FaceHandle _fh)
face - edge circulator
Definition: PolyConnectivity.hh:1041
FaceHalfedgeCCWIter ConstFaceHalfedgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:292
FaceHalfedgeCCWIter fh_ccwiter(FaceHandle _fh)
face - halfedge circulator ccw
Definition: PolyConnectivity.hh:683
ConstFaceEdgeIter cfe_iter(FaceHandle _fh) const
const face - edge circulator
Definition: PolyConnectivity.hh:723
FaceHalfedgeCCWIter fh_ccwbegin(FaceHandle _fh)
face - halfedge circulator ccw
Definition: PolyConnectivity.hh:852
ConstFaceVertexCWIter cfv_cwbegin(FaceHandle _fh) const
const face - vertex circulator cw
Definition: PolyConnectivity.hh:886
FaceVertexCCWIter FVCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:348
VertexIHalfedgeIter ConstVertexIHalfedgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:209
FaceHalfedgeCCWIter fh_ccwend(FaceHandle _fh)
face - halfedge circulator ccw
Definition: PolyConnectivity.hh:1038
Connectivity Class for polygonal meshes.
Definition: PolyConnectivity.hh:61
ConstVertexVertexCCWIter CVVCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:359
Definition: CirculatorsT.hh:196
ConstVertexEdgeCCWIter cve_ccwend(VertexHandle _vh) const
const vertex - edge circulator ccw
Definition: PolyConnectivity.hh:1010
VertexEdgeIter ve_end(VertexHandle _vh)
vertex - edge circulator
Definition: PolyConnectivity.hh:958
ConstFaceVertexCCWIter cfv_ccwbegin(FaceHandle _fh) const
const face - vertex circulator ccw
Definition: PolyConnectivity.hh:889
FaceVertexIter fv_begin(FaceHandle _fh)
face - vertex circulator
Definition: PolyConnectivity.hh:837
FaceEdgeCWIter fe_cwiter(FaceHandle _fh)
face - edge circulator cw
Definition: PolyConnectivity.hh:689
Iterators::GenericIteratorT< This, This::HalfedgeHandle, ArrayKernel, &This::has_halfedge_status, &This::n_halfedges > HalfedgeIter
Linear iterator.
Definition: PolyConnectivity.hh:87
ConstVertexVertexIter CVVIter
Alias typedef.
Definition: PolyConnectivity.hh:357
FaceFaceIter ff_iter(FaceHandle _fh)
face - face circulator
Definition: PolyConnectivity.hh:695
ConstFaceVertexCWIter CFVCWIter
Alias typedef.
Definition: PolyConnectivity.hh:373
ConstVertexOHalfedgeCWIter cvoh_cwend(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:998
ConstFaceVertexCCWIter cfv_ccwend(FaceHandle _fh) const
const face - vertex circulator ccw
Definition: PolyConnectivity.hh:1075
HalfedgeLoopCWIter hl_cwend(HalfedgeHandle _heh)
face - face circulator cw
Definition: PolyConnectivity.hh:1062
VertexOHalfedgeCCWIter voh_ccwend(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:955
ConstVertexOHalfedgeCWIter cvoh_cwbegin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:812
VertexIHalfedgeCCWIter ConstVertexIHalfedgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:211
VertexIHalfedgeCCWIter vih_ccwbegin(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:759
Mesh kernel using arrays for mesh item storage.
Definition: ArrayKernel.hh:92
ConstFaceEdgeIter cfe_end(FaceHandle _fh) const
const face - edge circulator
Definition: PolyConnectivity.hh:1087
HalfedgeIter HIter
Alias typedef.
Definition: PolyConnectivity.hh:322
ConstVertexIHalfedgeIter cvih_begin(VertexHandle _vh) const
const vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:800
ConstFaceFaceRange ff_range(FaceHandle _fh) const
Definition: PolyConnectivity.hh:1321
ConstFaceFaceCWIter cff_cwiter(FaceHandle _fh) const
const face - face circulator cw
Definition: PolyConnectivity.hh:735
FaceIter faces_end()
End iterator for faces.
Definition: PolyConnectivity.cc:708
ConstVertexEdgeCCWIter cve_ccwiter(VertexHandle _vh) const
const vertex - edge circulator ccw
Definition: PolyConnectivity.hh:655
ConstVertexVertexRange vv_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1257
ConstFaceHalfedgeCCWIter CFHCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:377
ConstVertexIHalfedgeCWIter CVIHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:364
VertexIter ConstVertexIter
Linear iterator.
Definition: PolyConnectivity.hh:91
FaceEdgeIter ConstFaceEdgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:293
FaceHandle FHandle
Alias typedef.
Definition: PolyConnectivity.hh:319
FaceFaceIter ff_begin(FaceHandle _fh)
face - face circulator
Definition: PolyConnectivity.hh:864
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > VertexOHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:132
VertexFaceCWIter ConstVertexFaceCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:213
VertexVertexCCWIter ConstVertexVertexCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:205
EntityRange< const PolyConnectivity, PolyConnectivity::ConstEdgeIter, &PolyConnectivity::edges_begin, &PolyConnectivity::edges_end > ConstEdgeRange
Definition: PolyConnectivity.hh:1147
ConstVertexFaceCCWIter cvf_ccwiter(VertexHandle _vh) const
const vertex - face circulator ccw
Definition: PolyConnectivity.hh:664
FaceVertexCCWIter fv_ccwend(FaceHandle _fh)
face - vertex circulator ccw
Definition: PolyConnectivity.hh:1029
Generic class for iterator ranges.
Definition: PolyConnectivity.hh:1185
CirculatorRange< const PolyConnectivity, ConstVertexVertexIter, VertexHandle, &PolyConnectivity::cvv_begin, &PolyConnectivity::cvv_end > ConstVertexVertexRange
Definition: PolyConnectivity.hh:1204
ConstHalfedgeLoopCCWIter chl_ccwend(HalfedgeHandle _heh) const
const face - face circulator ccw
Definition: PolyConnectivity.hh:1111
ConstFaceEdgeCCWIter CFECCWIter
Alias typedef.
Definition: PolyConnectivity.hh:380
VertexVertexCWIter VVCWIter
Alias typedef.
Definition: PolyConnectivity.hh:332
VertexOHalfedgeCWIter voh_cwiter(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:597
const Halfedge & deref(HalfedgeHandle _h) const
Get item from handle.
Definition: PolyConnectivity.hh:1555
ConstVertexVertexCWIter cvv_cwbegin(VertexHandle _vh) const
const vertex circulator cw
Definition: PolyConnectivity.hh:794
ConstFaceVertexIter cfv_begin(FaceHandle _fh) const
const face - vertex circulator
Definition: PolyConnectivity.hh:883
ConstVertexFaceCWIter CVFCWIter
Alias typedef.
Definition: PolyConnectivity.hh:370
FaceEdgeIter fe_iter(FaceHandle _fh)
face - edge circulator
Definition: PolyConnectivity.hh:686
ConstFaceFaceCWIter CFFCWIter
Alias typedef.
Definition: PolyConnectivity.hh:382
VertexFaceIter ConstVertexFaceIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:212
VertexIHalfedgeCWIter vih_cwbegin(VertexHandle _vh)
vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:756
bool is_boundary(VertexHandle _vh) const
Is vertex _vh a boundary vertex ?
Definition: PolyConnectivity.hh:1367
Iterators::GenericCirculatorT< This, This::FaceHandle, This::EdgeHandle, &Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > FaceEdgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:262
ConstVertexOHalfedgeCCWIter cvoh_ccwbegin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:815
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
ConstFaceHalfedgeCCWIter cfh_ccwend(FaceHandle _fh) const
const face - halfedge circulator ccw
Definition: PolyConnectivity.hh:1084
ConstFaceHalfedgeIter CFHIter
Alias typedef.
Definition: PolyConnectivity.hh:375
VertexVertexCWIter vv_cwbegin(VertexHandle _vh)
vertex - vertex circulator cw
Definition: PolyConnectivity.hh:747
FaceEdgeIter fe_begin(FaceHandle _fh)
face - edge circulator
Definition: PolyConnectivity.hh:855
VertexVertexIter VVIter
Alias typedef.
Definition: PolyConnectivity.hh:331
ConstFaceVertexCCWIter cfv_ccwiter(FaceHandle _fh) const
const face - vertex circulator ccw
Definition: PolyConnectivity.hh:711
HalfedgeIter ConstHalfedgeIter
Linear iterator.
Definition: PolyConnectivity.hh:92
VertexIter VIter
Alias typedef.
Definition: PolyConnectivity.hh:321
VertexVertexIter ConstVertexVertexIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:203
FaceHalfedgeCCWIter FHCWWIter
Alias typedef.
Definition: PolyConnectivity.hh:351
ConstFaceIter faces_sbegin() const
Const begin iterator for faces.
Definition: PolyConnectivity.hh:564
FaceFaceCWIter ff_cwiter(FaceHandle _fh)
face - face circulator cw
Definition: PolyConnectivity.hh:698
FaceVertexCWIter fv_cwbegin(FaceHandle _fh)
face - vertex circulator cw
Definition: PolyConnectivity.hh:840
ConstFaceEdgeCWIter cfe_cwend(FaceHandle _fh) const
const face - edge circulator cw
Definition: PolyConnectivity.hh:1090
ConstFaceEdgeRange fe_range(FaceHandle _fh) const
Definition: PolyConnectivity.hh:1313
FaceEdgeCCWIter FECWWIter
Alias typedef.
Definition: PolyConnectivity.hh:354
ConstVertexOHalfedgeCCWIter CVOHCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:362
ConstFaceHalfedgeCWIter cfh_cwiter(FaceHandle _fh) const
const face - halfedge circulator cw
Definition: PolyConnectivity.hh:717
FaceVertexCWIter fv_cwend(FaceHandle _fh)
face - vertex circulator cw
Definition: PolyConnectivity.hh:1026
VertexEdgeIter VEIter
Alias typedef.
Definition: PolyConnectivity.hh:340
VertexEdgeIter ConstVertexEdgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:215
ConstFaceEdgeIter CFEIter
Alias typedef.
Definition: PolyConnectivity.hh:378
VertexIHalfedgeCWIter ConstVertexIHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:210
HalfedgeIter halfedges_sbegin()
Begin iterator for halfedges.
Definition: PolyConnectivity.hh:547
ConstFaceHalfedgeRange fh_range(FaceHandle _fh) const
Definition: PolyConnectivity.hh:1305