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);