00001 #ifndef DEF_BOUNDARY_VERTEX_FACE_ITER 00002 #define DEF_BOUNDARY_VERTEX_FACE_ITER 00003 00004 #include "Common.hh" 00005 #include <OpenMesh/Core/Mesh/CirculatorsT.hh> 00006 00007 typedef OpenMesh::Iterators::VertexFaceIterT<OpenMesh::PolyConnectivity> VFI; 00008 00009 00011 class BoundaryVertexFaceIter : 00012 public VFI 00013 { 00014 00015 // using OriginalMesh::VertexFaceIter; 00016 00017 public : 00018 BoundaryVertexFaceIter(mesh_ref _mesh, OriginalMesh::VertexHandle _start); 00019 00021 BoundaryVertexFaceIter(VFI vf_iter); 00022 00024 BoundaryVertexFaceIter& operator++(); 00025 00027 BoundaryVertexFaceIter& operator--(); 00028 00030 Vertex get_vertex1() const; 00031 00033 Vertex get_vertex2() const; 00034 00035 protected : 00036 bool is_face_on_boundary(); 00037 00038 private : 00039 00040 unsigned int tile_id_; 00041 00042 bool first_elem; 00043 00044 OpenMesh::VPropHandleT<unsigned int> tile_id_prop_; 00045 00046 // disabled operations 00048 BoundaryVertexFaceIter(BoundaryVertexFaceIter const & _rhs) ; 00049 00051 BoundaryVertexFaceIter& operator=(const BoundaryVertexFaceIter& _rhs); 00052 00053 }; 00054 00055 00056 00057 #endif