Generated on Mon Jun 23 16:24:56 2008 for BIU-1.7.0 by doxygen 1.5.1

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_*/