49 Cerr <<
"We pass through Roue_ptr=Roue_ptr" << finl;
95Roue::Roue() : temps_(0), nb_cases_(1), valeurs_(), passe_(this), futur_(this)
103Roue::Roue(
const Roue& roue) : temps_(roue.temps_), nb_cases_(1), valeurs_(roue.valeurs_), passe_(this), futur_(this)
106 for(
int i=1; i<nb_cases_; i++)
120 assert(nb_cases_==1);
121 assert(futur_.ptr==
this);
122 assert(passe_.ptr==
this);
123 assert(valeurs_.size()==0);
124 futur_.ptr=passe_.ptr=0;
135 assert(i<=nb_cases_);
139 return futur_->futur(--i);
151 assert(i<=nb_cases_);
155 return futur_->futur(--i);
167 assert(i<=nb_cases_);
171 return passe_->passe(--i);
183 assert(i<=nb_cases_);
187 return passe_->passe(--i);
203 if (valeurs_.size() != nb_val )
205 valeurs_.resize(nb_val);
206 for(
int j=1; j<nb_cases_; j++)
219 if ((valeurs_.size() != nb_val*nb_comp )||(valeurs_.nb_dim()!=2) || (nb_comp!=valeurs_.dimension(1)))
221 valeurs_.resize(nb_val, nb_comp);
222 for(
int j=1; j<nb_cases_; j++)
235 if(nb_case==nb_cases_)
237 int nb_case_a_ajouter=nb_case-nb_cases_;
238 if(nb_case_a_ajouter>0)
252 for (
int n_to_add = 0; n_to_add < n; n_to_add++)
254 Roue * old_futur = futur_.ptr;
256 this ->futur_.ptr = new_futur;
257 old_futur->passe_.
ptr = new_futur;
258 new_futur->futur_.
ptr = old_futur;
259 new_futur->passe_.
ptr =
this;
262 const int new_nb_cases = nb_cases_ + 1;
263 Roue * ptr_roue =
this;
264 for(
int i = 0; i < new_nb_cases; i++, ptr_roue = ptr_roue->futur_.
ptr)
265 ptr_roue->nb_cases_ = new_nb_cases;
276 for (
int n_to_kill = 0; n_to_kill < n; n_to_kill++)
280 assert(futur_.ptr ==
this);
281 assert(passe_.ptr ==
this);
288 Roue * new_futur = futur_->futur_.ptr;
291 Roue * to_kill = futur_.ptr;
292 to_kill->nb_cases_ = 1;
293 to_kill->futur_.
ptr = to_kill->passe_.
ptr = to_kill;
297 new_futur->passe_.
ptr =
this;
298 futur_.ptr = new_futur;
300 const int new_nb_cases = nb_cases_ - 1;
301 if(new_nb_cases == 1)
306 Roue * ptr_roue =
this;
307 for(
int i = 0; i < new_nb_cases; i++, ptr_roue = ptr_roue->futur_.
ptr)
308 ptr_roue->nb_cases_ = new_nb_cases;
322 temps_ = roue.temps_;
323 valeurs_ = roue.valeurs_;
325 for(
int i=1; i<nb_cases_; i++)
Classe Roue utilisee dans Champ_Inc_Base.
int fixer_nb_cases(int)
Change le nombre de cases de la Roue.
Roue & operator=(const Roue &)
Affectation d'une Roue Les attibuts modifies sont le temps, les valeurs, le nombre de cases et les va...
void ajouter_case(int n=1)
Ajoute n cases a la Roue.
const Roue & futur(int i=1) const
Retourne la Roue correspondant a la ieme case future.
void dimensionner(int nb_val)
Dimensionne (1D) les valeurs de la Roue et des ses roues futures.
void supprimer_case(int n=1)
Supprime n cases de la Roue.
Roue()
Constructeur Construit une roue avec une seule case, au temps t=0.
const Roue & passe(int i=1) const
Retourne la Roue correspondant a la ieme case passee.
void resize(_SIZE_ n, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
Roue_ptr(const Roue_ptr &)
Constructeur par recopie.
Roue_ptr & operator=(const Roue_ptr &x)
Constructeur par recopie.