00001 #ifndef TwoD_H 00002 #define TwoD_H 00003 00004 #include "TopologyImp.h" 00005 #include <math.h> 00006 #include "defs.h" 00007 #include "util.h" 00008 00017 class TwoD : public TopologyImp { 00018 public: 00020 virtual Value_Type distance(int bmu, int i, int dimensions[MaxDimension], int type) = 0; 00021 00023 virtual int Coord( int pos, int axis, int dimensions[MaxDimension] ) = 0; 00024 00026 virtual TMatrix LinInitCoords(int mapsize, int dimensions[MaxDimension]) = 0; 00027 00029 virtual TMatrix CreateDelta(int dimensions[MaxDimension], int lattice, int mapsize ) = 0; 00030 00032 virtual Value_Type H( const Value_Type delta, Value_Type radius, int neighboor ) = 0; 00033 00035 virtual vector<int> getNeighbors( int i, int neighbor, int dimensions[] ) = 0; 00036 00038 TwoD(const TopolParams& par):TopologyImp(par) {}; 00039 00040 private: 00041 Value_Type hexa_dist(int bx, int by, int tx, int ty); 00042 00043 Value_Type rect_dist(int bx, int by, int tx, int ty); 00044 }; 00045 00046 00047 #endif