src/biu/LatticeNeighborhood.hh
Go to the documentation of this file.00001 #ifndef LATTICE_NEIGHBORHOOD_HH_ 00002 #define LATTICE_NEIGHBORHOOD_HH_ 00003 00004 00005 #include "NeighborVector.hh" 00006 00007 #include <map> 00008 00009 namespace biu 00010 { 00016 class LatticeNeighborhood 00017 { 00018 protected: 00019 00020 const MoveAlphabet* moveAlph; 00021 NeighSet neighSet; 00022 00024 std::vector<const NeighborVector*> neighVec; 00025 00027 std::map<IntPoint,const NeighborVector*> vec2neigh; 00028 00029 public: 00030 LatticeNeighborhood( const MoveAlphabet* moveAlph_, 00031 const NeighSet& neighbors); 00032 00033 LatticeNeighborhood( const LatticeNeighborhood& nh ); 00034 00035 virtual ~LatticeNeighborhood(); 00036 00038 virtual 00039 unsigned int size() const; 00040 00045 virtual 00046 bool isElement( const IntPoint& vector) const; 00047 00053 virtual 00054 const NeighborVector& getElementByIndex(unsigned int index) const; 00055 00059 virtual 00060 const NeighborVector& getElement(const IntPoint& vector) const; 00061 00066 virtual 00067 const NeighborVector& getElement(const Move& move) const; 00068 00070 typedef NeighSet::const_iterator const_iterator; 00071 00074 virtual 00075 const_iterator begin() const; 00076 00079 virtual 00080 const_iterator end() const; 00081 }; 00082 00083 } // namespace biu 00084 00085 #include "LatticeNeighborhood.icc" 00086 00087 #endif /*LATTICE_NEIGHBORHOOD_HH_*/