00001
00002 #ifndef SIMULATOM_MOLECULE_LIGNE
00003 #define SIMULATOM_MOLECULE_LIGNE
00004
00005 #include "pi2d14/pi2d14_abstractmoleculed.h"
00006
00007 #include "Atom.h"
00008
00009
00010 namespace ALGOATOMD
00011 {
00012
00013
00014 #define MOLECULE_LIGNE_NB_ALGO 2 //le nombre d'algo pour la ligne d'atome
00015
00016
00017 #define NBR_STEP 4 //le nombre de pas durant la rotation des pattes pour l'algorithme 2
00018 #define MV_RAYON 100 //le rayon de rotation des pattes pour l'algorithme 2
00019
00025 class MoleculeLigne : public AbstractMoleculeD
00026 {
00027 private :
00028
00029 API::Atom *atoms;
00030
00031
00032 unsigned int size, pair;
00033 int indexInit,index1,index2,index3,index4,index5;
00034 bool m1,m2,m3,m4,m5;
00035
00036
00040 void initDep1();
00044 void algoDep1();
00048 void initDep2();
00052 void algoDep2();
00053
00054 protected :
00055
00060 bool needMoreMouvement();
00061
00062 public :
00063
00069 MoleculeLigne(int buildParam, int typeDep);
00073 virtual ~MoleculeLigne();
00074
00079 void processMovement();
00083 void renderMoleculeInfo();
00084
00085 };
00086
00087 }
00088
00089 #endif
00090