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