#line 1 "/user/cvsspst/ees1cg/RAVL/RAVL-0.7/3D/Mesh/HEMeshVertexIter.hh" // This file is part of RAVL, Recognition And Vision Library // Copyright (C) 2002, University of Surrey // This code may be redistributed under the terms of the GNU Lesser // General Public License (LGPL). See the lgpl.licence file for details or // see http://www.gnu.org/copyleft/lesser.html // file-header-ends-here #ifndef RAVL3D_HEMESHVERTEXITER_HEADER #define RAVL3D_HEMESHVERTEXITER_HEADER 1 //! rcsid="$Id: HEMeshVertexIter.hh,v 1.3 2002/08/08 16:03:09 craftit Exp $" //! lib=Ravl3D //! author="Charles Galambos" //! docentry="Ravl.3D.Half Edge Mesh" //! date="22/5/2002" //! file="Ravl/3D/Mesh/HEMeshVertexIter.hh" #include "Ravl/3D/HEMeshVertex.hh" #include "Ravl/InDLIter.hh" namespace Ravl3DN { class HEMeshC; //! userlevel=Normal //: Mesh vertex iterator. // Note: It is the users responsibility to ensure the current vertex of the interator is NOT // deleted until the iterator is moved to another element. class HEMeshVertexIterC : public IntrDLIterC { public: HEMeshVertexIterC() {} //: Default constructor. HEMeshVertexIterC(IntrDListC &iter) : IntrDLIterC(iter) {} //: Constructor from a IntrDListC. HEMeshVertexC Data() { return HEMeshVertexC(IntrDLIterC::Data()); } //: Access Vertex. const HEMeshVertexC Data() const { return HEMeshVertexC(const_cast(IntrDLIterC::Data())); } //: Access Vertex. HEMeshVertexC operator*() { return HEMeshVertexC(IntrDLIterC::Data()); } //: Access Vertex. const HEMeshVertexC operator*() const { return HEMeshVertexC(const_cast(IntrDLIterC::Data())); } //: Access Vertex. protected: friend class HEMeshC; }; } #endif