OpenMesh
PolyConnectivity.hh
1/* ========================================================================= *
2 * *
3 * OpenMesh *
4 * Copyright (c) 2001-2015, RWTH-Aachen University *
5 * Department of Computer Graphics and Multimedia *
6 * All rights reserved. *
7 * www.openmesh.org *
8 * *
9 *---------------------------------------------------------------------------*
10 * This file is part of OpenMesh. *
11 *---------------------------------------------------------------------------*
12 * *
13 * Redistribution and use in source and binary forms, with or without *
14 * modification, are permitted provided that the following conditions *
15 * are met: *
16 * *
17 * 1. Redistributions of source code must retain the above copyright notice, *
18 * this list of conditions and the following disclaimer. *
19 * *
20 * 2. Redistributions in binary form must reproduce the above copyright *
21 * notice, this list of conditions and the following disclaimer in the *
22 * documentation and/or other materials provided with the distribution. *
23 * *
24 * 3. Neither the name of the copyright holder nor the names of its *
25 * contributors may be used to endorse or promote products derived from *
26 * this software without specific prior written permission. *
27 * *
28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
29 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
30 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
31 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
32 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
33 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
34 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
35 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
36 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
37 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
38 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
39 * *
40 * ========================================================================= */
41
42/*===========================================================================*\
43 * *
44 * $Revision$ *
45 * $Date$ *
46 * *
47\*===========================================================================*/
48
49#ifndef OPENMESH_POLYCONNECTIVITY_HH
50#define OPENMESH_POLYCONNECTIVITY_HH
51
52#include <OpenMesh/Core/Mesh/ArrayKernel.hh>
53#include <OpenMesh/Core/Mesh/IteratorsT.hh>
54#include <OpenMesh/Core/Mesh/CirculatorsT.hh>
55
56namespace OpenMesh
57{
58
61class OPENMESHDLLEXPORT PolyConnectivity : public ArrayKernel
62{
63public:
65
66
75
77
78 //--- iterators ---
79
90
96
97 //--- circulators ---
98
104
105 /*
106 * Vertex-centered circulators
107 */
108
117
124
133
140
149
156
165
172
187
202
218
219 /*
220 * Face-centered circulators
221 */
222
231
238
247
254
263
270
279
286
299
300 /*
301 * Halfedge circulator
302 */
306
308
309 // --- shortcuts
310
320
325
330
356
385
386public:
387
389 virtual ~PolyConnectivity() {}
390
391 inline static bool is_triangles()
392 { return false; }
393
396 inline void assign_connectivity(const PolyConnectivity& _other)
398
402
405 { return new_vertex(); }
406
414 FaceHandle add_face(const std::vector<VertexHandle>& _vhandles);
415
416
426 FaceHandle add_face(VertexHandle _vh0, VertexHandle _vh1, VertexHandle _vh2);
427
438 FaceHandle add_face(VertexHandle _vh0, VertexHandle _vh1, VertexHandle _vh2, VertexHandle _vh3);
439
448 FaceHandle add_face(const VertexHandle* _vhandles, size_t _vhs_size);
449
451
453
454
459 bool is_collapse_ok(HalfedgeHandle _he);
460
461
467 void delete_vertex(VertexHandle _vh, bool _delete_isolated_vertices = true);
468
477 void delete_edge(EdgeHandle _eh, bool _delete_isolated_vertices=true);
478
489 void delete_face(FaceHandle _fh, bool _delete_isolated_vertices=true);
490
492
496
498 VertexIter vertices_begin();
500 ConstVertexIter vertices_begin() const;
502 VertexIter vertices_end();
504 ConstVertexIter vertices_end() const;
505
507 HalfedgeIter halfedges_begin();
509 ConstHalfedgeIter halfedges_begin() const;
511 HalfedgeIter halfedges_end();
513 ConstHalfedgeIter halfedges_end() const;
514
516 EdgeIter edges_begin();
518 ConstEdgeIter edges_begin() const;
520 EdgeIter edges_end();
522 ConstEdgeIter edges_end() const;
523
525 FaceIter faces_begin();
527 ConstFaceIter faces_begin() const;
529 FaceIter faces_end();
531 ConstFaceIter faces_end() const;
533
534
538
541 { return VertexIter(*this, VertexHandle(0), true); }
544 { return ConstVertexIter(*this, VertexHandle(0), true); }
545
548 { return HalfedgeIter(*this, HalfedgeHandle(0), true); }
551 { return ConstHalfedgeIter(*this, HalfedgeHandle(0), true); }
552
555 { return EdgeIter(*this, EdgeHandle(0), true); }
558 { return ConstEdgeIter(*this, EdgeHandle(0), true); }
559
562 { return FaceIter(*this, FaceHandle(0), true); }
565 { return ConstFaceIter(*this, FaceHandle(0), true); }
566
568
569 //--- circulators ---
570
574
577 { return VertexVertexIter(*this, _vh); }
580 { return VertexVertexCWIter(*this, _vh); }
583 { return VertexVertexCCWIter(*this, _vh); }
586 { return VertexIHalfedgeIter(*this, _vh); }
589 { return VertexIHalfedgeCWIter(*this, _vh); }
592 { return VertexIHalfedgeCCWIter(*this, _vh); }
595 { return VertexOHalfedgeIter(*this, _vh); }
598 { return VertexOHalfedgeCWIter(*this, _vh); }
601 { return VertexOHalfedgeCCWIter(*this, _vh); }
604 { return VertexEdgeIter(*this, _vh); }
607 { return VertexEdgeCWIter(*this, _vh); }
610 { return VertexEdgeCCWIter(*this, _vh); }
613 { return VertexFaceIter(*this, _vh); }
616 { return VertexFaceCWIter(*this, _vh); }
619 { return VertexFaceCCWIter(*this, _vh); }
620
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); }
666
669 { return FaceVertexIter(*this, _fh); }
672 { return FaceVertexCWIter(*this, _fh); }
675 { return FaceVertexCCWIter(*this, _fh); }
678 { return FaceHalfedgeIter(*this, _fh); }
681 { return FaceHalfedgeCWIter(*this, _fh); }
684 { return FaceHalfedgeCCWIter(*this, _fh); }
687 { return FaceEdgeIter(*this, _fh); }
690 { return FaceEdgeCWIter(*this, _fh); }
693 { return FaceEdgeCCWIter(*this, _fh); }
696 { return FaceFaceIter(*this, _fh); }
699 { return FaceFaceCWIter(*this, _fh); }
702 { return FaceFaceCCWIter(*this, _fh); }
703
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); }
740
741 // 'begin' circulators
742
745 { return VertexVertexIter(*this, _vh); }
748 { return VertexVertexCWIter(*this, _vh); }
751 { return VertexVertexCCWIter(*this, _vh); }
754 { return VertexIHalfedgeIter(*this, _vh); }
757 { return VertexIHalfedgeCWIter(*this, _vh); }
760 { return VertexIHalfedgeCCWIter(*this, _vh); }
763 { return VertexOHalfedgeIter(*this, _vh); }
766 { return VertexOHalfedgeCWIter(*this, _vh); }
769 { return VertexOHalfedgeCCWIter(*this, _vh); }
772 { return VertexEdgeIter(*this, _vh); }
775 { return VertexEdgeCWIter(*this, _vh); }
778 { return VertexEdgeCCWIter(*this, _vh); }
781 { return VertexFaceIter(*this, _vh); }
784 { return VertexFaceCWIter(*this, _vh); }
787 { return VertexFaceCCWIter(*this, _vh); }
788
789
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); }
835
838 { return FaceVertexIter(*this, _fh); }
841 { return FaceVertexCWIter(*this, _fh); }
844 { return FaceVertexCCWIter(*this, _fh); }
847 { return FaceHalfedgeIter(*this, _fh); }
850 { return FaceHalfedgeCWIter(*this, _fh); }
853 { return FaceHalfedgeCCWIter(*this, _fh); }
856 { return FaceEdgeIter(*this, _fh); }
859 { return FaceEdgeCWIter(*this, _fh); }
862 { return FaceEdgeCCWIter(*this, _fh); }
865 { return FaceFaceIter(*this, _fh); }
868 { return FaceFaceCWIter(*this, _fh); }
871 { return FaceFaceCCWIter(*this, _fh); }
874 { return HalfedgeLoopIter(*this, _heh); }
877 { return HalfedgeLoopCWIter(*this, _heh); }
880 { return HalfedgeLoopCCWIter(*this, _heh); }
881
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); }
927
928 // 'end' circulators
929
932 { return VertexVertexIter(*this, _vh, true); }
935 { return VertexVertexCWIter(*this, _vh, true); }
938 { return VertexVertexCCWIter(*this, _vh, true); }
941 { return VertexIHalfedgeIter(*this, _vh, true); }
944 { return VertexIHalfedgeCWIter(*this, _vh, true); }
947 { return VertexIHalfedgeCCWIter(*this, _vh, true); }
950 { return VertexOHalfedgeIter(*this, _vh, true); }
953 { return VertexOHalfedgeCWIter(*this, _vh, true); }
956 { return VertexOHalfedgeCCWIter(*this, _vh, true); }
959 { return VertexEdgeIter(*this, _vh, true); }
962 { return VertexEdgeCWIter(*this, _vh, true); }
965 { return VertexEdgeCCWIter(*this, _vh, true); }
968 { return VertexFaceIter(*this, _vh, true); }
971 { return VertexFaceCWIter(*this, _vh, true); }
974 { return VertexFaceCCWIter(*this, _vh, true); }
975
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); }
1021
1024 { return FaceVertexIter(*this, _fh, true); }
1027 { return FaceVertexCWIter(*this, _fh, true); }
1030 { return FaceVertexCCWIter(*this, _fh, true); }
1033 { return FaceHalfedgeIter(*this, _fh, true); }
1036 { return FaceHalfedgeCWIter(*this, _fh, true); }
1039 { return FaceHalfedgeCCWIter(*this, _fh, true); }
1042 { return FaceEdgeIter(*this, _fh, true); }
1045 { return FaceEdgeCWIter(*this, _fh, true); }
1048 { return FaceEdgeCCWIter(*this, _fh, true); }
1051 { return FaceFaceIter(*this, _fh, true); }
1054 { return FaceFaceCWIter(*this, _fh, true); }
1057 { return FaceFaceCCWIter(*this, _fh, true); }
1060 { return HalfedgeLoopIter(*this, _heh, true); }
1063 { return HalfedgeLoopCWIter(*this, _heh, true); }
1066 { return HalfedgeLoopCCWIter(*this, _heh, true); }
1067
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); }
1114
1117
1119 template<
1120 typename CONTAINER_TYPE,
1121 typename ITER_TYPE,
1122 ITER_TYPE (CONTAINER_TYPE::*begin_fn)() const,
1123 ITER_TYPE (CONTAINER_TYPE::*end_fn)() const>
1125 public:
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)(); }
1129
1130 private:
1131 CONTAINER_TYPE &container_;
1132 };
1133 typedef EntityRange<
1134 const PolyConnectivity,
1138 typedef EntityRange<
1139 const PolyConnectivity,
1143 typedef EntityRange<
1144 const PolyConnectivity,
1148 typedef EntityRange<
1149 const PolyConnectivity,
1153
1158 ConstVertexRange vertices() const { return ConstVertexRange(*this); }
1159
1165
1170 ConstEdgeRange edges() const { return ConstEdgeRange(*this); }
1171
1176 ConstFaceRange faces() const { return ConstFaceRange(*this); }
1177
1179 template<
1180 typename CONTAINER_TYPE,
1181 typename ITER_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>
1186 public:
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_); }
1193
1194 private:
1195 const CONTAINER_TYPE &container_;
1196 CENTER_ENTITY_TYPE center_;
1197 };
1198
1199 typedef CirculatorRange<
1205 typedef CirculatorRange<
1211 typedef CirculatorRange<
1216 typedef CirculatorRange<
1222 typedef CirculatorRange<
1228 typedef CirculatorRange<
1231 FaceHandle,
1234 typedef CirculatorRange<
1237 FaceHandle,
1240 typedef CirculatorRange<
1243 FaceHandle,
1246 typedef CirculatorRange<
1249 FaceHandle,
1252
1258 return ConstVertexVertexRange(*this, _vh);
1259 }
1260
1266 return ConstVertexIHalfedgeRange(*this, _vh);
1267 }
1268
1274 return ConstVertexOHalfedgeRange(*this, _vh);
1275 }
1276
1282 return ConstVertexEdgeRange(*this, _vh);
1283 }
1284
1290 return ConstVertexFaceRange(*this, _vh);
1291 }
1292
1298 return ConstFaceVertexRange(*this, _fh);
1299 }
1300
1306 return ConstFaceHalfedgeRange(*this, _fh);
1307 }
1308
1314 return ConstFaceEdgeRange(*this, _fh);
1315 }
1316
1322 return ConstFaceFaceRange(*this, _fh);
1323 }
1324
1326
1327 //===========================================================================
1330 //===========================================================================
1331
1340 { return ArrayKernel::is_boundary(_heh); }
1341
1350 bool is_boundary(EdgeHandle _eh) const
1351 {
1352 return (is_boundary(halfedge_handle(_eh, 0)) ||
1353 is_boundary(halfedge_handle(_eh, 1)));
1354 }
1355
1368 {
1369 HalfedgeHandle heh(halfedge_handle(_vh));
1370 return (!(heh.is_valid() && face_handle(heh).is_valid()));
1371 }
1372
1382 bool is_boundary(FaceHandle _fh, bool _check_vertex=false) const;
1383
1394 bool is_manifold(VertexHandle _vh) const;
1395
1398 // --- shortcuts ---
1399
1402 { return face_handle(opposite_halfedge_handle(_heh)); }
1403
1404 // --- misc ---
1405
1409 void adjust_outgoing_halfedge(VertexHandle _vh);
1410
1412 HalfedgeHandle find_halfedge(VertexHandle _start_vh, VertexHandle _end_vh) const;
1414 uint valence(VertexHandle _vh) const;
1416 uint valence(FaceHandle _fh) const;
1417
1418 // --- connectivity operattions
1419
1434 void collapse(HalfedgeHandle _heh);
1439 bool is_simple_link(EdgeHandle _eh) const;
1444 bool is_simply_connected(FaceHandle _fh) const;
1457 FaceHandle remove_edge(EdgeHandle _eh);
1461 void reinsert_edge(EdgeHandle _eh);
1471 HalfedgeHandle insert_edge(HalfedgeHandle _prev_heh, HalfedgeHandle _next_heh);
1472
1485 void split(FaceHandle _fh, VertexHandle _vh);
1486
1500 void split_copy(FaceHandle _fh, VertexHandle _vh);
1501
1515 void triangulate(FaceHandle _fh);
1516
1519 void triangulate();
1520
1531 void split_edge(EdgeHandle _eh, VertexHandle _vh);
1532
1544 void split_edge_copy(EdgeHandle _eh, VertexHandle _vh);
1545
1546
1553 const Vertex& deref(VertexHandle _h) const { return vertex(_h); }
1554 Vertex& deref(VertexHandle _h) { return vertex(_h); }
1555 const Halfedge& deref(HalfedgeHandle _h) const { return halfedge(_h); }
1556 Halfedge& deref(HalfedgeHandle _h) { return halfedge(_h); }
1557 const Edge& deref(EdgeHandle _h) const { return edge(_h); }
1558 Edge& deref(EdgeHandle _h) { return edge(_h); }
1559 const Face& deref(FaceHandle _h) const { return face(_h); }
1560 Face& deref(FaceHandle _h) { return face(_h); }
1562
1563protected:
1565 void collapse_edge(HalfedgeHandle _hh);
1567 void collapse_loop(HalfedgeHandle _hh);
1568
1569
1570
1571private: // Working storage for add_face()
1572 struct AddFaceEdgeInfo
1573 {
1574 HalfedgeHandle halfedge_handle;
1575 bool is_new;
1576 bool needs_adjust;
1577 };
1578 std::vector<AddFaceEdgeInfo> edgeData_; //
1579 std::vector<std::pair<HalfedgeHandle, HalfedgeHandle> > next_cache_; // cache for set_next_halfedge and vertex' set_halfedge
1580
1581};
1582
1583}//namespace OpenMesh
1584
1585#endif//OPENMESH_POLYCONNECTIVITY_HH
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...
Definition: MeshItems.hh:64
Mesh kernel using arrays for mesh item storage.
Definition: ArrayKernel.hh:93
bool is_boundary(HalfedgeHandle _heh) const
Is halfedge _heh a boundary halfedge (is its face handle invalid) ?
Definition: ArrayKernel.hh:403
void assign_connectivity(const ArrayKernel &_other)
ArrayKernel uses the default copy constructor and assignment operator, which means that the connectiv...
Definition: ArrayKernel.cc:76
Definition: CirculatorsT.hh:196
Definition: CirculatorsT.hh:258
Handle for a vertex entity.
Definition: Handles.hh:126
Handle for a halfedge entity.
Definition: Handles.hh:133
Handle for a edge entity.
Definition: Handles.hh:140
Handle for a face entity.
Definition: Handles.hh:147
Definition: IteratorsT.hh:89
Connectivity Class for polygonal meshes.
Definition: PolyConnectivity.hh:62
CirculatorRange< PolyConnectivity, ConstVertexVertexCWIter, VertexHandle, &PolyConnectivity::cvv_cwbegin, &PolyConnectivity::cvv_cwend > ConstVertexVertexRange
Definition: PolyConnectivity.hh:1204
FaceHalfedgeIter fh_begin(FaceHandle _fh)
face - halfedge circulator
Definition: PolyConnectivity.hh:846
VertexIHalfedgeCCWIter vih_ccwiter(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:591
FaceVertexCWIter fv_cwbegin(FaceHandle _fh)
face - vertex circulator cw
Definition: PolyConnectivity.hh:840
const Halfedge & deref(HalfedgeHandle _h) const
Get item from handle.
Definition: PolyConnectivity.hh:1555
VertexVertexCWIter VVCWIter
Alias typedef.
Definition: PolyConnectivity.hh:332
ConstVertexVertexIter CVVIter
Alias typedef.
Definition: PolyConnectivity.hh:357
EdgeIter edges_end()
End iterator for edges.
Definition: PolyConnectivity.cc:685
Iterators::GenericCirculatorT< This, This::FaceHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toOppositeFaceHandle, false > FaceFaceCWIter
Enumerate adjacent faces in a clockwise fashion.
Definition: PolyConnectivity.hh:285
ConstVertexOHalfedgeCWIter cvoh_cwend(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:998
EdgeIter ConstEdgeIter
Linear iterator.
Definition: PolyConnectivity.hh:93
EdgeIter EIter
Alias typedef.
Definition: PolyConnectivity.hh:323
VertexVertexIter VVIter
Alias typedef.
Definition: PolyConnectivity.hh:331
ConstFaceVertexCCWIter cfv_ccwbegin(FaceHandle _fh) const
const face - vertex circulator ccw
Definition: PolyConnectivity.hh:889
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
VertexIHalfedgeIter vih_begin(VertexHandle _vh)
vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:753
VertexVertexCCWIter VVCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:333
ConstVertexIHalfedgeCCWIter CVIHCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:365
HalfedgeLoopCWIter ConstHalfedgeLoopCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:304
FaceEdgeCCWIter fe_ccwiter(FaceHandle _fh)
face - edge circulator ccw
Definition: PolyConnectivity.hh:692
ConstVertexFaceCWIter cvf_cwbegin(VertexHandle _vh) const
const vertex - face circulator cw
Definition: PolyConnectivity.hh:830
Edge & deref(EdgeHandle _h)
Get item from handle.
Definition: PolyConnectivity.hh:1558
HalfedgeIter halfedges_end()
End iterator for halfedges.
Definition: PolyConnectivity.cc:661
ConstFaceHalfedgeCCWIter CFHCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:377
FaceFaceIter ff_end(FaceHandle _fh)
face - face circulator
Definition: PolyConnectivity.hh:1050
Iterators::GenericCirculatorT< This, This::VertexHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > VertexOHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:132
FaceVertexCWIter fv_cwend(FaceHandle _fh)
face - vertex circulator cw
Definition: PolyConnectivity.hh:1026
Iterators::GenericCirculatorT_DEPRECATED< This, This::VertexHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toFaceHandle > VertexFaceIter
Enumerates incident faces in a clockwise fashion.
Definition: PolyConnectivity.hh:162
VertexHandle VHandle
Alias typedef.
Definition: PolyConnectivity.hh:316
ConstVertexVertexRange vv_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1257
ConstFaceVertexCCWIter CFVCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:374
VertexIHalfedgeIter vih_end(VertexHandle _vh)
vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:940
PolyConnectivity This
Invalid handle.
Definition: PolyConnectivity.hh:76
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
Iterators::GenericIteratorT< This, This::HalfedgeHandle, ArrayKernel, &ArrayKernel::has_halfedge_status, &ArrayKernel::n_halfedges > HalfedgeIter
Linear iterator.
Definition: PolyConnectivity.hh:87
ConstHalfedgeLoopIter chl_begin(HalfedgeHandle _heh) const
const halfedge circulator
Definition: PolyConnectivity.hh:919
ConstVertexFaceCCWIter CVFCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:371
ConstFaceHalfedgeIter cfh_iter(FaceHandle _fh) const
const face - halfedge circulator
Definition: PolyConnectivity.hh:714
ConstVertexEdgeCCWIter cve_ccwbegin(VertexHandle _vh) const
const vertex - edge circulator ccw
Definition: PolyConnectivity.hh:824
VertexIHalfedgeIter ConstVertexIHalfedgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:209
VertexFaceCCWIter VFCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:345
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
FaceFaceIter ConstFaceFaceIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:296
FaceHalfedgeCWIter fh_cwend(FaceHandle _fh)
face - halfedge circulator cw
Definition: PolyConnectivity.hh:1035
FaceEdgeCWIter FECWIter
Alias typedef.
Definition: PolyConnectivity.hh:353
FaceHalfedgeCCWIter fh_ccwiter(FaceHandle _fh)
face - halfedge circulator ccw
Definition: PolyConnectivity.hh:683
CirculatorRange< PolyConnectivity, ConstVertexEdgeIter, VertexHandle, &PolyConnectivity::cve_begin, &PolyConnectivity::cve_end > ConstVertexEdgeRange
Definition: PolyConnectivity.hh:1221
ConstVertexOHalfedgeIter cvoh_end(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:995
VertexOHalfedgeCCWIter voh_ccwbegin(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:768
FaceVertexCCWIter FVCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:348
ConstFaceHalfedgeCWIter cfh_cwbegin(FaceHandle _fh) const
const face - halfedge circulator cw
Definition: PolyConnectivity.hh:895
ConstFaceVertexCWIter cfv_cwend(FaceHandle _fh) const
const face - vertex circulator cw
Definition: PolyConnectivity.hh:1072
ConstVertexIter CVIter
Alias typedef.
Definition: PolyConnectivity.hh:326
VertexFaceIter vf_iter(VertexHandle _vh)
vertex - face circulator
Definition: PolyConnectivity.hh:612
ConstVertexEdgeCWIter cve_cwbegin(VertexHandle _vh) const
const vertex - edge circulator cw
Definition: PolyConnectivity.hh:821
ConstHalfedgeIter CHIter
Alias typedef.
Definition: PolyConnectivity.hh:327
FaceEdgeCWIter fe_cwbegin(FaceHandle _fh)
face - edge circulator cw
Definition: PolyConnectivity.hh:858
HalfedgeLoopCCWIter hl_ccwbegin(HalfedgeHandle _heh)
halfedge circulator ccw
Definition: PolyConnectivity.hh:879
HalfedgeIter halfedges_begin()
Begin iterator for halfedges.
Definition: PolyConnectivity.cc:649
static const HalfedgeHandle InvalidHalfedgeHandle
Invalid handle.
Definition: PolyConnectivity.hh:69
FaceHalfedgeIter fh_iter(FaceHandle _fh)
face - halfedge circulator
Definition: PolyConnectivity.hh:677
FaceFaceCWIter ConstFaceFaceCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:297
ConstVertexEdgeCCWIter cve_ccwiter(VertexHandle _vh) const
const vertex - edge circulator ccw
Definition: PolyConnectivity.hh:655
ConstVertexOHalfedgeCCWIter cvoh_ccwend(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:1001
FaceHalfedgeCCWIter ConstFaceHalfedgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:292
VertexOHalfedgeCWIter voh_cwbegin(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:765
ConstFaceEdgeIter cfe_begin(FaceHandle _fh) const
const face - edge circulator
Definition: PolyConnectivity.hh:901
EdgeIter edges_begin()
Begin iterator for edges.
Definition: PolyConnectivity.cc:673
VertexOHalfedgeIter voh_end(VertexHandle _vh)
vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:949
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::VertexHandle, &Iterators::GenericCirculatorBaseT< This >::toVertexHandle, false > FaceVertexCWIter
Enumerate incident vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:237
ConstVertexIHalfedgeCCWIter cvih_ccwbegin(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:806
FaceEdgeCWIter fe_cwiter(FaceHandle _fh)
face - edge circulator cw
Definition: PolyConnectivity.hh:689
ConstVertexOHalfedgeCWIter cvoh_cwbegin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:812
ConstFaceEdgeCCWIter CFECCWIter
Alias typedef.
Definition: PolyConnectivity.hh:380
ConstVertexIHalfedgeCCWIter cvih_ccwiter(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:637
FaceEdgeCWIter fe_cwend(FaceHandle _fh)
face - edge circulator cw
Definition: PolyConnectivity.hh:1044
ConstFaceEdgeCCWIter cfe_ccwbegin(FaceHandle _fh) const
const face - edge circulator ccw
Definition: PolyConnectivity.hh:907
ConstFaceVertexCWIter cfv_cwiter(FaceHandle _fh) const
const face - vertex circulator cw
Definition: PolyConnectivity.hh:708
VertexOHalfedgeCWIter voh_cwiter(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:597
VertexEdgeCWIter ve_cwbegin(VertexHandle _vh)
vertex - edge circulator cw
Definition: PolyConnectivity.hh:774
Iterators::GenericCirculatorT< This, This::VertexHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toFaceHandle > VertexFaceCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:164
ConstHalfedgeIter halfedges_sbegin() const
Const begin iterator for halfedges.
Definition: PolyConnectivity.hh:550
Iterators::GenericCirculatorT< This, This::FaceHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toOppositeFaceHandle > FaceFaceCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:278
ConstEdgeIter CEIter
Alias typedef.
Definition: PolyConnectivity.hh:328
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
ConstFaceVertexIter CFVIter
Alias typedef.
Definition: PolyConnectivity.hh:372
VertexVertexCCWIter ConstVertexVertexCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:205
ConstVertexOHalfedgeIter CVOHIter
Alias typedef.
Definition: PolyConnectivity.hh:360
FaceVertexCCWIter fv_ccwiter(FaceHandle _fh)
face - vertex circulator ccw
Definition: PolyConnectivity.hh:674
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::GenericIteratorT< This, This::VertexHandle, ArrayKernel, &ArrayKernel::has_vertex_status, &ArrayKernel::n_vertices > VertexIter
Linear iterator.
Definition: PolyConnectivity.hh:86
VertexVertexCCWIter vv_ccwbegin(VertexHandle _vh)
vertex - vertex circulator ccw
Definition: PolyConnectivity.hh:750
HalfedgeLoopCWIter hl_cwbegin(HalfedgeHandle _heh)
halfedge circulator
Definition: PolyConnectivity.hh:876
FaceFaceCCWIter ConstFaceFaceCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:298
ConstFaceEdgeIter CFEIter
Alias typedef.
Definition: PolyConnectivity.hh:378
ConstFaceHalfedgeRange fh_range(FaceHandle _fh) const
Definition: PolyConnectivity.hh:1305
PolyConnectivity()
Alias typedef.
Definition: PolyConnectivity.hh:388
VertexOHalfedgeCWIter ConstVertexOHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:207
FaceEdgeCWIter ConstFaceEdgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:294
ConstVertexIHalfedgeCWIter CVIHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:364
ConstVertexVertexCCWIter cvv_ccwend(VertexHandle _vh) const
const vertex circulator ccw
Definition: PolyConnectivity.hh:983
ConstFaceHalfedgeIter CFHIter
Alias typedef.
Definition: PolyConnectivity.hh:375
ConstFaceVertexCWIter CFVCWIter
Alias typedef.
Definition: PolyConnectivity.hh:373
VertexFaceIter VFIter
Alias typedef.
Definition: PolyConnectivity.hh:343
Iterators::GenericCirculatorT< This, This::FaceHandle, This::EdgeHandle, &Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > FaceEdgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:262
EntityRange< const PolyConnectivity, PolyConnectivity::ConstVertexIter, &PolyConnectivity::vertices_begin, &PolyConnectivity::vertices_end > ConstVertexRange
Definition: PolyConnectivity.hh:1137
ConstVertexFaceIter cvf_end(VertexHandle _vh) const
const vertex - face circulator
Definition: PolyConnectivity.hh:1013
HalfedgeLoopCCWIter ConstHalfedgeLoopCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:305
ConstVertexOHalfedgeCCWIter CVOHCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:362
FaceFaceCCWIter ff_ccwend(FaceHandle _fh)
face - face circulator ccw
Definition: PolyConnectivity.hh:1056
HalfedgeIter HIter
Alias typedef.
Definition: PolyConnectivity.hh:322
ConstVertexVertexIter cvv_end(VertexHandle _vh) const
const vertex circulator
Definition: PolyConnectivity.hh:977
VertexOHalfedgeCCWIter voh_ccwiter(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:600
ConstHalfedgeRange halfedges() const
Definition: PolyConnectivity.hh:1164
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
VertexEdgeIter ConstVertexEdgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:215
CirculatorRange< PolyConnectivity, ConstVertexOHalfedgeIter, VertexHandle, &PolyConnectivity::cvoh_begin, &PolyConnectivity::cvoh_end > ConstVertexOHalfedgeRange
Definition: PolyConnectivity.hh:1215
VertexEdgeIter ve_end(VertexHandle _vh)
vertex - edge circulator
Definition: PolyConnectivity.hh:958
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::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toOppositeHalfedgeHandle > VertexIHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:148
HalfedgeLoopIter ConstHalfedgeLoopIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:303
ConstFaceVertexCWIter cfv_cwbegin(FaceHandle _fh) const
const face - vertex circulator cw
Definition: PolyConnectivity.hh:886
HalfedgeHandle HHandle
Alias typedef.
Definition: PolyConnectivity.hh:317
FaceIter faces_sbegin()
Begin iterator for faces.
Definition: PolyConnectivity.hh:561
ConstFaceFaceCWIter cff_cwbegin(FaceHandle _fh) const
const face - face circulator cw
Definition: PolyConnectivity.hh:913
ConstVertexEdgeCWIter cve_cwiter(VertexHandle _vh) const
const vertex - edge circulator cw
Definition: PolyConnectivity.hh:652
static bool is_triangles()
Alias typedef.
Definition: PolyConnectivity.hh:391
VertexFaceCCWIter vf_ccwiter(VertexHandle _vh)
vertex - face circulator ccw
Definition: PolyConnectivity.hh:618
ConstFaceFaceCWIter CFFCWIter
Alias typedef.
Definition: PolyConnectivity.hh:382
VertexIHalfedgeIter VIHIter
Alias typedef.
Definition: PolyConnectivity.hh:337
ConstVertexOHalfedgeIter cvoh_begin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:809
ConstHalfedgeLoopCCWIter chl_ccwbegin(HalfedgeHandle _heh) const
const halfedge circulator ccw
Definition: PolyConnectivity.hh:925
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
VertexFaceIter ConstVertexFaceIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:212
VertexIter VIter
Alias typedef.
Definition: PolyConnectivity.hh:321
ConstFaceVertexCCWIter cfv_ccwend(FaceHandle _fh) const
const face - vertex circulator ccw
Definition: PolyConnectivity.hh:1075
ConstVertexIter vertices_sbegin() const
Const begin iterator for vertices.
Definition: PolyConnectivity.hh:543
Iterators::GenericCirculatorT< This, This::FaceHandle, This::VertexHandle, &Iterators::GenericCirculatorBaseT< This >::toVertexHandle > FaceVertexCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:230
VertexIter ConstVertexIter
Linear iterator.
Definition: PolyConnectivity.hh:91
ConstVertexFaceIter cvf_begin(VertexHandle _vh) const
const vertex - face circulator
Definition: PolyConnectivity.hh:827
Iterators::GenericIteratorT< This, This::FaceHandle, ArrayKernel, &ArrayKernel::has_face_status, &ArrayKernel::n_faces > FaceIter
Linear iterator.
Definition: PolyConnectivity.hh:89
FaceVertexIter ConstFaceVertexIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:287
VertexEdgeIter ve_begin(VertexHandle _vh)
vertex - edge circulator
Definition: PolyConnectivity.hh:771
ConstVertexFaceCCWIter cvf_ccwend(VertexHandle _vh) const
const vertex - face circulator ccw
Definition: PolyConnectivity.hh:1019
VertexIter vertices_sbegin()
Begin iterator for vertices.
Definition: PolyConnectivity.hh:540
FaceHalfedgeCWIter fh_cwbegin(FaceHandle _fh)
face - halfedge circulator cw
Definition: PolyConnectivity.hh:849
VertexIHalfedgeCCWIter ConstVertexIHalfedgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:211
VertexIHalfedgeCWIter vih_cwiter(VertexHandle _vh)
vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:588
ConstVertexEdgeCWIter CVECWIter
Alias typedef.
Definition: PolyConnectivity.hh:367
VertexFaceCWIter ConstVertexFaceCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:213
ConstFaceHalfedgeCWIter cfh_cwiter(FaceHandle _fh) const
const face - halfedge circulator cw
Definition: PolyConnectivity.hh:717
VertexVertexIter vv_iter(VertexHandle _vh)
vertex - vertex circulator
Definition: PolyConnectivity.hh:576
FaceEdgeCCWIter FECWWIter
Alias typedef.
Definition: PolyConnectivity.hh:354
FaceHalfedgeIter FHIter
Alias typedef.
Definition: PolyConnectivity.hh:349
ConstVertexVertexCWIter cvv_cwiter(VertexHandle _vh) const
const vertex circulator cw
Definition: PolyConnectivity.hh:625
ConstVertexOHalfedgeCCWIter cvoh_ccwiter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:646
FaceFaceCWIter ff_cwiter(FaceHandle _fh)
face - face circulator cw
Definition: PolyConnectivity.hh:698
EntityRange< const PolyConnectivity, PolyConnectivity::ConstEdgeIter, &PolyConnectivity::edges_begin, &PolyConnectivity::edges_end > ConstEdgeRange
Definition: PolyConnectivity.hh:1147
ConstFaceHalfedgeCCWIter cfh_ccwiter(FaceHandle _fh) const
const face - halfedge circulator ccw
Definition: PolyConnectivity.hh:720
Iterators::GenericCirculatorT_DEPRECATED< This, This::FaceHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > HalfedgeLoopIter
Identical to FaceHalfedgeIter.
Definition: PolyConnectivity.hh:193
FaceVertexIter fv_end(FaceHandle _fh)
face - vertex circulator
Definition: PolyConnectivity.hh:1023
CirculatorRange< PolyConnectivity, ConstFaceHalfedgeIter, FaceHandle, &PolyConnectivity::cfh_begin, &PolyConnectivity::cfh_end > ConstFaceHalfedgeRange
Definition: PolyConnectivity.hh:1239
bool is_boundary(EdgeHandle _eh) const
Is the edge a boundary edge?
Definition: PolyConnectivity.hh:1350
const Edge & deref(EdgeHandle _h) const
Get item from handle.
Definition: PolyConnectivity.hh:1557
ConstVertexRange vertices() const
Definition: PolyConnectivity.hh:1158
Iterators::GenericCirculatorT< This, This::VertexHandle, This::VertexHandle, &Iterators::GenericCirculatorBaseT< This >::toVertexHandle > VertexVertexCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:116
FaceEdgeIter fe_begin(FaceHandle _fh)
face - edge circulator
Definition: PolyConnectivity.hh:855
ConstVertexIHalfedgeCCWIter cvih_ccwend(VertexHandle _vh) const
const vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:992
ConstVertexVertexCCWIter cvv_ccwbegin(VertexHandle _vh) const
const vertex circulator ccw
Definition: PolyConnectivity.hh:797
virtual ~PolyConnectivity()
Alias typedef.
Definition: PolyConnectivity.hh:389
ConstVertexEdgeIter cve_iter(VertexHandle _vh) const
const vertex - edge circulator
Definition: PolyConnectivity.hh:649
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
CirculatorRange< PolyConnectivity, ConstVertexIHalfedgeIter, VertexHandle, &PolyConnectivity::cvih_begin, &PolyConnectivity::cvih_end > ConstVertexIHalfedgeRange
Definition: PolyConnectivity.hh:1210
VertexEdgeCWIter VECWIter
Alias typedef.
Definition: PolyConnectivity.hh:341
CirculatorRange< PolyConnectivity, ConstFaceFaceIter, FaceHandle, &PolyConnectivity::cff_begin, &PolyConnectivity::cff_end > ConstFaceFaceRange
Definition: PolyConnectivity.hh:1251
static const FaceHandle InvalidFaceHandle
Invalid handle.
Definition: PolyConnectivity.hh:73
ConstFaceHalfedgeIter cfh_end(FaceHandle _fh) const
const face - halfedge circulator
Definition: PolyConnectivity.hh:1078
Iterators::GenericIteratorT< This, This::EdgeHandle, ArrayKernel, &ArrayKernel::has_edge_status, &ArrayKernel::n_edges > EdgeIter
Linear iterator.
Definition: PolyConnectivity.hh:88
ConstVertexIHalfedgeCWIter cvih_cwbegin(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:803
VertexIHalfedgeCWIter vih_cwend(VertexHandle _vh)
vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:943
CirculatorRange< PolyConnectivity, ConstFaceVertexIter, FaceHandle, &PolyConnectivity::cfv_begin, &PolyConnectivity::cfv_end > ConstFaceVertexRange
Definition: PolyConnectivity.hh:1233
ConstVertexEdgeCCWIter CVECCWIter
Alias typedef.
Definition: PolyConnectivity.hh:368
FaceEdgeIter fe_end(FaceHandle _fh)
face - edge circulator
Definition: PolyConnectivity.hh:1041
VertexEdgeCCWIter ve_ccwiter(VertexHandle _vh)
vertex - edge circulator ccw
Definition: PolyConnectivity.hh:609
ConstVertexVertexCCWIter CVVCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:359
ConstVertexVertexCWIter cvv_cwbegin(VertexHandle _vh) const
const vertex circulator cw
Definition: PolyConnectivity.hh:794
VertexVertexCCWIter vv_ccwend(VertexHandle _vh)
vertex - vertex circulator ccw
Definition: PolyConnectivity.hh:937
FaceHalfedgeCCWIter FHCWWIter
Alias typedef.
Definition: PolyConnectivity.hh:351
ConstHalfedgeLoopCWIter chl_cwend(HalfedgeHandle _heh) const
const face - face circulator cw
Definition: PolyConnectivity.hh:1108
bool is_boundary(VertexHandle _vh) const
Is vertex _vh a boundary vertex ?
Definition: PolyConnectivity.hh:1367
FaceHalfedgeCWIter fh_cwiter(FaceHandle _fh)
face - halfedge circulator cw
Definition: PolyConnectivity.hh:680
ConstVertexEdgeRange ve_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1281
VertexFaceCWIter vf_cwend(VertexHandle _vh)
vertex - face circulator cw
Definition: PolyConnectivity.hh:970
ConstVertexFaceCWIter cvf_cwiter(VertexHandle _vh) const
const vertex - face circulator cw
Definition: PolyConnectivity.hh:661
VertexFaceCCWIter vf_ccwbegin(VertexHandle _vh)
vertex - face circulator ccw
Definition: PolyConnectivity.hh:786
ConstFaceVertexIter cfv_begin(FaceHandle _fh) const
const face - vertex circulator
Definition: PolyConnectivity.hh:883
FaceEdgeCCWIter ConstFaceEdgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:295
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
VertexOHalfedgeCCWIter voh_ccwend(VertexHandle _vh)
vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:955
ConstFaceEdgeCCWIter cfe_ccwiter(FaceHandle _fh) const
const face - edge circulator ccw
Definition: PolyConnectivity.hh:729
CirculatorRange< PolyConnectivity, ConstVertexFaceIter, VertexHandle, &PolyConnectivity::cvf_begin, &PolyConnectivity::cvf_end > ConstVertexFaceRange
Definition: PolyConnectivity.hh:1227
ConstVertexVertexCWIter CVVCWIter
Alias typedef.
Definition: PolyConnectivity.hh:358
ConstFaceVertexIter cfv_end(FaceHandle _fh) const
const face - vertex circulator
Definition: PolyConnectivity.hh:1069
ConstVertexFaceCWIter cvf_cwend(VertexHandle _vh) const
const vertex - face circulator cw
Definition: PolyConnectivity.hh:1016
HalfedgeIter halfedges_sbegin()
Begin iterator for halfedges.
Definition: PolyConnectivity.hh:547
VertexIHalfedgeCCWIter vih_ccwend(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:946
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
VertexOHalfedgeCCWIter ConstVertexOHalfedgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:208
FaceVertexIter fv_begin(FaceHandle _fh)
face - vertex circulator
Definition: PolyConnectivity.hh:837
ConstFaceEdgeIter cfe_iter(FaceHandle _fh) const
const face - edge circulator
Definition: PolyConnectivity.hh:723
VertexFaceCCWIter vf_ccwend(VertexHandle _vh)
vertex - face circulator ccw
Definition: PolyConnectivity.hh:973
CirculatorRange< PolyConnectivity, ConstFaceEdgeIter, FaceHandle, &PolyConnectivity::cfe_begin, &PolyConnectivity::cfe_end > ConstFaceEdgeRange
Definition: PolyConnectivity.hh:1245
ConstVertexIHalfedgeRange vih_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1265
FaceEdgeCCWIter fe_ccwbegin(FaceHandle _fh)
face - edge circulator ccw
Definition: PolyConnectivity.hh:861
FaceHalfedgeIter fh_end(FaceHandle _fh)
face - halfedge circulator
Definition: PolyConnectivity.hh:1032
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
ConstVertexVertexIter cvv_begin(VertexHandle _vh) const
const vertex circulator
Definition: PolyConnectivity.hh:791
ConstVertexOHalfedgeCWIter CVOHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:361
VertexEdgeCWIter ve_cwend(VertexHandle _vh)
vertex - edge circulator cw
Definition: PolyConnectivity.hh:961
FaceHalfedgeIter ConstFaceHalfedgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:290
VertexOHalfedgeCWIter VOHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:335
ConstEdgeRange edges() const
Definition: PolyConnectivity.hh:1170
FaceVertexCWIter FVCWIter
Alias typedef.
Definition: PolyConnectivity.hh:347
Face & deref(FaceHandle _h)
Get item from handle.
Definition: PolyConnectivity.hh:1560
ConstVertexOHalfedgeCCWIter cvoh_ccwbegin(VertexHandle _vh) const
const vertex - outgoing halfedge circulator ccw
Definition: PolyConnectivity.hh:815
static const VertexHandle InvalidVertexHandle
Invalid handle.
Definition: PolyConnectivity.hh:67
VertexIter vertices_begin()
Begin iterator for vertices.
Definition: PolyConnectivity.cc:625
ConstVertexEdgeCCWIter cve_ccwend(VertexHandle _vh) const
const vertex - edge circulator ccw
Definition: PolyConnectivity.hh:1010
ConstFaceIter CFIter
Alias typedef.
Definition: PolyConnectivity.hh:329
VertexVertexCWIter vv_cwend(VertexHandle _vh)
vertex - vertex circulator cw
Definition: PolyConnectivity.hh:934
HalfedgeIter ConstHalfedgeIter
Linear iterator.
Definition: PolyConnectivity.hh:92
VertexVertexCWIter vv_cwiter(VertexHandle _vh)
vertex - vertex circulator cw
Definition: PolyConnectivity.hh:579
ConstVertexEdgeCWIter cve_cwend(VertexHandle _vh) const
const vertex - edge circulator cw
Definition: PolyConnectivity.hh:1007
VertexVertexCCWIter vv_ccwiter(VertexHandle _vh)
vertex - vertex circulator ccw
Definition: PolyConnectivity.hh:582
ConstFaceEdgeIter cfe_end(FaceHandle _fh) const
const face - edge circulator
Definition: PolyConnectivity.hh:1087
FaceVertexCCWIter fv_ccwbegin(FaceHandle _fh)
face - vertex circulator ccw
Definition: PolyConnectivity.hh:843
HalfedgeLoopIter hl_begin(HalfedgeHandle _heh)
halfedge circulator
Definition: PolyConnectivity.hh:873
VertexEdgeCCWIter ve_ccwend(VertexHandle _vh)
vertex - edge circulator ccw
Definition: PolyConnectivity.hh:964
FaceVertexCCWIter ConstFaceVertexCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:289
ConstFaceEdgeCWIter cfe_cwiter(FaceHandle _fh) const
const face - edge circulator cw
Definition: PolyConnectivity.hh:726
static const EdgeHandle InvalidEdgeHandle
Invalid handle.
Definition: PolyConnectivity.hh:71
VertexHandle add_vertex()
Add a new vertex.
Definition: PolyConnectivity.hh:404
ConstFaceEdgeCCWIter cfe_ccwend(FaceHandle _fh) const
const face - edge circulator ccw
Definition: PolyConnectivity.hh:1093
Halfedge & deref(HalfedgeHandle _h)
Get item from handle.
Definition: PolyConnectivity.hh:1556
ConstFaceFaceIter cff_iter(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:732
FaceEdgeCCWIter fe_ccwend(FaceHandle _fh)
face - edge circulator ccw
Definition: PolyConnectivity.hh:1047
ConstVertexVertexCWIter cvv_cwend(VertexHandle _vh) const
const vertex circulator cw
Definition: PolyConnectivity.hh:980
ConstFaceEdgeCWIter cfe_cwbegin(FaceHandle _fh) const
const face - edge circulator cw
Definition: PolyConnectivity.hh:904
FaceEdgeIter FEIter
Alias typedef.
Definition: PolyConnectivity.hh:352
ConstEdgeIter edges_sbegin() const
Const begin iterator for edges.
Definition: PolyConnectivity.hh:557
FaceEdgeIter ConstFaceEdgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:293
ConstVertexEdgeIter CVEIter
Alias typedef.
Definition: PolyConnectivity.hh:366
Iterators::GenericCirculatorT< This, This::VertexHandle, This::EdgeHandle, &Iterators::GenericCirculatorBaseT< This >::toEdgeHandle > VertexEdgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:180
VertexIHalfedgeCCWIter vih_ccwbegin(VertexHandle _vh)
vertex - incoming halfedge circulator ccw
Definition: PolyConnectivity.hh:759
FaceIter faces_end()
End iterator for faces.
Definition: PolyConnectivity.cc:709
void assign_connectivity(const PolyConnectivity &_other)
assign_connectivity() method.
Definition: PolyConnectivity.hh:396
FaceVertexCWIter fv_cwiter(FaceHandle _fh)
face - vertex circulator cw
Definition: PolyConnectivity.hh:671
Iterators::GenericCirculatorT< This, This::FaceHandle, This::EdgeHandle, &Iterators::GenericCirculatorBaseT< This >::toEdgeHandle, false > FaceEdgeCWIter
Enumerate incident edges in a clockwise fashion.
Definition: PolyConnectivity.hh:269
ConstHalfedgeLoopCWIter chl_cwbegin(HalfedgeHandle _heh) const
const halfedge circulator cw
Definition: PolyConnectivity.hh:922
VertexOHalfedgeCCWIter VOHCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:336
HalfedgeLoopCCWIter hl_ccwend(HalfedgeHandle _heh)
face - face circulator ccw
Definition: PolyConnectivity.hh:1065
FaceFaceCCWIter ff_ccwiter(FaceHandle _fh)
face - face circulator ccw
Definition: PolyConnectivity.hh:701
EdgeHandle EHandle
Alias typedef.
Definition: PolyConnectivity.hh:318
VertexFaceCWIter vf_cwiter(VertexHandle _vh)
vertex - face circulator cw
Definition: PolyConnectivity.hh:615
FaceHandle FHandle
Alias typedef.
Definition: PolyConnectivity.hh:319
VertexFaceCWIter vf_cwbegin(VertexHandle _vh)
vertex - face circulator cw
Definition: PolyConnectivity.hh:783
VertexVertexCWIter vv_cwbegin(VertexHandle _vh)
vertex - vertex circulator cw
Definition: PolyConnectivity.hh:747
ConstFaceEdgeCWIter CFECWIter
Alias typedef.
Definition: PolyConnectivity.hh:379
ConstVertexFaceCCWIter cvf_ccwiter(VertexHandle _vh) const
const vertex - face circulator ccw
Definition: PolyConnectivity.hh:664
ConstVertexEdgeIter cve_begin(VertexHandle _vh) const
const vertex - edge circulator
Definition: PolyConnectivity.hh:818
ConstFaceFaceIter CFFIter
Alias typedef.
Definition: PolyConnectivity.hh:381
FaceFaceCCWIter ff_ccwbegin(FaceHandle _fh)
face - face circulator ccw
Definition: PolyConnectivity.hh:870
VertexFaceCCWIter ConstVertexFaceCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:214
ConstFaceHalfedgeIter cfh_begin(FaceHandle _fh) const
const face - halfedge circulator
Definition: PolyConnectivity.hh:892
HalfedgeLoopCWIter hl_cwend(HalfedgeHandle _heh)
face - face circulator cw
Definition: PolyConnectivity.hh:1062
ConstFaceFaceCCWIter cff_ccwiter(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:738
VertexOHalfedgeIter ConstVertexOHalfedgeIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:206
ConstVertexEdgeIter cve_end(VertexHandle _vh) const
const vertex - edge circulator
Definition: PolyConnectivity.hh:1004
VertexVertexIter vv_begin(VertexHandle _vh)
vertex - vertex circulator
Definition: PolyConnectivity.hh:744
ConstVertexVertexIter cvv_iter(VertexHandle _vh) const
const vertex circulator
Definition: PolyConnectivity.hh:622
VertexIHalfedgeCWIter VIHICWter
Alias typedef.
Definition: PolyConnectivity.hh:338
ConstFaceVertexIter cfv_iter(FaceHandle _fh) const
const face - vertex circulator
Definition: PolyConnectivity.hh:705
VertexEdgeIter VEIter
Alias typedef.
Definition: PolyConnectivity.hh:340
FaceEdgeIter fe_iter(FaceHandle _fh)
face - edge circulator
Definition: PolyConnectivity.hh:686
FaceIter ConstFaceIter
Linear iterator.
Definition: PolyConnectivity.hh:94
ConstFaceHalfedgeCWIter cfh_cwend(FaceHandle _fh) const
const face - halfedge circulator cw
Definition: PolyConnectivity.hh:1081
VertexOHalfedgeIter VOHIter
Alias typedef.
Definition: PolyConnectivity.hh:334
ConstVertexIHalfedgeIter cvih_iter(VertexHandle _vh) const
const vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:631
FaceHalfedgeCCWIter fh_ccwbegin(FaceHandle _fh)
face - halfedge circulator ccw
Definition: PolyConnectivity.hh:852
EntityRange< const PolyConnectivity, PolyConnectivity::ConstHalfedgeIter, &PolyConnectivity::halfedges_begin, &PolyConnectivity::halfedges_end > ConstHalfedgeRange
Definition: PolyConnectivity.hh:1142
ConstFaceFaceCCWIter cff_ccwend(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:1102
ConstVertexFaceIter cvf_iter(VertexHandle _vh) const
const vertex - face circulator
Definition: PolyConnectivity.hh:658
ConstFaceRange faces() const
Definition: PolyConnectivity.hh:1176
VertexIHalfedgeCWIter ConstVertexIHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:210
VertexEdgeCWIter ConstVertexEdgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:216
ConstFaceEdgeRange fe_range(FaceHandle _fh) const
Definition: PolyConnectivity.hh:1313
ConstVertexFaceCWIter CVFCWIter
Alias typedef.
Definition: PolyConnectivity.hh:370
bool is_boundary(HalfedgeHandle _heh) const
Check if the halfedge is at the boundary.
Definition: PolyConnectivity.hh:1339
ConstFaceFaceRange ff_range(FaceHandle _fh) const
Definition: PolyConnectivity.hh:1321
VertexOHalfedgeIter voh_iter(VertexHandle _vh)
vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:594
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< This, This::VertexHandle, This::FaceHandle, &Iterators::GenericCirculatorBaseT< This >::toFaceHandle, false > VertexFaceCCWIter
Enumerates incident faces in a counter clockwise fashion.
Definition: PolyConnectivity.hh:171
ConstFaceHalfedgeCCWIter cfh_ccwbegin(FaceHandle _fh) const
const face - halfedge circulator ccw
Definition: PolyConnectivity.hh:898
ConstVertexVertexCCWIter cvv_ccwiter(VertexHandle _vh) const
const vertex circulator ccw
Definition: PolyConnectivity.hh:628
ConstFaceFaceIter cff_begin(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:910
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > HalfedgeLoopCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:195
VertexIHalfedgeCWIter vih_cwbegin(VertexHandle _vh)
vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:756
VertexVertexCWIter ConstVertexVertexCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:204
ConstFaceHalfedgeCCWIter cfh_ccwend(FaceHandle _fh) const
const face - halfedge circulator ccw
Definition: PolyConnectivity.hh:1084
ConstFaceVertexCCWIter cfv_ccwiter(FaceHandle _fh) const
const face - vertex circulator ccw
Definition: PolyConnectivity.hh:711
VertexEdgeCCWIter ConstVertexEdgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:217
VertexVertexIter ConstVertexVertexIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:203
FaceVertexIter fv_iter(FaceHandle _fh)
face - vertex circulator
Definition: PolyConnectivity.hh:668
VertexEdgeCCWIter ve_ccwbegin(VertexHandle _vh)
vertex - edge circulator ccw
Definition: PolyConnectivity.hh:777
VertexIHalfedgeIter vih_iter(VertexHandle _vh)
vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:585
VertexVertexIter vv_end(VertexHandle _vh)
vertex - vertex circulator
Definition: PolyConnectivity.hh:931
VertexFaceCWIter VFCWIter
Alias typedef.
Definition: PolyConnectivity.hh:344
FaceVertexCCWIter fv_ccwend(FaceHandle _fh)
face - vertex circulator ccw
Definition: PolyConnectivity.hh:1029
ConstVertexOHalfedgeRange voh_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1273
ConstFaceVertexRange fv_range(FaceHandle _fh) const
Definition: PolyConnectivity.hh:1297
FaceHalfedgeCWIter ConstFaceHalfedgeCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:291
ConstFaceFaceCWIter cff_cwiter(FaceHandle _fh) const
const face - face circulator cw
Definition: PolyConnectivity.hh:735
ConstVertexIHalfedgeCWIter cvih_cwiter(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:634
ConstVertexFaceRange vf_range(VertexHandle _vh) const
Definition: PolyConnectivity.hh:1289
FaceFaceCWIter ff_cwend(FaceHandle _fh)
face - face circulator cw
Definition: PolyConnectivity.hh:1053
ConstVertexFaceCCWIter cvf_ccwbegin(VertexHandle _vh) const
const vertex - face circulator ccw
Definition: PolyConnectivity.hh:833
Iterators::GenericCirculatorT< This, This::FaceHandle, This::HalfedgeHandle, &Iterators::GenericCirculatorBaseT< This >::toHalfedgeHandle > FaceHalfedgeCCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:246
ConstFaceFaceIter cff_end(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:1096
FaceFaceIter ff_iter(FaceHandle _fh)
face - face circulator
Definition: PolyConnectivity.hh:695
const Vertex & deref(VertexHandle _h) const
Get item from handle.
Definition: PolyConnectivity.hh:1553
VertexIter vertices_end()
End iterator for vertices.
Definition: PolyConnectivity.cc:637
Vertex & deref(VertexHandle _h)
Get item from handle.
Definition: PolyConnectivity.hh:1554
VertexEdgeCWIter ve_cwiter(VertexHandle _vh)
vertex - edge circulator cw
Definition: PolyConnectivity.hh:606
FaceFaceIter ff_begin(FaceHandle _fh)
face - face circulator
Definition: PolyConnectivity.hh:864
ConstFaceFaceCWIter cff_cwend(FaceHandle _fh) const
const face - face circulator
Definition: PolyConnectivity.hh:1099
VertexOHalfedgeCWIter voh_cwend(VertexHandle _vh)
vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:952
ConstFaceHalfedgeCWIter CFHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:376
const Face & deref(FaceHandle _h) const
Get item from handle.
Definition: PolyConnectivity.hh:1559
FaceIter faces_begin()
Begin iterator for faces.
Definition: PolyConnectivity.cc:697
VertexFaceIter vf_begin(VertexHandle _vh)
vertex - face circulator
Definition: PolyConnectivity.hh:780
FaceVertexIter FVIter
Alias typedef.
Definition: PolyConnectivity.hh:346
FaceFaceIter FFIter
Alias typedef.
Definition: PolyConnectivity.hh:355
FaceHalfedgeCWIter FHCWIter
Alias typedef.
Definition: PolyConnectivity.hh:350
FaceHalfedgeCCWIter fh_ccwend(FaceHandle _fh)
face - halfedge circulator ccw
Definition: PolyConnectivity.hh:1038
FaceHandle opposite_face_handle(HalfedgeHandle _heh) const
returns the face handle of the opposite halfedge
Definition: PolyConnectivity.hh:1401
ConstVertexIHalfedgeIter cvih_end(VertexHandle _vh) const
const vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:986
VertexOHalfedgeIter voh_begin(VertexHandle _vh)
vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:762
EdgeIter edges_sbegin()
Begin iterator for edges.
Definition: PolyConnectivity.hh:554
ConstFaceFaceCCWIter CFFCCWIter
Alias typedef.
Definition: PolyConnectivity.hh:383
VertexIHalfedgeCCWIter VIHICCWter
Alias typedef.
Definition: PolyConnectivity.hh:339
ConstFaceIter faces_sbegin() const
Const begin iterator for faces.
Definition: PolyConnectivity.hh:564
ConstVertexOHalfedgeIter cvoh_iter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator
Definition: PolyConnectivity.hh:640
VertexFaceIter vf_end(VertexHandle _vh)
vertex - face circulator
Definition: PolyConnectivity.hh:967
ConstFaceFaceCCWIter cff_ccwbegin(FaceHandle _fh) const
const face - face circulator ccw
Definition: PolyConnectivity.hh:916
EntityRange< const PolyConnectivity, PolyConnectivity::ConstFaceIter, &PolyConnectivity::faces_begin, &PolyConnectivity::faces_end > ConstFaceRange
Definition: PolyConnectivity.hh:1152
ConstVertexIHalfedgeIter CVIHIter
Alias typedef.
Definition: PolyConnectivity.hh:363
ConstVertexIHalfedgeCWIter cvih_cwend(VertexHandle _vh) const
const vertex - incoming halfedge circulator cw
Definition: PolyConnectivity.hh:989
VertexEdgeIter ve_iter(VertexHandle _vh)
vertex - edge circulator
Definition: PolyConnectivity.hh:603
VertexEdgeCCWIter VECCWIter
Alias typedef.
Definition: PolyConnectivity.hh:342
ConstVertexIHalfedgeIter cvih_begin(VertexHandle _vh) const
const vertex - incoming halfedge circulator
Definition: PolyConnectivity.hh:800
ConstHalfedgeLoopCCWIter chl_ccwend(HalfedgeHandle _heh) const
const face - face circulator ccw
Definition: PolyConnectivity.hh:1111
ConstHalfedgeLoopIter chl_end(HalfedgeHandle _heh) const
const face - face circulator
Definition: PolyConnectivity.hh:1105
ConstFaceEdgeCWIter cfe_cwend(FaceHandle _fh) const
const face - edge circulator cw
Definition: PolyConnectivity.hh:1090
HalfedgeLoopIter hl_end(HalfedgeHandle _heh)
face - face circulator
Definition: PolyConnectivity.hh:1059
FaceVertexCWIter ConstFaceVertexCWIter
Enumerates 1-ring vertices in a clockwise fashion.
Definition: PolyConnectivity.hh:288
FaceIter FIter
Alias typedef.
Definition: PolyConnectivity.hh:324
FaceFaceCWIter ff_cwbegin(FaceHandle _fh)
face - face circulator cw
Definition: PolyConnectivity.hh:867
ConstVertexOHalfedgeCWIter cvoh_cwiter(VertexHandle _vh) const
const vertex - outgoing halfedge circulator cw
Definition: PolyConnectivity.hh:643
ConstVertexFaceIter CVFIter
Alias typedef.
Definition: PolyConnectivity.hh:369
Generic class for vertex/halfedge/edge/face ranges.
Definition: PolyConnectivity.hh:1124
Generic class for iterator ranges.
Definition: PolyConnectivity.hh:1185

Project OpenMesh, ©  Computer Graphics Group, RWTH Aachen. Documentation generated using doxygen .