Generated on Tue Dec 16 13:34:01 2008 for ell-3.0.0 by doxygen 1.5.1

src/ell/NeighborGenerator.hh

Go to the documentation of this file.
00001 #ifndef NEIGHBORGENERATOR_HH_
00002 #define NEIGHBORGENERATOR_HH_
00003 
00004 
00005 #include "ell/State.hh"
00006 
00007 namespace ell {
00013     class NeighborGenerator
00014     {
00015     public:
00016     
00017         virtual ~NeighborGenerator(){};
00018 
00024         virtual State::NeighborListPtr getNeighborList(const State* const s) const = 0;
00025     };
00026     
00033     class NG_Random : public NeighborGenerator
00034     {
00035     protected:
00036         
00037         class NeighborList : public State::NeighborList
00038         {
00039         protected:
00041             const State* const origin;
00042         public:
00043             NeighborList(const State* _origin);
00044             
00045             virtual ~NeighborList();
00046 
00053             virtual State* first(State::NeighborList::ItState** itstate) const;
00054 
00062             virtual State* next(    State::NeighborList::ItState* itstate, 
00063                                     State* elem) const;
00064         };
00065 
00066     public:
00067 
00073          State::NeighborListPtr getNeighborList(const State* const s) const;
00074     };
00075     
00082     class NG_SuccessiveRandom : public NeighborGenerator
00083     {
00084     public:
00085 
00091          State::NeighborListPtr getNeighborList(const State* const s) const;
00092     };
00093 
00100     class NG_Successive : public NeighborGenerator
00101     {
00102     public:
00103 
00109          State::NeighborListPtr getNeighborList(const State* const s) const;
00110     };
00111     
00112 } // namespace ell
00113 
00114 #endif /*NEIGHBORGENERATOR_HH_*/