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); }
1578 std::vector<AddFaceEdgeInfo> edgeData_;
1579 std::vector<std::pair<HalfedgeHandle, HalfedgeHandle> > next_cache_;
1585 #endif//OPENMESH_POLYCONNECTIVITY_HH
ConstFaceVertexCWIter cfv_cwbegin(FaceHandle _fh) const
const face - vertex circulator cw
ConstFaceHalfedgeCWIter cfh_cwiter(FaceHandle _fh) const
const face - halfedge circulator cw
ConstVertexVertexIter cvv_iter(VertexHandle _vh) const
const vertex circulator
FaceHalfedgeCCWIter fh_ccwbegin(FaceHandle _fh)
face - halfedge circulator ccw
ConstVertexEdgeIter cve_begin(VertexHandle _vh) const
const vertex - edge circulator
ConstVertexVertexIter cvv_begin(VertexHandle _vh) const
const vertex circulator
VertexEdgeCWIter ve_cwbegin(VertexHandle _vh)
vertex - edge circulator cw
Iterators::GenericCirculatorT< This, This::VertexHandle, This::VertexHandle,&Iterators::GenericCirculatorBaseT< This >::toVertexHandle > VertexVertexCWIter
ConstVertexIHalfedgeIter cvih_iter(VertexHandle _vh) const
const vertex - incoming halfedge circulator
VertexOHalfedgeCWIter VOHCWIter
Alias typedef.
ConstFaceFaceCWIter cff_cwiter(FaceHandle _fh) const
const face - face circulator cw
HalfedgeLoopIter hl_end(HalfedgeHandle _heh)
face - face circulator
VertexVertexCWIter vv_cwiter(VertexHandle _vh)
vertex - vertex circulator cw
VertexOHalfedgeCWIter ConstVertexOHalfedgeCWIter
VertexFaceIter ConstVertexFaceIter
void assign_connectivity(const ArrayKernel &_other)
ConstVertexIHalfedgeIter CVIHIter
Alias typedef.
VertexEdgeCWIter ve_cwiter(VertexHandle _vh)
vertex - edge circulator cw
VertexVertexCWIter vv_cwbegin(VertexHandle _vh)
vertex - vertex circulator cw
ConstVertexIHalfedgeCCWIter CVIHCCWIter
Alias typedef.
ConstFaceHalfedgeIter CFHIter
Alias typedef.
FaceVertexCCWIter FVCCWIter
Alias typedef.
ConstFaceVertexIter cfv_end(FaceHandle _fh) const
const face - vertex circulator
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::VertexHandle,&Iterators::GenericCirculatorBaseT< This >::toVertexHandle > FaceVertexIter
ConstVertexEdgeCCWIter cve_ccwbegin(VertexHandle _vh) const
const vertex - edge circulator ccw
ConstVertexVertexCWIter cvv_cwend(VertexHandle _vh) const
const vertex circulator cw
HalfedgeIter halfedges_end()
End iterator for halfedges.
VertexIHalfedgeIter vih_end(VertexHandle _vh)
vertex - incoming halfedge circulator
FaceHalfedgeIter fh_begin(FaceHandle _fh)
face - halfedge circulator
FaceFaceCWIter ConstFaceFaceCWIter
FaceFaceCCWIter ff_ccwend(FaceHandle _fh)
face - face circulator ccw
ConstFaceFaceIter cff_end(FaceHandle _fh) const
const face - face circulator
ConstFaceFaceIter cff_iter(FaceHandle _fh) const
const face - face circulator
Iterators::GenericCirculatorT< This, This::VertexHandle, This::VertexHandle,&Iterators::GenericCirculatorBaseT< This >::toVertexHandle, false > VertexVertexCCWIter
FaceHalfedgeCCWIter fh_ccwiter(FaceHandle _fh)
face - halfedge circulator ccw
ConstVertexIHalfedgeRange vih_range(VertexHandle _vh) const
const Face & deref(FaceHandle _h) const
Get item from handle.
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > FaceHalfedgeCCWIter
FaceHalfedgeIter ConstFaceHalfedgeIter
VertexIHalfedgeCWIter vih_cwend(VertexHandle _vh)
vertex - incoming halfedge circulator cw
Iterators::GenericIteratorT< This, This::EdgeHandle, ArrayKernel,&ArrayKernel::has_edge_status,&ArrayKernel::n_edges > EdgeIter
Linear iterator.
VertexIHalfedgeIter ConstVertexIHalfedgeIter
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle, false > HalfedgeLoopCCWIter
FaceVertexCCWIter ConstFaceVertexCCWIter
HalfedgeIter halfedges_begin()
Begin iterator for halfedges.
FaceEdgeCWIter FECWIter
Alias typedef.
FaceEdgeIter fe_iter(FaceHandle _fh)
face - edge circulator
ConstHalfedgeLoopIter chl_begin(HalfedgeHandle _heh) const
const halfedge circulator
ConstFaceEdgeCCWIter cfe_ccwiter(FaceHandle _fh) const
const face - edge circulator ccw
FaceIter faces_end()
End iterator for faces.
ConstFaceEdgeIter cfe_iter(FaceHandle _fh) const
const face - edge circulator
ConstVertexOHalfedgeCWIter cvoh_cwbegin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toOppositeHalfedgeHandle, false > VertexIHalfedgeCCWIter
FaceEdgeCCWIter FECWWIter
Alias typedef.
FaceFaceCWIter ff_cwend(FaceHandle _fh)
face - face circulator cw
HalfedgeLoopCWIter hl_cwend(HalfedgeHandle _heh)
face - face circulator cw
VertexOHalfedgeCCWIter voh_ccwbegin(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
Iterators::GenericCirculatorT< This, This::FaceHandle, This::VertexHandle,&Iterators::GenericCirculatorBaseT< This >::toVertexHandle, false > FaceVertexCWIter
VertexOHalfedgeCWIter voh_cwiter(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
VertexOHalfedgeCCWIter voh_ccwiter(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
VertexEdgeCWIter VECWIter
Alias typedef.
ConstVertexFaceCCWIter cvf_ccwbegin(VertexHandle _vh) const
const vertex - face circulator ccw
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::EdgeHandle,&Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > FaceEdgeIter
HalfedgeIter ConstHalfedgeIter
Linear iterator.
ConstVertexRange vertices() const
FaceFaceCWIter ff_cwiter(FaceHandle _fh)
face - face circulator cw
VertexVertexCCWIter vv_ccwiter(VertexHandle _vh)
vertex - vertex circulator ccw
FaceHalfedgeCCWIter FHCWWIter
Alias typedef.
FaceVertexCCWIter fv_ccwend(FaceHandle _fh)
face - vertex circulator ccw
CirculatorRange< PolyConnectivity, ConstFaceHalfedgeIter, FaceHandle,&PolyConnectivity::cfh_begin,&PolyConnectivity::cfh_end > ConstFaceHalfedgeRange
EdgeIter edges_sbegin()
Begin iterator for edges.
ConstVertexIHalfedgeIter cvih_begin(VertexHandle _vh) const
const vertex - incoming halfedge circulator
HalfedgeIter halfedges_sbegin()
Begin iterator for halfedges.
ConstVertexVertexCCWIter CVVCCWIter
Alias typedef.
HalfedgeHandle HHandle
Alias typedef.
ConstVertexFaceCWIter cvf_cwend(VertexHandle _vh) const
const vertex - face circulator cw
ConstFaceHalfedgeCWIter cfh_cwend(FaceHandle _fh) const
const face - halfedge circulator cw
EntityRange< const PolyConnectivity, PolyConnectivity::ConstHalfedgeIter,&PolyConnectivity::halfedges_begin,&PolyConnectivity::halfedges_end > ConstHalfedgeRange
ConstFaceFaceCCWIter cff_ccwbegin(FaceHandle _fh) const
const face - face circulator ccw
FaceFaceIter FFIter
Alias typedef.
FaceVertexCCWIter fv_ccwbegin(FaceHandle _fh)
face - vertex circulator ccw
ConstFaceHalfedgeCCWIter cfh_ccwbegin(FaceHandle _fh) const
const face - halfedge circulator ccw
CirculatorRange< PolyConnectivity, ConstFaceEdgeIter, FaceHandle,&PolyConnectivity::cfe_begin,&PolyConnectivity::cfe_end > ConstFaceEdgeRange
ConstVertexVertexRange vv_range(VertexHandle _vh) const
VertexFaceCCWIter ConstVertexFaceCCWIter
CirculatorRange< PolyConnectivity, ConstVertexIHalfedgeIter, VertexHandle,&PolyConnectivity::cvih_begin,&PolyConnectivity::cvih_end > ConstVertexIHalfedgeRange
Iterators::GenericCirculatorT< This, This::FaceHandle, This::EdgeHandle,&Iterators::GenericCirculatorBaseT< This >::toEdgeHandle, false > FaceEdgeCWIter
VertexOHalfedgeIter voh_iter(VertexHandle _vh)
vertex - outgoing halfedge circulator
FaceFaceIter ConstFaceFaceIter
FaceHandle opposite_face_handle(HalfedgeHandle _heh) const
returns the face handle of the opposite halfedge
EntityRange< const PolyConnectivity, PolyConnectivity::ConstFaceIter,&PolyConnectivity::faces_begin,&PolyConnectivity::faces_end > ConstFaceRange
ConstVertexOHalfedgeCCWIter cvoh_ccwend(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
ConstVertexOHalfedgeCCWIter CVOHCCWIter
Alias typedef.
VertexVertexIter vv_end(VertexHandle _vh)
vertex - vertex circulator
ConstFaceVertexCWIter CFVCWIter
Alias typedef.
bool is_valid() const
The handle is valid iff the index is not equal to -1.
HalfedgeLoopCWIter ConstHalfedgeLoopCWIter
Connectivity Class for polygonal meshes.
FaceEdgeCWIter fe_cwiter(FaceHandle _fh)
face - edge circulator cw
Iterators::GenericCirculatorT< This, This::VertexHandle, This::EdgeHandle,&Iterators::GenericCirculatorBaseT< This >::toEdgeHandle, false > VertexEdgeCCWIter
Iterators::GenericCirculatorT< This, This::VertexHandle, This::FaceHandle,&Iterators::GenericCirculatorBaseT< This >::toFaceHandle > VertexFaceCWIter
VertexEdgeCCWIter VECCWIter
Alias typedef.
Handle for a halfedge entity.
VertexEdgeCCWIter ve_ccwiter(VertexHandle _vh)
vertex - edge circulator ccw
CirculatorRange< PolyConnectivity, ConstFaceFaceIter, FaceHandle,&PolyConnectivity::cff_begin,&PolyConnectivity::cff_end > ConstFaceFaceRange
ConstFaceEdgeCWIter cfe_cwend(FaceHandle _fh) const
const face - edge circulator cw
Edge & deref(EdgeHandle _h)
Get item from handle.
FaceVertexCWIter fv_cwbegin(FaceHandle _fh)
face - vertex circulator cw
CirculatorRange< PolyConnectivity, ConstVertexVertexCWIter, VertexHandle,&PolyConnectivity::cvv_cwbegin,&PolyConnectivity::cvv_cwend > ConstVertexVertexRange
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > VertexOHalfedgeIter
ConstVertexEdgeCCWIter cve_ccwiter(VertexHandle _vh) const
const vertex - edge circulator ccw
ConstFaceFaceRange ff_range(FaceHandle _fh) const
VertexIHalfedgeCCWIter VIHICCWter
Alias typedef.
FaceHalfedgeCWIter fh_cwend(FaceHandle _fh)
face - halfedge circulator cw
ConstHalfedgeLoopCCWIter chl_ccwbegin(HalfedgeHandle _heh) const
const halfedge circulator ccw
VertexEdgeCWIter ve_cwend(VertexHandle _vh)
vertex - edge circulator cw
ConstVertexIHalfedgeIter cvih_end(VertexHandle _vh) const
const vertex - incoming halfedge circulator
VertexIHalfedgeCWIter VIHICWter
Alias typedef.
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::FaceHandle,&Iterators::GenericCirculatorBaseT< This >::toOppositeFaceHandle > FaceFaceIter
FaceHalfedgeCCWIter fh_ccwend(FaceHandle _fh)
face - halfedge circulator ccw
VertexVertexCWIter ConstVertexVertexCWIter
FaceFaceIter ff_begin(FaceHandle _fh)
face - face circulator
ConstFaceVertexCCWIter cfv_ccwiter(FaceHandle _fh) const
const face - vertex circulator ccw
ConstVertexOHalfedgeCWIter CVOHCWIter
Alias typedef.
ConstVertexEdgeIter cve_end(VertexHandle _vh) const
const vertex - edge circulator
CirculatorRange< PolyConnectivity, ConstVertexFaceIter, VertexHandle,&PolyConnectivity::cvf_begin,&PolyConnectivity::cvf_end > ConstVertexFaceRange
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toOppositeHalfedgeHandle > VertexIHalfedgeCWIter
ConstVertexIter CVIter
Alias typedef.
VertexVertexCWIter VVCWIter
Alias typedef.
ConstVertexIHalfedgeCCWIter cvih_ccwiter(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
ConstVertexEdgeIter CVEIter
Alias typedef.
VertexEdgeCWIter ConstVertexEdgeCWIter
FaceIter FIter
Alias typedef.
ConstFaceVertexIter cfv_begin(FaceHandle _fh) const
const face - vertex circulator
VertexOHalfedgeCWIter voh_cwend(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
ConstHalfedgeLoopIter chl_end(HalfedgeHandle _heh) const
const face - face circulator
Generic class for vertex/halfedge/edge/face ranges.
ConstVertexOHalfedgeCCWIter cvoh_ccwbegin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
ConstVertexVertexCWIter cvv_cwiter(VertexHandle _vh) const
const vertex circulator cw
ConstFaceEdgeCCWIter cfe_ccwend(FaceHandle _fh) const
const face - edge circulator ccw
VertexEdgeIter VEIter
Alias typedef.
VertexOHalfedgeCWIter voh_cwbegin(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
bool is_boundary(HalfedgeHandle _heh) const
Is halfedge _heh a boundary halfedge (is its face handle invalid) ?
EdgeIter edges_begin()
Begin iterator for edges.
ConstVertexVertexCCWIter cvv_ccwend(VertexHandle _vh) const
const vertex circulator ccw
ConstVertexVertexCWIter CVVCWIter
Alias typedef.
FaceIter faces_begin()
Begin iterator for faces.
ConstFaceEdgeIter cfe_end(FaceHandle _fh) const
const face - edge circulator
FaceVertexIter fv_end(FaceHandle _fh)
face - vertex circulator
VertexVertexCCWIter VVCCWIter
Alias typedef.
ConstFaceEdgeCCWIter CFECCWIter
Alias typedef.
HalfedgeIter HIter
Alias typedef.
Iterators::GenericCirculatorT< This, This::FaceHandle, This::VertexHandle,&Iterators::GenericCirculatorBaseT< This >::toVertexHandle > FaceVertexCCWIter
VertexVertexIter VVIter
Alias typedef.
ConstVertexIHalfedgeCWIter CVIHCWIter
Alias typedef.
ConstFaceHalfedgeCCWIter cfh_ccwend(FaceHandle _fh) const
const face - halfedge circulator ccw
ConstVertexFaceIter cvf_begin(VertexHandle _vh) const
const vertex - face circulator
ConstFaceFaceCWIter cff_cwend(FaceHandle _fh) const
const face - face circulator
ConstVertexIHalfedgeCWIter cvih_cwend(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
ConstFaceHalfedgeRange fh_range(FaceHandle _fh) const
CirculatorRange< PolyConnectivity, ConstVertexEdgeIter, VertexHandle,&PolyConnectivity::cve_begin,&PolyConnectivity::cve_end > ConstVertexEdgeRange
ConstVertexVertexCWIter cvv_cwbegin(VertexHandle _vh) const
const vertex circulator cw
ConstFaceVertexCWIter cfv_cwiter(FaceHandle _fh) const
const face - vertex circulator cw
VertexFaceIter VFIter
Alias typedef.
ConstHalfedgeRange halfedges() const
FaceEdgeCWIter fe_cwbegin(FaceHandle _fh)
face - edge circulator cw
ConstFaceEdgeCCWIter cfe_ccwbegin(FaceHandle _fh) const
const face - edge circulator ccw
ConstFaceEdgeCWIter cfe_cwiter(FaceHandle _fh) const
const face - edge circulator cw
ConstVertexVertexIter cvv_end(VertexHandle _vh) const
const vertex circulator
ConstFaceVertexCWIter cfv_cwend(FaceHandle _fh) const
const face - vertex circulator cw
ConstFaceVertexRange fv_range(FaceHandle _fh) const
FaceEdgeCCWIter fe_ccwbegin(FaceHandle _fh)
face - edge circulator ccw
VertexFaceIter vf_iter(VertexHandle _vh)
vertex - face circulator
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toOppositeHalfedgeHandle > VertexIHalfedgeIter
ConstVertexVertexIter CVVIter
Alias typedef.
FaceVertexCWIter ConstFaceVertexCWIter
ConstVertexEdgeCCWIter cve_ccwend(VertexHandle _vh) const
const vertex - edge circulator ccw
Iterators::GenericCirculatorT< This, This::VertexHandle, This::EdgeHandle,&Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > VertexEdgeCWIter
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > HalfedgeLoopIter
HalfedgeLoopCCWIter hl_ccwend(HalfedgeHandle _heh)
face - face circulator ccw
FaceIter ConstFaceIter
Linear iterator.
FaceEdgeCCWIter ConstFaceEdgeCCWIter
VertexEdgeCCWIter ve_ccwend(VertexHandle _vh)
vertex - edge circulator ccw
VertexVertexIter vv_begin(VertexHandle _vh)
vertex - vertex circulator
FaceFaceIter ff_iter(FaceHandle _fh)
face - face circulator
ConstVertexEdgeCCWIter CVECCWIter
Alias typedef.
ConstFaceEdgeCWIter cfe_cwbegin(FaceHandle _fh) const
const face - edge circulator cw
FaceFaceCCWIter ConstFaceFaceCCWIter
FaceFaceCCWIter ff_ccwiter(FaceHandle _fh)
face - face circulator ccw
FaceHalfedgeCWIter fh_cwbegin(FaceHandle _fh)
face - halfedge circulator cw
ConstVertexEdgeRange ve_range(VertexHandle _vh) const
FaceIter faces_sbegin()
Begin iterator for faces.
VertexIHalfedgeCWIter vih_cwiter(VertexHandle _vh)
vertex - incoming halfedge circulator cw
VertexIHalfedgeIter vih_begin(VertexHandle _vh)
vertex - incoming halfedge circulator
bool is_boundary(VertexHandle _vh) const
Is vertex _vh a boundary vertex ?
ConstFaceFaceCCWIter cff_ccwiter(FaceHandle _fh) const
const face - face circulator
VertexVertexCCWIter ConstVertexVertexCCWIter
static const EdgeHandle InvalidEdgeHandle
Invalid handle.
ConstFaceVertexCCWIter cfv_ccwbegin(FaceHandle _fh) const
const face - vertex circulator ccw
Iterators::GenericCirculatorT< This, This::FaceHandle, This::FaceHandle,&Iterators::GenericCirculatorBaseT< This >::toOppositeFaceHandle > FaceFaceCCWIter
VertexVertexIter vv_iter(VertexHandle _vh)
vertex - vertex circulator
ConstVertexIter vertices_sbegin() const
Const begin iterator for vertices.
VertexFaceCCWIter vf_ccwiter(VertexHandle _vh)
vertex - face circulator ccw
ConstFaceEdgeIter cfe_begin(FaceHandle _fh) const
const face - edge circulator
ConstFaceHalfedgeIter cfh_iter(FaceHandle _fh) const
const face - halfedge circulator
ConstVertexIHalfedgeCCWIter cvih_ccwbegin(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
VertexFaceCWIter vf_cwbegin(VertexHandle _vh)
vertex - face circulator cw
ConstFaceFaceCCWIter cff_ccwend(FaceHandle _fh) const
const face - face circulator
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::FaceHandle,&Iterators::GenericCirculatorBaseT< This >::toFaceHandle > VertexFaceIter
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle, false > FaceHalfedgeCWIter
ConstVertexVertexCCWIter cvv_ccwbegin(VertexHandle _vh) const
const vertex circulator ccw
VertexIHalfedgeCCWIter ConstVertexIHalfedgeCCWIter
Generic class for iterator ranges.
const Halfedge & deref(HalfedgeHandle _h) const
Get item from handle.
HalfedgeLoopCWIter hl_cwbegin(HalfedgeHandle _heh)
halfedge circulator
bool is_boundary(EdgeHandle _eh) const
Is the edge a boundary edge?
VertexFaceCCWIter vf_ccwbegin(VertexHandle _vh)
vertex - face circulator ccw
VertexIHalfedgeCCWIter vih_ccwiter(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
Handle for a vertex entity.
VertexFaceIter vf_end(VertexHandle _vh)
vertex - face circulator
Iterators::GenericIteratorT< This, This::HalfedgeHandle, ArrayKernel,&ArrayKernel::has_halfedge_status,&ArrayKernel::n_halfedges > HalfedgeIter
Linear iterator.
HalfedgeLoopIter ConstHalfedgeLoopIter
ConstEdgeIter CEIter
Alias typedef.
VertexIter vertices_begin()
Begin iterator for vertices.
VertexEdgeIter ve_end(VertexHandle _vh)
vertex - edge circulator
VertexEdgeIter ConstVertexEdgeIter
ConstFaceHalfedgeCCWIter cfh_ccwiter(FaceHandle _fh) const
const face - halfedge circulator ccw
ConstVertexEdgeCWIter cve_cwiter(VertexHandle _vh) const
const vertex - edge circulator cw
ConstHalfedgeIter CHIter
Alias typedef.
FaceVertexIter fv_iter(FaceHandle _fh)
face - vertex circulator
ConstVertexEdgeCWIter cve_cwend(VertexHandle _vh) const
const vertex - edge circulator cw
VertexIHalfedgeCWIter vih_cwbegin(VertexHandle _vh)
vertex - incoming halfedge circulator cw
Handle for a edge entity.
VertexIter vertices_end()
End iterator for vertices.
FaceEdgeCWIter fe_cwend(FaceHandle _fh)
face - edge circulator cw
FaceVertexCWIter FVCWIter
Alias typedef.
FaceEdgeIter ConstFaceEdgeIter
FaceHalfedgeIter fh_end(FaceHandle _fh)
face - halfedge circulator
FaceHalfedgeCWIter ConstFaceHalfedgeCWIter
const Edge & deref(EdgeHandle _h) const
Get item from handle.
VertexFaceCWIter vf_cwend(VertexHandle _vh)
vertex - face circulator cw
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::EdgeHandle,&Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > VertexEdgeIter
FaceVertexCCWIter fv_ccwiter(FaceHandle _fh)
face - vertex circulator ccw
ConstVertexOHalfedgeCCWIter cvoh_ccwiter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
static const HalfedgeHandle InvalidHalfedgeHandle
Invalid handle.
Handle for a face entity.
ConstFaceVertexCCWIter cfv_ccwend(FaceHandle _fh) const
const face - vertex circulator ccw
Iterators::GenericCirculatorT< This, This::FaceHandle, This::EdgeHandle,&Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > FaceEdgeCCWIter
ConstFaceVertexCCWIter CFVCCWIter
Alias typedef.
FaceFaceCCWIter ff_ccwbegin(FaceHandle _fh)
face - face circulator ccw
VertexEdgeCCWIter ConstVertexEdgeCCWIter
VertexVertexCCWIter vv_ccwbegin(VertexHandle _vh)
vertex - vertex circulator ccw
FaceHalfedgeCWIter FHCWIter
Alias typedef.
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle, false > VertexOHalfedgeCCWIter
bool is_boundary(HalfedgeHandle _heh) const
Check if the halfedge is at the boundary.
ConstVertexOHalfedgeRange voh_range(VertexHandle _vh) const
Iterators::GenericIteratorT< This, This::FaceHandle, ArrayKernel,&ArrayKernel::has_face_status,&ArrayKernel::n_faces > FaceIter
Linear iterator.
ConstVertexFaceIter CVFIter
Alias typedef.
VertexOHalfedgeIter voh_end(VertexHandle _vh)
vertex - outgoing halfedge circulator
ConstVertexOHalfedgeIter cvoh_end(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
ConstFaceHalfedgeIter cfh_end(FaceHandle _fh) const
const face - halfedge circulator
ConstFaceRange faces() const
ConstFaceFaceCWIter cff_cwbegin(FaceHandle _fh) const
const face - face circulator cw
FaceEdgeIter fe_end(FaceHandle _fh)
face - edge circulator
CirculatorRange< PolyConnectivity, ConstVertexOHalfedgeIter, VertexHandle,&PolyConnectivity::cvoh_begin,&PolyConnectivity::cvoh_end > ConstVertexOHalfedgeRange
VertexOHalfedgeIter ConstVertexOHalfedgeIter
VertexIHalfedgeCCWIter vih_ccwend(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
ConstVertexFaceCWIter cvf_cwiter(VertexHandle _vh) const
const vertex - face circulator cw
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::VertexHandle,&Iterators::GenericCirculatorBaseT< This >::toVertexHandle > VertexVertexIter
ConstHalfedgeLoopCWIter chl_cwbegin(HalfedgeHandle _heh) const
const halfedge circulator cw
ConstVertexFaceCCWIter CVFCCWIter
Alias typedef.
VertexIHalfedgeCCWIter vih_ccwbegin(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
FaceHandle FHandle
Alias typedef.
FaceEdgeCCWIter fe_ccwiter(FaceHandle _fh)
face - edge circulator ccw
EdgeIter edges_end()
End iterator for edges.
VertexFaceCWIter ConstVertexFaceCWIter
ConstVertexEdgeCWIter cve_cwbegin(VertexHandle _vh) const
const vertex - edge circulator cw
ConstVertexOHalfedgeIter cvoh_iter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
ConstVertexFaceIter cvf_iter(VertexHandle _vh) const
const vertex - face circulator
ConstVertexFaceCWIter CVFCWIter
Alias typedef.
CirculatorRange< PolyConnectivity, ConstFaceVertexIter, FaceHandle,&PolyConnectivity::cfv_begin,&PolyConnectivity::cfv_end > ConstFaceVertexRange
ConstFaceEdgeIter CFEIter
Alias typedef.
ConstVertexOHalfedgeIter cvoh_begin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
VertexOHalfedgeCCWIter voh_ccwend(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
ConstVertexEdgeIter cve_iter(VertexHandle _vh) const
const vertex - edge circulator
FaceFaceCWIter ff_cwbegin(FaceHandle _fh)
face - face circulator cw
VertexEdgeIter ve_begin(VertexHandle _vh)
vertex - edge circulator
HalfedgeLoopCCWIter ConstHalfedgeLoopCCWIter
VertexIHalfedgeCWIter ConstVertexIHalfedgeCWIter
FaceEdgeCCWIter fe_ccwend(FaceHandle _fh)
face - edge circulator ccw
ConstEdgeIter edges_sbegin() const
Const begin iterator for edges.
ConstVertexIHalfedgeCWIter cvih_cwbegin(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
FaceHalfedgeIter fh_iter(FaceHandle _fh)
face - halfedge circulator
FaceFaceIter ff_end(FaceHandle _fh)
face - face circulator
ConstFaceHalfedgeCWIter CFHCWIter
Alias typedef.
FaceEdgeIter fe_begin(FaceHandle _fh)
face - edge circulator
HalfedgeLoopIter hl_begin(HalfedgeHandle _heh)
halfedge circulator
VertexEdgeCCWIter ve_ccwbegin(VertexHandle _vh)
vertex - edge circulator ccw
FaceHalfedgeIter FHIter
Alias typedef.
FaceHalfedgeCCWIter ConstFaceHalfedgeCCWIter
ConstFaceVertexIter CFVIter
Alias typedef.
ConstFaceEdgeCWIter CFECWIter
Alias typedef.
VertexIter VIter
Alias typedef.
VertexIter ConstVertexIter
Linear iterator.
ConstFaceFaceIter CFFIter
Alias typedef.
VertexIHalfedgeIter VIHIter
Alias typedef.
EntityRange< const PolyConnectivity, PolyConnectivity::ConstVertexIter,&PolyConnectivity::vertices_begin,&PolyConnectivity::vertices_end > ConstVertexRange
Halfedge & deref(HalfedgeHandle _h)
Get item from handle.
ConstVertexFaceCCWIter cvf_ccwiter(VertexHandle _vh) const
const vertex - face circulator ccw
ConstHalfedgeLoopCWIter chl_cwend(HalfedgeHandle _heh) const
const face - face circulator cw
void assign_connectivity(const PolyConnectivity &_other)
EdgeHandle EHandle
Alias typedef.
ConstVertexEdgeCWIter CVECWIter
Alias typedef.
VertexFaceCCWIter vf_ccwend(VertexHandle _vh)
vertex - face circulator ccw
static const FaceHandle InvalidFaceHandle
Invalid handle.
ConstVertexVertexCCWIter cvv_ccwiter(VertexHandle _vh) const
const vertex circulator ccw
FaceVertexIter FVIter
Alias typedef.
EntityRange< const PolyConnectivity, PolyConnectivity::ConstEdgeIter,&PolyConnectivity::edges_begin,&PolyConnectivity::edges_end > ConstEdgeRange
VertexIHalfedgeIter vih_iter(VertexHandle _vh)
vertex - incoming halfedge circulator
ConstFaceIter faces_sbegin() const
Const begin iterator for faces.
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > VertexOHalfedgeCWIter
ConstHalfedgeLoopCCWIter chl_ccwend(HalfedgeHandle _heh) const
const face - face circulator ccw
ConstVertexIHalfedgeCCWIter cvih_ccwend(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
ConstFaceFaceCCWIter CFFCCWIter
Alias typedef.
FaceHalfedgeCWIter fh_cwiter(FaceHandle _fh)
face - halfedge circulator cw
VertexEdgeIter ve_iter(VertexHandle _vh)
vertex - edge circulator
ConstFaceFaceCWIter CFFCWIter
Alias typedef.
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > HalfedgeLoopCWIter
FaceVertexCWIter fv_cwend(FaceHandle _fh)
face - vertex circulator cw
VertexVertexCCWIter vv_ccwend(VertexHandle _vh)
vertex - vertex circulator ccw
Face & deref(FaceHandle _h)
Get item from handle.
EdgeIter EIter
Alias typedef.
ConstVertexFaceIter cvf_end(VertexHandle _vh) const
const vertex - face circulator
ConstVertexIHalfedgeCWIter cvih_cwiter(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
VertexOHalfedgeCCWIter VOHCCWIter
Alias typedef.
FaceVertexCWIter fv_cwiter(FaceHandle _fh)
face - vertex circulator cw
ConstFaceHalfedgeCWIter cfh_cwbegin(FaceHandle _fh) const
const face - halfedge circulator cw
VertexOHalfedgeIter voh_begin(VertexHandle _vh)
vertex - outgoing halfedge circulator
ConstVertexFaceCCWIter cvf_ccwend(VertexHandle _vh) const
const vertex - face circulator ccw
ConstVertexOHalfedgeCWIter cvoh_cwend(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
ConstFaceEdgeRange fe_range(FaceHandle _fh) const
VertexOHalfedgeIter VOHIter
Alias typedef.
ConstFaceFaceIter cff_begin(FaceHandle _fh) const
const face - face circulator
VertexFaceCWIter vf_cwiter(VertexHandle _vh)
vertex - face circulator cw
FaceVertexIter ConstFaceVertexIter
ConstFaceIter CFIter
Alias typedef.
Vertex & deref(VertexHandle _h)
Get item from handle.
FaceVertexIter fv_begin(FaceHandle _fh)
face - vertex circulator
ConstVertexFaceRange vf_range(VertexHandle _vh) const
ConstVertexOHalfedgeCWIter cvoh_cwiter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
VertexIter vertices_sbegin()
Begin iterator for vertices.
ConstVertexOHalfedgeIter CVOHIter
Alias typedef.
VertexHandle add_vertex()
Add a new vertex.
ConstFaceVertexIter cfv_iter(FaceHandle _fh) const
const face - vertex circulator
VertexVertexIter ConstVertexVertexIter
VertexOHalfedgeCCWIter ConstVertexOHalfedgeCCWIter
HalfedgeLoopCCWIter hl_ccwbegin(HalfedgeHandle _heh)
halfedge circulator ccw
ConstEdgeRange edges() const
EdgeIter ConstEdgeIter
Linear iterator.
ConstVertexFaceCWIter cvf_cwbegin(VertexHandle _vh) const
const vertex - face circulator cw
ConstFaceHalfedgeIter cfh_begin(FaceHandle _fh) const
const face - halfedge circulator
Iterators::GenericCirculatorT< This, This::VertexHandle, This::FaceHandle,&Iterators::GenericCirculatorBaseT< This >::toFaceHandle, false > VertexFaceCCWIter
FaceEdgeCWIter ConstFaceEdgeCWIter
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::HalfedgeHandle,&Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > FaceHalfedgeIter
VertexFaceIter vf_begin(VertexHandle _vh)
vertex - face circulator
ConstFaceHalfedgeCCWIter CFHCCWIter
Alias typedef.
Iterators::GenericCirculatorT< This, This::FaceHandle, This::FaceHandle,&Iterators::GenericCirculatorBaseT< This >::toOppositeFaceHandle, false > FaceFaceCWIter
VertexVertexCWIter vv_cwend(VertexHandle _vh)
vertex - vertex circulator cw
VertexFaceCCWIter VFCCWIter
Alias typedef.
FaceEdgeIter FEIter
Alias typedef.
VertexFaceCWIter VFCWIter
Alias typedef.
ConstHalfedgeIter halfedges_sbegin() const
Const begin iterator for halfedges.