IteratorStamp Class Reference

#include <iterator_stamp.h>

Inheritance diagram for IteratorStamp:

Inheritance graph
[legend]
Collaboration diagram for IteratorStamp:

Collaboration graph
[legend]
List of all members.

Public Member Functions

RefStampGetFirst ()
 return the first item of a contener
RefStampGetNext ()
 return the next item in the course
 IteratorStamp (Contener< RefStamp, Iterator< RefStamp, IteratorStamp > > &c)

Private Attributes

RefStamp atome
int my_n
int my_x
int my_y
int my_z

Detailed Description

Class IteratorStamp

Definition at line 59 of file iterator_stamp.h.


Constructor & Destructor Documentation

IteratorStamp::IteratorStamp ( Contener< RefStamp, Iterator< RefStamp, IteratorStamp > > &  c  )  [inline]

Definition at line 65 of file iterator_stamp.h.

References nbrFant.

00065                                                                           :
00066     Iterator<RefStamp,IteratorStamp>(c),
00067     my_x(0),my_y(0),my_z(0),my_n(0),atome(nbrFant,nbrFant,nbrFant,0)
00068     {};


Member Function Documentation

RefStamp & IteratorStamp::GetFirst (  )  [inline]

return the first item of a contener

Reimplemented from Iterator< RefStamp, IteratorStamp >.

Definition at line 81 of file iterator_stamp.h.

References atome, cellulePerproc, Iterator< RefStamp, IteratorStamp >::end_flag, GetNext(), RefStamp::index_atome, RefStamp::index_boite_x, RefStamp::index_boite_y, RefStamp::index_boite_z, Iterator< RefStamp, IteratorStamp >::my_cont, my_n, my_x, my_y, my_z, nAtom, Contener< T, IT >::nbElem(), and nbrFant.

00081                                          {
00082   
00083   if (!my_cont.nbElem()){
00084     end_flag = true;
00085     return atome;
00086   }
00087   end_flag = false;
00088 
00089   my_x = my_y = my_z = nbrFant;
00090   my_n = 0;
00091 
00092   atome.index_boite_x = my_x;
00093   atome.index_boite_y = my_y;
00094   atome.index_boite_z = my_z;
00095   atome.index_atome = my_n;
00096 
00097 
00098   // si la premiere boite est vide il faut que je prenne le suivant
00099   // tout ca parce que stamp stocke aussi les boites vides
00100 
00101   if (cellulePerproc[my_x][my_y][my_z].nAtom == 0){
00102     GetNext();
00103   }
00104 
00105   return atome;
00106 }

Here is the call graph for this function:

RefStamp & IteratorStamp::GetNext (  )  [inline]

return the next item in the course

Reimplemented from Iterator< RefStamp, IteratorStamp >.

Definition at line 112 of file iterator_stamp.h.

References atome, cellulePerproc, DBG_ALL, DUMP, Iterator< RefStamp, IteratorStamp >::end_flag, RefStamp::index_atome, RefStamp::index_boite_x, RefStamp::index_boite_y, RefStamp::index_boite_z, my_n, my_x, my_y, my_z, nAtom, nbCellullePerProc, and nbrFant.

Referenced by GetFirst().

00112                                         {
00113 
00114   int stop_flag=true;
00115 
00116   int nbBoiteZ = nbCellullePerProc[2]; 
00117   int nbBoiteY = nbCellullePerProc[1]; 
00118   int nbBoiteX = nbCellullePerProc[0]; 
00119 
00120   while(stop_flag)
00121     {
00122   
00123       if (my_n < cellulePerproc[my_x][my_y][my_z].nAtom - 1){
00124         ++my_n;
00125         stop_flag = false;
00126       }
00127       else if (my_z < nbBoiteZ+nbrFant - 1){
00128         my_n = 0;
00129         ++my_z;
00130 
00131         if (cellulePerproc[my_x][my_y][my_z].nAtom != 0)
00132           stop_flag = false;
00133       }
00134       else if (my_y < nbBoiteY+nbrFant - 1){
00135         my_n = 0;
00136         my_z = nbrFant;
00137         ++my_y;
00138 
00139         if (cellulePerproc[my_x][my_y][my_z].nAtom != 0)
00140           stop_flag = false;
00141       }
00142       else if (my_x < nbBoiteX+nbrFant - 1){
00143         my_n = 0;
00144         my_z = nbrFant;
00145         my_y = nbrFant;
00146         ++my_x;
00147 
00148         if (cellulePerproc[my_x][my_y][my_z].nAtom != 0)
00149           stop_flag = false;
00150       }
00151       else {
00152         end_flag = true;
00153         stop_flag = false;
00154       }
00155 
00156       if (stop_flag == true)
00157         DUMP("Attention pour information parse une boite vide",DBG_ALL);
00158     }
00159   
00160   
00161   
00162   atome.index_boite_x = my_x;
00163   atome.index_boite_y = my_y;
00164   atome.index_boite_z = my_z;
00165   atome.index_atome = my_n;
00166 
00167   return atome;
00168 }


Member Data Documentation

RefStamp IteratorStamp::atome [private]

Definition at line 78 of file iterator_stamp.h.

Referenced by GetFirst(), and GetNext().

int IteratorStamp::my_n [private]

Definition at line 76 of file iterator_stamp.h.

Referenced by GetFirst(), and GetNext().

int IteratorStamp::my_x [private]

Definition at line 76 of file iterator_stamp.h.

Referenced by GetFirst(), and GetNext().

int IteratorStamp::my_y [private]

Definition at line 76 of file iterator_stamp.h.

Referenced by GetFirst(), and GetNext().

int IteratorStamp::my_z [private]

Definition at line 76 of file iterator_stamp.h.

Referenced by GetFirst(), and GetNext().


The documentation for this class was generated from the following file:
Generated on Fri Sep 7 13:13:20 2007 for LibMultiScale by  doxygen 1.5.2