00001
00002 #ifndef SIMULATOM_MOLECULE_TAPIS
00003 #define SIMULATOM_MOLECULE_TAPIS
00004
00005 #include "pi2d14/pi2d14_abstractmoleculed.h"
00006
00007 #include "Atom.h"
00008
00009
00010 namespace ALGOATOMD
00011 {
00012
00013 #define MOLECULE_TAPIS_NB_ALGO 2
00014
00015
00021 class MoleculeTapis : public AbstractMoleculeD
00022 {
00023 private :
00024
00025 API::Atom *atoms;
00026
00027 double xg,yg;
00028 double xf,yf;
00029 double xrepX,yrepX;
00030 double xrepY,yrepY;
00031 double angle;
00032
00033
00034 unsigned int size;
00035 int indexInit,index1,index2,index3;
00036 bool m1,m2,m3;
00037
00038
00042 void linkAllLegs();
00046 void initDep1();
00050 void algoDep1();
00054 void initDep2();
00058 void algoDep2();
00062 void debugAlgo2();
00063
00064 protected :
00065
00070 bool needMoreMouvement();
00071
00075 void calcAngle();
00076
00077 public :
00078
00084 MoleculeTapis(int buildParam, int typeDep);
00088 virtual ~MoleculeTapis();
00089
00094 void processMovement();
00098 void renderMoleculeInfo();
00099
00100 };
00101
00102 }
00103
00104 #endif
00105