00001
00009 #ifndef __ROBJ_H__
00010 #define __ROBJ_H__
00011
00012 #include <iostream>
00013 #include <string>
00014 using std::string;
00015
00016 #include "vgen.h"
00017
00026 class Retinal_Obj : public ValueGen {
00027 public:
00029 typedef double Activity;
00031 typedef double Angle;
00033 typedef double Coordinate;
00034
00036 virtual bool next() =0;
00037
00039 virtual void reset() =0;
00040
00042 virtual bool update() const =0;
00043
00045 virtual Activity activation(Coordinate x, Coordinate y) const =0;
00046
00055 virtual Angle angle() const=0;
00056
00058 virtual string stringrep() const =0;
00059
00068 virtual std::ostream& put(std::ostream& s) const {
00069 return s << this->stringrep();
00070 }
00071 };
00072
00073
00075 inline std::ostream& operator<<(std::ostream& s, const Retinal_Obj& r) { return r.put(s); }
00076
00077
00078 #endif