71 std::pair<std::multimap<long,std::string>::iterator,std::multimap<long,std::string>::iterator> ret;
74 if(it==ret.second)
return "";
80 std::pair<std::multimap<long,std::string>::iterator,std::multimap<long,std::string>::iterator> ret;
83 if(it==ret.second)
return "";
93 if(forme->get_type_forme()==MG_CG_FORME::TYPE_FORME::VOLUME)
98 else if(forme->get_type_forme()==MG_CG_FORME::TYPE_FORME::MULTI_VOLUME)
101 std::map<long,MG_VOLUME*>::iterator it_volume;
104 tpl_map_volume.
ajouter(volume);
108 return tpl_map_volume;
114 sprintf(data,
"ID_FORME_INI=(%li)",
id);
124 std::multimap< long int, std::string >::iterator it_data;
128 parse.
decode(data.c_str(),
"@=(@)",param);
129 if(param[0].argument[0]==
"ID_FORME_INI")
132 id = atol(param[1].argument[0].c_str());
143 sprintf(data,
"CENTRE=(%.15lf,%.15lf,%.15lf)",centre_xyz[0],centre_xyz[1],centre_xyz[2]);
153 std::multimap< long int, std::string >::iterator it_data;
157 parse.
decode(data.c_str(),
"@=(@,@,@)",param);
158 if(param[0].argument[0]==
"CENTRE")
161 centre_xyz[0] = atof(param[1].argument[0].c_str());
162 centre_xyz[1] = atof(param[2].argument[0].c_str());
163 centre_xyz[2] = atof(param[3].argument[0].c_str());
174 sprintf(data,
"EXTREMITE=(%.15lf,%.15lf,%.15lf)",extremite_xyz[0],extremite_xyz[1],extremite_xyz[2]);
184 std::multimap< long int, std::string >::iterator it_data;
188 parse.
decode(data.c_str(),
"@=(@,@,@)",param);
189 if(param[0].argument[0]==
"EXTREMITE")
192 extremite_xyz[0] = atof(param[1].argument[0].c_str());
193 extremite_xyz[1] = atof(param[2].argument[0].c_str());
194 extremite_xyz[2] = atof(param[3].argument[0].c_str());
205 sprintf(data,
"POSITION_RELATIVE=(%s)",str.c_str());
215 std::multimap< long int, std::string >::iterator it_data;
219 parse.
decode(data.c_str(),
"@=(@)",param);
220 if(param[0].argument[0]==
"POSITION_RELATIVE")
235 sprintf(data,
"AXE=(%.15lf,%.15lf,%.15lf)",axe_xyz[0],axe_xyz[1],axe_xyz[2]);
245 std::multimap< long int, std::string >::iterator it_data;
247 while(trouve==
false && data!=
"")
249 parse.
decode(data.c_str(),
"@=(@,@,@)",param);
250 if(param[0].argument[0]==
"AXE")
253 axe_xyz[0] = atof(param[1].argument[0].c_str());
254 axe_xyz[1] = atof(param[2].argument[0].c_str());
255 axe_xyz[2] = atof(param[3].argument[0].c_str());
266 sprintf(data,
"RAYON=(%.15lf)",rayon);
276 std::multimap< long int, std::string >::iterator it_data;
280 parse.
decode(data.c_str(),
"@=(@)",param);
281 if(param[0].argument[0]==
"RAYON")
284 rayon = atof(param[1].argument[0].c_str());
295 sprintf(data,
"LONGUEUR=(%.15lf)",longueur);
305 std::multimap< long int, std::string >::iterator it_data;
309 parse.
decode(data.c_str(),
"@=(@)",param);
310 if(param[0].argument[0]==
"LONGUEUR")
313 longueur = atof(param[1].argument[0].c_str());
323 f <<
"GROUPE_MG_CG_FORME " <<
m_nom << std::endl;
328 long id = forme->get_id();
331 std::multimap< long int,std::string >::iterator it;
343 f.getline(ligne,10000);
345 sscanf(ligne,
"%*s %s",nom);
348 f.getline(ligne,10000);
349 sscanf(ligne,
"%*s %li",&nb_forme);
350 for(
long i=0;i<nb_forme;i++)
353 f.getline(val,500,
' ');
355 sscanf(val,
"%li",&id_forme);
358 f.getline(val,500,
' ');
360 sscanf(val,
"%li",&nb_donnees);
361 for(
int j=0;j<nb_donnees;j++)
363 if(j==nb_donnees-1)
f.getline(val,500);
364 else f.getline(val,500,
' ');
365 char chr_donnee[500];
366 sscanf(val,
"%s",chr_donnee);
367 std::string donnee(chr_donnee);
TPL_MAP_ENTITE< MG_CG_FORME * > m_tpl_map_forme
int get_id_forme_ini(MG_CG_FORME *mgcg_forme, long &id)
void importer(std::ifstream &f, MG_CG_MODELE *mgcg_modele)
int ajouter_longueur_forme(MG_CG_FORME *mgcg_forme, double longueur)
int ajouter_centre_forme(MG_CG_FORME *mgcg_forme, double *centre_xyz)
int ajouter_axe_forme(MG_CG_FORME *mgcg_forme, double *axe_xyz)
int get_longueur_forme(MG_CG_FORME *mgcg_forme, double &longueur)
int ajouter_id_forme_ini(MG_CG_FORME *mgcg_forme, long id)
int get_rayon_forme(MG_CG_FORME *mgcg_forme, double &rayon)
void exporter(std::ofstream &f)
std::string get_premiere_donnee_forme(MG_CG_FORME *mgcg_forme, std::multimap< long, std::string >::iterator &it)
TPL_MAP_ENTITE< MG_CG_FORME * > & get_tpl_map_forme(void)
int ajouter_donnee_forme(MG_CG_FORME *mgcg_forme, std::string donnee)
std::string get_nom(void)
long get_nb_donnee_forme(MG_CG_FORME *mgcg_forme)
std::string get_suivante_donnee_forme(MG_CG_FORME *mgcg_forme, std::multimap< long, std::string >::iterator &it)
int get_centre_forme(MG_CG_FORME *mgcg_forme, double *centre_xyz)
int get_position_relative(MG_CG_FORME *mgcg_forme, std::string &str)
int get_extremite_forme(MG_CG_FORME *mgcg_forme, double *extremite_xyz)
TPL_MAP_ENTITE< MG_VOLUME * > get_tpl_map_volume(void)
int ajouter_extremite_forme(MG_CG_FORME *mgcg_forme, double *extremite_xyz)
int ajouter_position_relative(MG_CG_FORME *mgcg_forme, std::string str)
int ajouter_rayon_forme(MG_CG_FORME *mgcg_forme, double rayon)
std::multimap< long, std::string > m_map_donnees_forme
int get_axe_forme(MG_CG_FORME *mgcg_forme, double *axe_xyz)
virtual MG_VOLUME * get_premier_mg_volume(std::map< long, MG_VOLUME * >::iterator &it)
virtual MG_VOLUME * get_suivant_mg_volume(std::map< long, MG_VOLUME * >::iterator &it)
virtual MG_VOLUME * get_mg_volume(void)
virtual MG_CG_FORME * get_mgcg_formeid(long id)
std::vector< std::string > argument
void decode(char *code, std::string masque, class PARS_ARGUMENT *arg)
virtual X get_premier(ITERATEUR &it)
virtual X get_suivant(ITERATEUR &it)
virtual void ajouter(X x)
double f(double x, long nb, double *xfonc, double *fonc, double eng, double eni, double lambda, double nor, double *fonc2)