00001 00002 #ifndef SIMULATOM_MOLECULE_ATOME 00003 #define SIMULATOM_MOLECULE_ATOME 00004 00005 #include "pi2d14/pi2d14_abstractmoleculed.h" 00006 00007 #include "Atom.h" 00008 00009 namespace ALGOATOMD 00010 { 00011 00012 #define MOLECULE_ATOME_NB_ALGO 3 //le nombre d'algorithme pour cette molecule 00013 00014 00020 class MoleculeAtome : public AbstractMoleculeD 00021 { 00022 private : 00023 00024 API::Atom *atoms; //le pointeur sur l'atome 00025 00026 unsigned int size; //la taille ne sert a rien pour l'atom ( TODO : a supprimer) 00027 int indexInit,index1,index2,index3; //les index des mouvements synchronise 00028 bool m1,m2,m3; //true si le mouvement de meme nom est en cours 00029 //toutes les valeur sont false si on est dans le mouvement d'initialisation 00030 int marqueur; //sert pour l'algorithme 3 00031 00032 00033 //declaration de var pour algo n�2 avec IA 00034 API::CartesianPosition axe0; //l'axe de la patte 0 00035 API::CartesianPosition axe2; //l'axe de la patte 2 00036 API::CartesianPosition axe5; //l'axe de la patte 5 00037 int currentZone; // numero de la zone dans laquelle est la destination 00038 00042 void initDep1(); 00046 void algoDep1(); 00050 void initDep2(); 00054 void algoDep2(); 00058 void debugAlgo2(); 00062 void initDep3(); 00066 void algoDep3(); 00067 00068 protected : 00072 void calcZone(); 00073 00078 bool needMoreMouvement(); 00079 00080 public : 00081 00087 MoleculeAtome(int buildParam, int typeDep); 00091 virtual ~MoleculeAtome(); 00092 00097 void processMovement(); 00101 void renderMoleculeInfo(); 00102 00103 //int getNbAlgo(); 00104 }; 00105 00106 } 00107 00108 00109 #endif 00110
1.3.5