71 #include "TopoDS_Shape.hxx"
117 #ifdef WINDOWS_VERSION
130 #pragma package(smart_init)
154 const char *p=str.c_str();
155 if (*p==
'$')
return atol(p+1);
162 int nb=param[numparam].argument.size();
163 for (
int i=0;i<nb;i++)
165 double val=atoi(param[numparam].argument[i].c_str());
175 for (
int i=0;i<nb;i++)
177 parse.
decode(param[numparam].argument[i].c_str(),
"(@,@)",param+numparam+1);
179 strcpy(nom,param[numparam+1].argument[0].c_str());
180 if (strcmp(nom,
"CM")==0)
183 val=atol(param[numparam+2].argument[0].c_str());
189 val=atof(param[numparam+2].argument[0].c_str());
194 else if (version<2.1)
196 for (
int i=0;i<nb;i++)
199 strcpy(test,param[numparam].argument[i].c_str());
200 parse.
decode(param[numparam].argument[i].c_str(),
"(@,@,@)",param+numparam+1);
201 char formulation[10];
202 strcpy(formulation,param[numparam+1].argument[0].c_str());
204 strcpy(nom,param[numparam+2].argument[0].c_str());
205 if (formulation[0]==
'N')
208 val=atof(param[numparam+3].argument[0].c_str());
211 if (formulation[0]==
'I')
214 val=atol(param[numparam+3].argument[0].c_str());
217 if (formulation[0]==
'F')
219 parse.
decode(param[numparam].argument[i].c_str(),
"(@,@,@,@,(@))",param+numparam+1);
221 strcpy(formule,param[numparam+3].argument[0].c_str());
223 strcpy(variable,param[numparam+5].argument[0].c_str());
225 std::vector<std::string> listvariable=ot.
split(variable,
',');
232 for (
int i=0;i<nb;i++)
235 strcpy(test,param[numparam].argument[i].c_str());
236 parse.
decode(param[numparam].argument[i].c_str(),
"(@,@,@,@)",param+numparam+1);
237 char formulation[10];
238 strcpy(formulation,param[numparam+1].argument[0].c_str());
240 strcpy(nom,param[numparam+2].argument[0].c_str());
242 strcpy(suiv,param[numparam+3].argument[0].c_str());
243 if (formulation[0]==
'N')
246 val=atof(param[numparam+4].argument[0].c_str());
249 if (formulation[0]==
'I')
252 val=atol(param[numparam+4].argument[0].c_str());
255 if (formulation[0]==
'F')
257 parse.
decode(param[numparam].argument[i].c_str(),
"(@,@,@,@,@,(@))",param+numparam+1);
259 strcpy(formule,param[numparam+4].argument[0].c_str());
261 strcpy(variable,param[numparam+6].argument[0].c_str());
263 std::vector<std::string> listvariable=ot.
split(variable,
',');
272 parse.
decode(data.c_str(),
"@,@,@,@,@",param+2);
273 long idtopo=
cid(param[2].argument[0]);
274 double x=atof(param[3].argument[0].c_str());
275 double y=atof(param[4].argument[0].c_str());
276 double z=atof(param[5].argument[0].c_str());
277 int ori=atoi(param[6].argument[0].c_str());
293 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
294 long idtopo=
cid(param[2].argument[0]);
295 long idn1=
cid(param[3].argument[0]);
296 long idn2=
cid(param[4].argument[0]);
297 int ori=atoi(param[5].argument[0].c_str());
316 parse.
decode(data.c_str(),
"@,@,@,@,@",param+2);
317 long idtopo=
cid(param[2].argument[0]);
318 long idn1=
cid(param[3].argument[0]);
319 long idn2=
cid(param[4].argument[0]);
320 long idn3=
cid(param[5].argument[0]);
321 int ori=atoi(param[6].argument[0].c_str());
336 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
337 long idtopo=
cid(param[2].argument[0]);
338 long idn1=
cid(param[3].argument[0]);
339 long idn2=
cid(param[4].argument[0]);
340 long idn3=
cid(param[5].argument[0]);
341 long idn4=
cid(param[6].argument[0]);
342 int ori=atoi(param[7].argument[0].c_str());
360 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
361 long idtopo=
cid(param[2].argument[0]);
362 long idn1=
cid(param[3].argument[0]);
363 long idn2=
cid(param[4].argument[0]);
364 long idn3=
cid(param[5].argument[0]);
365 long idn4=
cid(param[6].argument[0]);
366 int ori=atoi(param[7].argument[0].c_str());
374 if (noeud1&&noeud2&&noeud3&&noeud4) mgmai->
ajouter_mg_tetra(topo,noeud1,noeud2,noeud3,noeud4,ori,
id);
379 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@",param+2);
380 long idtopo=
cid(param[2].argument[0]);
381 long idn1=
cid(param[3].argument[0]);
382 long idn2=
cid(param[4].argument[0]);
383 long idn3=
cid(param[5].argument[0]);
384 long idn4=
cid(param[6].argument[0]);
385 long idn5=
cid(param[7].argument[0]);
386 long idn6=
cid(param[8].argument[0]);
387 long idn7=
cid(param[9].argument[0]);
388 long idn8=
cid(param[10].argument[0]);
389 int ori=atoi(param[11].argument[0].c_str());
401 mgmai->
ajouter_mg_hexa(topo,noeud1,noeud2,noeud3,noeud4,noeud5,noeud6,noeud7,noeud8,ori,
id);
407 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@",param+2);
408 long idtopo=
cid(param[2].argument[0]);
409 long idn1=
cid(param[3].argument[0]);
410 long idn2=
cid(param[4].argument[0]);
411 long idn3=
cid(param[5].argument[0]);
412 long idn4=
cid(param[6].argument[0]);
413 long idn5=
cid(param[7].argument[0]);
414 long idn6=
cid(param[8].argument[0]);
415 int ori=atoi(param[9].argument[0].c_str());
425 mgmai->
ajouter_mg_penta(topo,noeud1,noeud2,noeud3,noeud4,noeud5,noeud6,ori,
id);
430 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
431 long idtopo=
cid(param[2].argument[0]);
432 long idn1=
cid(param[3].argument[0]);
433 long idn2=
cid(param[4].argument[0]);
434 long idn3=
cid(param[5].argument[0]);
435 long idn4=
cid(param[6].argument[0]);
436 long idn5=
cid(param[7].argument[0]);
437 int ori=atoi(param[8].argument[0].c_str());
453 parse.
decode(data.c_str(),
"@,@,@,@,@,@,",param+2);
454 long id_mg_geometrie =
cid(param[2].argument[0]);
455 long id_parent =
cid(param[3].argument[0]);
456 std::string type_geo = param[4].argument[0];
457 std::string nom_fichier = param[5].argument[0];
458 double precision = atof(param[6].argument[0].c_str());
459 double valeur_unitee = atof(param[7].argument[0].c_str());
462 if(type_geo==
"MGCG_ASS")
465 LISTE_MGCG_MODELE::iterator it_modele;
477 mg_sous_geometrie=
new MG_SOUS_GEOMETRIE(mg_construction,id_parent,(
char*)type_geo.c_str(),
id,(
char*)nom_fichier.c_str(),valeur_unitee,precision);
490 parse.
decode(data.c_str(),
"@,@,@,@,(&)",param+2);
493 int nummat=atoi((
char*)param[4].argument[0].c_str());
495 int nb=atoi(param[5].argument[0].c_str());
500 parse.
decode(data.c_str(),
"@,@,@,(&)",param+2);
503 int nb=atoi(param[4].argument[0].c_str());
508 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
513 TopoDS_Solid topods_solid;
519 else mgvol=
new MG_VOLUME(param[2].argument[0],
id);
521 mgvol=
new MG_VOLUME(param[2].argument[0],
id);
524 int mince=atoi(param[4].argument[0].c_str());
527 std::string data2=param[5].argument[0];
528 parse.
decode(data2.c_str(),
"@,(&)",param+5);
529 int nb=atoi(param[5].argument[0].c_str());
534 std::string data2=param[5].argument[0];
535 parse.
decode(data2.c_str(),
"(&),@,(&)",param+5);
536 int nb_face=param[5].argument.size();
537 for (
int i=0;i<nb_face;i=i+2)
539 unsigned long idn1=
cid(param[5].argument[i]);
540 unsigned long idn2=
cid(param[5].argument[i+1]);
541 volumemince.push_back(
id);
542 volumemince.push_back(idn1);
543 volumemince.push_back(idn2);
545 int nb=atoi(param[6].argument[0].c_str());
553 bool import_occ_2017=
false;
557 import_occ_2017=
true;
558 parse.
decode(data.c_str(),
"@,@,@",param+2);
559 long ident=
cid(param[2].argument[0]);
560 long idori = stol(param[3].argument[0]);
561 TopoDS_Shell topods_shell;
592 parse.
decode(data.c_str(),
"@,@",param+2);
593 long ident=
cid(param[2].argument[0]);
612 else parse.
decode(data.c_str(),
"@,@,(@),@,@,@,(&)",param+2);
613 long idsurf=
cid(param[3].argument[0]);
614 int sens=atoi(param[5].argument[0].c_str());
620 TopoDS_Face topods_face;
622 topods_face=occ_fonction_v2017->
get_TopoDS_Face_id(atol(param[2].argument[0].c_str()));
626 else mgface=
new MG_FACE(param[2].argument[0],
id,mgsurf,sens);
628 mgface=
new MG_FACE(param[2].argument[0],
id,mgsurf,sens);
635 int nbpole=atoi(param[6].argument[0].c_str());
638 int nb=atoi(param[argccf-1].argument[0].c_str());
644 bool import_occ_2017=
false;
649 import_occ_2017=
true;
650 parse.
decode(data.c_str(),
"@,@,(@)",param+2);
651 long ident=
cid(param[2].argument[0]);
652 long idori=stol(param[3].argument[0]);
653 TopoDS_Wire topods_wire;
683 parse.
decode(data.c_str(),
"@,(@)",param+2);
684 long ident=
cid(param[2].argument[0]);
702 parse.
decode(data.c_str(),
"@,@,@,@,@,@,(&)",param+2);
703 long idcur=
cid(param[3].argument[0]);
704 int sens=atol(param[6].argument[0].c_str());
705 long idori = stoi(param[2].argument[0]);
711 TopoDS_Edge topods_edge;
717 else mgarete=
new MG_ARETE(param[2].argument[0],
id,mgcur,sens);
719 mgarete=
new MG_ARETE(param[2].argument[0],
id,mgcur,sens);
722 int nb=atoi(param[7].argument[0].c_str());
729 else parse.
decode(data.c_str(),
"@,@,@,@,(&)",param+2);
730 long idpoint=
cid(param[3].argument[0]);
731 long idori = stol(param[2].argument[0]);
737 TopoDS_Vertex topods_vertex;
744 else mgsom=
new MG_SOMMET(param[2].argument[0],
id,mgpt);
746 mgsom=
new MG_SOMMET(param[2].argument[0],
id,mgpt);
753 int ipole=atoi(param[4].argument[0].c_str());
756 int nb=atoi(param[argccf-1].argument[0].c_str());
767 parse.
decode(data.c_str(),
"@,@,@,@,@",param+2);
768 std::string nom=param[2].argument[0];
769 long id_mg_geometrie =
cid((
char*)param[3].argument[0].c_str());
770 int fusionner_entite_similaire = atoi((
char*)param[4].argument[0].c_str());
771 int importer_triangulation = atoi((
char*)param[5].argument[0].c_str());
772 double epsilon_triangulation = atof((
char*)param[6].argument[0].c_str());
785 parse.
decode(data.c_str(),
"@,@,@,@,(&)",param+2);
786 long id_modele =
cid((
char*)param[2].argument[0].c_str());
787 std::string nom=param[3].argument[0];
788 long id_mg_sous_geometrie =
cid((
char*)param[4].argument[0].c_str());
789 long nb_mgcg_forme = atol((
char*)param[5].argument[0].c_str());
794 else mg_sous_geometrie=NULL;
796 for(
long i=0;i<nb_mgcg_forme;i++)
798 unsigned long id2 =
cid(param[6].argument[i]);
809 parse.
decode(data.c_str(),
"@,@,@,(&)",param+2);
810 long id_mgcg_modele =
cid(param[2].argument[0]);
811 std::string nom=param[3].argument[0];
812 long nb_forme = atol(param[4].argument[0].c_str());
815 for(
long i=0;i<nb_forme;i++)
817 long id_forme =
cid(param[5].argument[i]);
827 parse.
decode(data.c_str(),
"@,@,@,@,@,@,(&)",param+2);
828 long id_modele =
cid((
char*)param[2].argument[0].c_str());
830 int provenance_forme = atoi((
char*)param[3].argument[0].c_str());
831 int etat_forme = atoi((
char*)param[4].argument[0].c_str());
833 if(etat_forme==MG_CG_FORME::ETAT_FORME::CONSTRUITE || etat_forme==MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION) mg_arete = mgcg_modele->
get_mg_geometrie()->
get_mg_areteid(
cid((
char*)param[5].argument[0].c_str()));
844 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,(&)",param+2);
845 long id_modele =
cid((
char*)param[2].argument[0].c_str());
847 int etat_forme = atoi((
char*)param[3].argument[0].c_str());
849 if(etat_forme==MG_CG_FORME::ETAT_FORME::CONSTRUITE || etat_forme==MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION) mg_arete = mgcg_modele->
get_mg_geometrie()->
get_mg_areteid(
cid((
char*)param[4].argument[0].c_str()));
850 double x1 = atof((
char*)param[5].argument[0].c_str());
851 double y1 = atof((
char*)param[6].argument[0].c_str());
852 double z1 = atof((
char*)param[7].argument[0].c_str());
853 double x2 = atof((
char*)param[8].argument[0].c_str());
854 double y2 = atof((
char*)param[9].argument[0].c_str());
855 double z2 = atof((
char*)param[10].argument[0].c_str());
863 parse.
decode(data.c_str(),
"@,@,@,@,@,@,(&)",param+2);
864 long id_modele =
cid((
char*)param[2].argument[0].c_str());
866 int provenance_forme = atoi((
char*)param[3].argument[0].c_str());
867 int etat_forme = atoi((
char*)param[4].argument[0].c_str());
869 if(etat_forme==MG_CG_FORME::ETAT_FORME::CONSTRUITE || etat_forme==MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION) mg_volume = mgcg_modele->
get_mg_geometrie()->
get_mg_volumeid(
cid((
char*)param[5].argument[0].c_str()));
880 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,(&)",param+2);
881 long id_modele =
cid((
char*)param[2].argument[0].c_str());
883 int etat_forme = atoi((
char*)param[3].argument[0].c_str());
885 if(etat_forme==MG_CG_FORME::ETAT_FORME::CONSTRUITE || etat_forme==MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION) mg_volume = mgcg_modele->
get_mg_geometrie()->
get_mg_volumeid(
cid((
char*)param[4].argument[0].c_str()));
886 double x1 = atof((
char*)param[5].argument[0].c_str());
887 double y1 = atof((
char*)param[6].argument[0].c_str());
888 double z1 = atof((
char*)param[7].argument[0].c_str());
889 double x2 = atof((
char*)param[8].argument[0].c_str());
890 double y2 = atof((
char*)param[9].argument[0].c_str());
891 double z2 = atof((
char*)param[10].argument[0].c_str());
900 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,(&)",param+2);
901 long id_modele =
cid((
char*)param[2].argument[0].c_str());
903 int etat_forme = atoi((
char*)param[3].argument[0].c_str());
905 if(etat_forme==MG_CG_FORME::ETAT_FORME::CONSTRUITE || etat_forme==MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION) mg_volume = mgcg_modele->
get_mg_geometrie()->
get_mg_volumeid(
cid((
char*)param[4].argument[0].c_str()));
906 double centre_x = atof((
char*)param[5].argument[0].c_str());
907 double centre_y = atof((
char*)param[6].argument[0].c_str());
908 double centre_z = atof((
char*)param[7].argument[0].c_str());
909 double rayon = atof((
char*)param[8].argument[0].c_str());
918 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,(&)",param+2);
919 long id_modele =
cid((
char*)param[2].argument[0].c_str());
921 int etat_forme = atoi((
char*)param[3].argument[0].c_str());
923 if(etat_forme==MG_CG_FORME::ETAT_FORME::CONSTRUITE || etat_forme==MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION) mg_volume = mgcg_modele->
get_mg_geometrie()->
get_mg_volumeid(
cid((
char*)param[4].argument[0].c_str()));
924 double centre_x = atof((
char*)param[5].argument[0].c_str());
925 double centre_y = atof((
char*)param[6].argument[0].c_str());
926 double centre_z = atof((
char*)param[7].argument[0].c_str());
927 double direction_x = atof((
char*)param[8].argument[0].c_str());
928 double direction_y = atof((
char*)param[9].argument[0].c_str());
929 double direction_z = atof((
char*)param[10].argument[0].c_str());
930 double rayon_majeur = atof((
char*)param[11].argument[0].c_str());
931 double rayon_mineur = atof((
char*)param[12].argument[0].c_str());
932 MG_CG_FORME* forme =
MG_CG::creer_MG_CG_FORME_VOLUME_ELLIPSOIDE(mgcg_modele,etat_forme,
id,mg_volume,centre_x,centre_y,centre_z,direction_x,direction_y,direction_z,rayon_majeur,rayon_mineur);
940 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,(&)",param+2);
941 long id_modele =
cid((
char*)param[2].argument[0].c_str());
943 int etat_forme = atoi((
char*)param[3].argument[0].c_str());
945 if(etat_forme==MG_CG_FORME::ETAT_FORME::CONSTRUITE || etat_forme==MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION) mg_volume = mgcg_modele->
get_mg_geometrie()->
get_mg_volumeid(
cid((
char*)param[4].argument[0].c_str()));
946 double extremite_x = atof((
char*)param[5].argument[0].c_str());
947 double extremite_y = atof((
char*)param[6].argument[0].c_str());
948 double extremite_z = atof((
char*)param[7].argument[0].c_str());
949 double direction_x = atof((
char*)param[8].argument[0].c_str());
950 double direction_y = atof((
char*)param[9].argument[0].c_str());
951 double direction_z = atof((
char*)param[10].argument[0].c_str());
952 double rayon = atof((
char*)param[11].argument[0].c_str());
953 double longueur = atof((
char*)param[12].argument[0].c_str());
954 MG_CG_FORME* forme =
MG_CG::creer_MG_CG_FORME_VOLUME_CYLINDRE(mgcg_modele,etat_forme,
id,mg_volume,extremite_x,extremite_y,extremite_z,direction_x,direction_y,direction_z,rayon,longueur);
962 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,(&)",param+2);
963 long id_modele =
cid((
char*)param[2].argument[0].c_str());
965 int etat_forme = atoi((
char*)param[3].argument[0].c_str());
967 if(etat_forme==MG_CG_FORME::ETAT_FORME::CONSTRUITE || etat_forme==MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION) mg_volume = mgcg_modele->
get_mg_geometrie()->
get_mg_volumeid(
cid((
char*)param[4].argument[0].c_str()));
968 double extremite_x = atof((
char*)param[5].argument[0].c_str());
969 double extremite_y = atof((
char*)param[6].argument[0].c_str());
970 double extremite_z = atof((
char*)param[7].argument[0].c_str());
971 double direction_x = atof((
char*)param[8].argument[0].c_str());
972 double direction_y = atof((
char*)param[9].argument[0].c_str());
973 double direction_z = atof((
char*)param[10].argument[0].c_str());
974 double rayon = atof((
char*)param[11].argument[0].c_str());
975 double longueur = atof((
char*)param[12].argument[0].c_str());
976 MG_CG_FORME* forme =
MG_CG::creer_MG_CG_FORME_VOLUME_CONE(mgcg_modele,etat_forme,
id,mg_volume,extremite_x,extremite_y,extremite_z,direction_x,direction_y,direction_z,rayon,longueur);
984 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,@,@,(&)",param+2);
985 long id_modele =
cid((
char*)param[2].argument[0].c_str());
987 int etat_forme = atoi((
char*)param[3].argument[0].c_str());
989 if(etat_forme==MG_CG_FORME::ETAT_FORME::CONSTRUITE || etat_forme==MG_CG_FORME::ETAT_FORME::ATTENTE_RECONSTRUCTION) mg_volume = mgcg_modele->
get_mg_geometrie()->
get_mg_volumeid(
cid((
char*)param[4].argument[0].c_str()));
990 double centre_x = atof((
char*)param[5].argument[0].c_str());
991 double centre_y = atof((
char*)param[6].argument[0].c_str());
992 double centre_z = atof((
char*)param[7].argument[0].c_str());
993 double direction_x = atof((
char*)param[8].argument[0].c_str());
994 double direction_y = atof((
char*)param[9].argument[0].c_str());
995 double direction_z = atof((
char*)param[10].argument[0].c_str());
996 double rayon_cercle = atof((
char*)param[11].argument[0].c_str());
997 double rayon_tore = atof((
char*)param[12].argument[0].c_str());
998 double angle_seg = atof((
char*)param[13].argument[0].c_str());
999 double angle_rotation = atof((
char*)param[14].argument[0].c_str());
1000 MG_CG_FORME* forme =
MG_CG::creer_MG_CG_FORME_VOLUME_TORE(mgcg_modele,etat_forme,
id,mg_volume,centre_x,centre_y,centre_z,direction_x,direction_y,direction_z,rayon_cercle,rayon_tore,angle_seg,angle_rotation);
1008 parse.
decode(data.c_str(),
"@,@,@,@,(&),@,(&),@",param+2);
1009 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1011 int provenance_forme = atoi((
char*)param[3].argument[0].c_str());
1012 int etat_forme = atoi((
char*)param[4].argument[0].c_str());
1013 std::vector<MG_ELEMENT_TOPOLOGIQUE*> vector_mg_element_topologique;
1014 std::vector<MG_ELEMENT_COTOPOLOGIQUE*> vector_mg_element_cotopologique;
1015 long nb_mg_element_topologique = atol((
char*)param[5].argument[0].c_str());
1016 for(
long i=0;i<nb_mg_element_topologique;i++)
1020 long nb_mg_element_cotopologique = atol((
char*)param[7].argument[0].c_str());
1021 for(
long i=0;i<nb_mg_element_cotopologique;i++)
1035 parse.
decode(data.c_str(),
"@,@,@,@,(&),@",param+2);
1036 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1038 int provenance_forme = atoi((
char*)param[3].argument[0].c_str());
1039 int etat_forme = atoi((
char*)param[4].argument[0].c_str());
1040 std::vector<MG_VOLUME*> vector_mg_volume;
1041 long nb_mg_volume = atol((
char*)param[5].argument[0].c_str());
1042 for(
long i=0;i<nb_mg_volume;i++)
1056 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
1057 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1059 int semantique = atoi((
char*)param[3].argument[0].c_str());
1060 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1063 long id_forme_entree_1 =
cid((
char*)param[5].argument[0].c_str());
1064 if(id_forme_entree_1!=0) mgcg_forme_entree_1=mgcg_modele->
get_mgcg_formeid(id_forme_entree_1);
1065 long id_forme_entree_2 =
cid((
char*)param[6].argument[0].c_str());
1066 if(id_forme_entree_2!=0) mgcg_forme_entree_2=mgcg_modele->
get_mgcg_formeid(id_forme_entree_2);
1067 long id_forme_sortie =
cid((
char*)param[7].argument[0].c_str());
1076 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
1077 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1079 int semantique = atoi((
char*)param[3].argument[0].c_str());
1080 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1083 long id_forme_entree_1 =
cid((
char*)param[5].argument[0].c_str());
1084 if(id_forme_entree_1!=0) mgcg_forme_entree_1=mgcg_modele->
get_mgcg_formeid(id_forme_entree_1);
1085 long id_forme_entree_2 =
cid((
char*)param[6].argument[0].c_str());
1086 if(id_forme_entree_2!=0) mgcg_forme_entree_2=mgcg_modele->
get_mgcg_formeid(id_forme_entree_2);
1087 long id_forme_sortie =
cid((
char*)param[7].argument[0].c_str());
1096 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
1097 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1099 int semantique = atoi((
char*)param[3].argument[0].c_str());
1100 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1103 long id_forme_entree_1 =
cid((
char*)param[5].argument[0].c_str());
1104 if(id_forme_entree_1!=0) mgcg_forme_entree_1=mgcg_modele->
get_mgcg_formeid(id_forme_entree_1);
1105 long id_forme_entree_2 =
cid((
char*)param[6].argument[0].c_str());
1106 if(id_forme_entree_2!=0) mgcg_forme_entree_2=mgcg_modele->
get_mgcg_formeid(id_forme_entree_2);
1107 long id_forme_sortie =
cid((
char*)param[7].argument[0].c_str());
1116 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
1117 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1119 int semantique = atoi((
char*)param[3].argument[0].c_str());
1120 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1123 long id_forme_entree_1 =
cid((
char*)param[5].argument[0].c_str());
1124 if(id_forme_entree_1!=0) mgcg_forme_entree_1=mgcg_modele->
get_mgcg_formeid(id_forme_entree_1);
1125 long id_forme_entree_2 =
cid((
char*)param[6].argument[0].c_str());
1126 if(id_forme_entree_2!=0) mgcg_forme_entree_2=mgcg_modele->
get_mgcg_formeid(id_forme_entree_2);
1127 long id_forme_sortie =
cid((
char*)param[7].argument[0].c_str());
1136 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
1137 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1139 int semantique = atoi((
char*)param[3].argument[0].c_str());
1140 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1143 long id_forme_inclusion_entree =
cid((
char*)param[5].argument[0].c_str());
1144 if(id_forme_inclusion_entree!=0) mgcg_forme_inclusion_entree=mgcg_modele->
get_mgcg_formeid(id_forme_inclusion_entree);
1145 long id_forme_matrice_entree =
cid((
char*)param[6].argument[0].c_str());
1146 if(id_forme_matrice_entree!=0) mgcg_forme_matrice_entree=mgcg_modele->
get_mgcg_formeid(id_forme_matrice_entree);
1147 long id_forme_inclusion_sortie =
cid((
char*)param[7].argument[0].c_str());
1148 long id_forme_matrice_sortie =
cid((
char*)param[8].argument[0].c_str());
1158 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,@",param+2);
1159 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1161 int semantique = atoi((
char*)param[3].argument[0].c_str());
1162 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1164 long id_forme_entree =
cid((
char*)param[5].argument[0].c_str());
1165 if(id_forme_entree!=0) mgcg_forme_entree=mgcg_modele->
get_mgcg_formeid(id_forme_entree);
1166 long id_forme_sortie =
cid((
char*)param[6].argument[0].c_str());
1168 double x = atof((
char*)param[7].argument[0].c_str());
1169 double y = atof((
char*)param[8].argument[0].c_str());
1170 double z = atof((
char*)param[9].argument[0].c_str());
1171 double w = atof((
char*)param[10].argument[0].c_str());
1172 double centre_x = atof((
char*)param[11].argument[0].c_str());
1173 double centre_y = atof((
char*)param[12].argument[0].c_str());
1174 double centre_z = atof((
char*)param[13].argument[0].c_str());
1185 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,",param+2);
1186 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1188 int semantique = atoi((
char*)param[3].argument[0].c_str());
1189 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1191 long id_forme_entree =
cid((
char*)param[5].argument[0].c_str());
1192 if(id_forme_entree!=0) mgcg_forme_entree=mgcg_modele->
get_mgcg_formeid(id_forme_entree);
1193 long id_forme_sortie =
cid((
char*)param[6].argument[0].c_str());
1195 double x = atof((
char*)param[7].argument[0].c_str());
1196 double y = atof((
char*)param[8].argument[0].c_str());
1197 double z = atof((
char*)param[9].argument[0].c_str());
1206 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,",param+2);
1207 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1209 int semantique = atoi((
char*)param[3].argument[0].c_str());
1210 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1212 long id_forme_entree =
cid((
char*)param[5].argument[0].c_str());
1213 if(id_forme_entree!=0) mgcg_forme_entree=mgcg_modele->
get_mgcg_formeid(id_forme_entree);
1214 long id_forme_sortie =
cid((
char*)param[6].argument[0].c_str());
1216 double x = atof((
char*)param[7].argument[0].c_str());
1217 double y = atof((
char*)param[8].argument[0].c_str());
1218 double z = atof((
char*)param[9].argument[0].c_str());
1219 double facteur = atof((
char*)param[10].argument[0].c_str());
1229 parse.
decode(data.c_str(),
"@,@,@,@,@,@,",param+2);
1230 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1232 int semantique = atoi((
char*)param[3].argument[0].c_str());
1233 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1235 long id_forme_entree =
cid((
char*)param[5].argument[0].c_str());
1236 if(id_forme_entree!=0) mgcg_forme_entree=mgcg_modele->
get_mgcg_formeid(id_forme_entree);
1237 long id_forme_sortie =
cid((
char*)param[6].argument[0].c_str());
1239 double decallage = atof((
char*)param[7].argument[0].c_str());
1248 parse.
decode(data.c_str(),
"@,@",param+2);
1249 std::string identifiant = param[2].argument[0];
1250 std::string valeur = param[3].argument[0];
1256 if(modele->get_id()==
id)
1268 MG_CONSTRUCTION_GEOMETRIQUE* mg_constr_geo = (MG_CONSTRUCTION_GEOMETRIQUE*)mg_id;
1278 parse.
decode(data.c_str(),
"@,@",param+2);
1279 std::string identifiant = param[2].argument[0];
1280 double valeur = atof(param[3].argument[0].c_str());
1286 if(modele->get_id()==
id)
1298 MG_CONSTRUCTION_GEOMETRIQUE* mg_constr_geo = (MG_CONSTRUCTION_GEOMETRIQUE*)mg_id;
1308 parse.
decode(data.c_str(),
"@,@,(&)",param+2);
1309 std::string identifiant = param[2].argument[0];
1310 long nb_valeur = atol(param[3].argument[0].c_str());
1311 std::vector<double> vector_valeur;
1312 for(
long i=0;i<nb_valeur;i++)
1314 double valeur = atof(param[4].argument[i].c_str());
1315 vector_valeur.push_back(valeur);
1322 if(modele->get_id()==
id)
1334 MG_CONSTRUCTION_GEOMETRIQUE* mg_constr_geo = (MG_CONSTRUCTION_GEOMETRIQUE*)mg_id;
1345 in=fopen(chemin,
"rt");
1346 if (in==NULL)
return 0;
1352 #ifdef WINDOWS_VERSION
1353 std::multimap<CAD4FE::MCVertex*, unsigned long> mapMergedRefVertices;
1355 bool updatedMergedRefVertices =
false;
1357 std::vector<unsigned long> volumemince;
1361 std::string ligne=parse.
lire(in,
';',&ierr);
1362 parse.
decode(ligne.c_str(),
"@;",param);
1363 const char *chaine=param[0].
argument[0].c_str();
1364 if ((chaine[0]==
'/') && (chaine[1]==
'/'))
1366 if ((chaine[2]==
'*')&&(chaine[3]==
'i'))
1369 sscanf(chaine,
"//*i:%lu;",&
id);
1372 if ((chaine[2]==
'*')&&(chaine[3]==
'v'))
1375 else if (param[0].argument[0]!=
"FIN")
1377 parse.
decode(ligne.c_str(),
"%@=@(@);",param);
1378 std::string entite=param[1].
argument[0];
1379 long id=atol(param[0].argument[0].c_str());
1380 std::string data=param[2].
argument[0] ;
1383 if (entite==
"GEOMETRIE")
1385 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
1386 double unite=atof(param[2].argument[0].c_str());
1387 std::string typegeo=param[3].
argument[0];
1388 std::string chemin_geo=param[4].
argument[0];
1389 if (typegeo==
"VIRTUEL")
1391 mggeo=
new MG_GEOMETRIE((
char*)typegeo.c_str(),
id,(
char*)chemin_geo.c_str(),unite);
1395 if (typegeo==
"STEP")
1397 mggeo=
new MG_GEOMETRIE((
char*)
"STEP",
id,(
char *)chemin_geo.c_str(),unite);
1402 if (typegeo==
"ACIS")
1404 mggeo=
new MG_GEOMETRIE((
char*)
"ACIS",
id,(
char *)chemin_geo.c_str(),unite);
1412 mggeo=
new MG_GEOMETRIE((
char*)
"OCC",
id,chemin_geo.c_str(),unite);
1415 if (typegeo==
"OCCV2015")
1417 mggeo=
new MG_GEOMETRIE((
char*)
"OCCV2015",
id,chemin_geo.c_str(),unite);
1422 if (typegeo==
"OCCV2017")
1424 mggeo=
new MG_GEOMETRIE((
char*)
"OCCV2017",
id,chemin_geo.c_str(),unite);
1427 std::string chemin_caf =
str_dossier + chemin_geo +
".ocaf";
1428 char* chemin_caf_char = (
char*)chemin_caf.c_str();
1432 std::string nommat=
"";
1433 if (param[5].argument[0]!=
"")
1437 if (entite==
"CONSTRUCTION")
1440 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
1441 double unite=atof(param[2].argument[0].c_str());
1442 std::string typegeo=param[3].
argument[0];
1443 std::string chemin_geo=param[4].
argument[0];
1445 if (typegeo==
"OCCV2017")
1447 mgconstruction=
new MG_GEOMETRIE((
char*)
"OCCV2017",
id,chemin_geo.c_str(),unite);
1448 mggeo=mgconstruction;
1452 std::string chemin_caf =
str_dossier + chemin_geo +
".ocaf";
1453 char* chemin_caf_char = (
char*)chemin_caf.c_str();
1457 if (typegeo==
"VIRTUEL")
1459 mgconstruction=
new MG_GEOMETRIE((
char*)typegeo.c_str(),
id,(
char*)chemin_geo.c_str(),unite);
1460 mggeo=mgconstruction;
1464 std::string nommat=
"";
1465 if (param[5].argument[0]!=
"")
1470 if (entite==
"ARBRE")
1472 parse.
decode(data.c_str(),
"@",param+2);
1473 std::string nom=param[2].
argument[0];
1474 arbre=
new MG_ARBRE(
id,nom.c_str());
1477 if (entite ==
"ASSEMBLAGE")
1479 parse.
decode(data.c_str(),
"@,@,(&)",param+2);
1480 std::string nom=param[2].
argument[0];
1481 int nb_primitive = atoi((
char*)param[3].argument[0].c_str());
1482 MG_ASSEMBLAGE *mgassembl=
new MG_ASSEMBLAGE(
id,nom.c_str());
1483 for(
int i=0;i<nb_primitive;i++)
1485 unsigned long id2 =
cid(param[4].argument[i]);
1486 mgassembl->ajouter_mg_primitive(id2);
1488 arbre->ajouter_mg_assemblage(mgassembl);
1490 if (entite==
"BOITE")
1492 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
1493 double x1=atof((
char*)param[2].argument[0].c_str());
1494 double y1=atof((
char*)param[3].argument[0].c_str());
1495 double z1=atof((
char*)param[4].argument[0].c_str());
1496 double x2=atof((
char*)param[5].argument[0].c_str());
1497 double y2=atof((
char*)param[6].argument[0].c_str());
1498 double z2=atof((
char*)param[7].argument[0].c_str());
1499 MG_PRIMITIVE_BOITE *b=
new MG_PRIMITIVE_BOITE(
id,x1,y1,z1,x2,y2,z2);
1501 arbre->ajouter_mg_primitive(b);
1503 if (entite==
"SPHERE")
1505 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
1506 double centre_x=atof((
char*)param[2].argument[0].c_str());
1507 double centre_y=atof((
char*)param[3].argument[0].c_str());
1508 double centre_z=atof((
char*)param[4].argument[0].c_str());
1509 double rayon=atof((
char*)param[5].argument[0].c_str());
1510 MG_PRIMITIVE_SPHERE *b=
new MG_PRIMITIVE_SPHERE(
id,centre_x,centre_y,centre_z,rayon);
1512 arbre->ajouter_mg_primitive(b);
1514 if (entite==
"ELLIPSOIDE_REVOLUTION")
1516 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@",param+2);
1517 double centre_x=atof((
char*)param[2].argument[0].c_str());
1518 double centre_y=atof((
char*)param[3].argument[0].c_str());
1519 double centre_z=atof((
char*)param[4].argument[0].c_str());
1520 double axe_x=atof((
char*)param[5].argument[0].c_str());
1521 double axe_y=atof((
char*)param[6].argument[0].c_str());
1522 double axe_z=atof((
char*)param[7].argument[0].c_str());
1523 double rayon_majeur=atof((
char*)param[8].argument[0].c_str());
1524 double rayon_mineur=atof((
char*)param[9].argument[0].c_str());
1525 MG_PRIMITIVE_ELLIPSOIDE_REVOLUTION *b=
new MG_PRIMITIVE_ELLIPSOIDE_REVOLUTION(
id,centre_x,centre_y,centre_z,axe_x,axe_y,axe_z,rayon_majeur,rayon_mineur);
1527 arbre->ajouter_mg_primitive(b);
1529 if (entite==
"CYLINDRE")
1531 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
1532 double extremite_x=atof((
char*)param[2].argument[0].c_str());
1533 double extremite_y=atof((
char*)param[3].argument[0].c_str());
1534 double extremite_z=atof((
char*)param[4].argument[0].c_str());
1535 double longitude=atof((
char*)param[5].argument[0].c_str());
1536 double latitude=atof((
char*)param[6].argument[0].c_str());
1537 double rayon=atof((
char*)param[7].argument[0].c_str());
1538 double longueur=atof((
char*)param[8].argument[0].c_str());
1539 MG_PRIMITIVE_CYLINDRE *b=
new MG_PRIMITIVE_CYLINDRE(
id,extremite_x,extremite_y,extremite_z,longitude,latitude,rayon,longueur);
1541 arbre->ajouter_mg_primitive(b);
1545 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
1546 double centre_x=atof((
char*)param[2].argument[0].c_str());
1547 double centre_y=atof((
char*)param[3].argument[0].c_str());
1548 double centre_z=atof((
char*)param[4].argument[0].c_str());
1549 double longitude=atof((
char*)param[5].argument[0].c_str());
1550 double latitude=atof((
char*)param[6].argument[0].c_str());
1551 double rayon_cercle=atof((
char*)param[7].argument[0].c_str());
1552 double rayon_tore=atof((
char*)param[8].argument[0].c_str());
1553 MG_PRIMITIVE_TORE *b=
new MG_PRIMITIVE_TORE(
id,centre_x,centre_y,centre_z,longitude,latitude,rayon_cercle,rayon_tore);
1555 arbre->ajouter_mg_primitive(b);
1559 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
1560 double base_x=atof((
char*)param[2].argument[0].c_str());
1561 double base_y=atof((
char*)param[3].argument[0].c_str());
1562 double base_z=atof((
char*)param[4].argument[0].c_str());
1563 double longitude=atof((
char*)param[5].argument[0].c_str());
1564 double latitude=atof((
char*)param[6].argument[0].c_str());
1565 double rayon=atof((
char*)param[7].argument[0].c_str());
1566 double hauteur=atof((
char*)param[8].argument[0].c_str());
1567 MG_PRIMITIVE_CONE *b=
new MG_PRIMITIVE_CONE(
id,base_x,base_y,base_z,longitude,latitude,rayon,hauteur);
1569 arbre->ajouter_mg_primitive(b);
1571 if (entite==
"UNION")
1573 parse.
decode(data.c_str(),
"@,@,@",param+2);
1574 int sem=atoi((
char*)param[2].argument[0].c_str());
1575 long id1=
cid((
char*)param[3].argument[0].c_str());
1576 long id2=
cid((
char*)param[4].argument[0].c_str());
1577 MG_PRIMITIVE *p1=arbre->get_mg_primitiveid(id1);
1578 MG_PRIMITIVE *p2=arbre->get_mg_primitiveid(id2);
1579 MG_OPERATEUR_BOOLEAN_UNION *op=
new MG_OPERATEUR_BOOLEAN_UNION(
id,sem,p1,p2);
1580 arbre->ajouter_mg_operateur_boolean(op);
1582 if (entite==
"DIFFERENCE")
1584 parse.
decode(data.c_str(),
"@,@,@",param+2);
1585 int sem=atoi((
char*)param[2].argument[0].c_str());
1586 long id1=
cid((
char*)param[3].argument[0].c_str());
1587 long id2=
cid((
char*)param[4].argument[0].c_str());
1588 MG_PRIMITIVE *p1=arbre->get_mg_primitiveid(id1);
1589 MG_PRIMITIVE *p2=arbre->get_mg_primitiveid(id2);
1590 MG_OPERATEUR_BOOLEAN_DIFFERENCE *op=
new MG_OPERATEUR_BOOLEAN_DIFFERENCE(
id,sem,p1,p2);
1591 arbre->ajouter_mg_operateur_boolean(op);
1593 if (entite==
"INTERSECTION")
1595 parse.
decode(data.c_str(),
"@,@,@",param+2);
1596 int sem=atoi((
char*)param[2].argument[0].c_str());
1597 long id1=
cid((
char*)param[3].argument[0].c_str());
1598 long id2=
cid((
char*)param[4].argument[0].c_str());
1599 MG_PRIMITIVE *p1=arbre->get_mg_primitiveid(id1);
1600 MG_PRIMITIVE *p2=arbre->get_mg_primitiveid(id2);
1601 MG_OPERATEUR_BOOLEAN_INTERSECTION *op=
new MG_OPERATEUR_BOOLEAN_INTERSECTION(
id,sem,p1,p2);
1602 arbre->ajouter_mg_operateur_boolean(op);
1604 if (entite==
"PRIM_COMPLEXE")
1606 parse.
decode(data.c_str(),
"@",param+2);
1607 long id1=
cid((
char*)param[2].argument[0].c_str());
1608 MG_OPERATEUR_BOOLEAN *op=arbre->get_mg_operateur_booleanid(id1);
1609 MG_PRIMITIVE* p=op->construit(
id);
1610 arbre->ajouter_mg_primitive(p);
1613 if (entite==
"MG_CG_MODELE")
1617 if (entite ==
"MG_CG_ASSEMBLAGE")
1621 if (entite ==
"MG_CG_INFO_DOUBLE")
1625 if (entite ==
"MG_CG_INFO_STRING")
1629 if (entite ==
"MG_CG_INFO_VCT_DOUBLE")
1633 if (entite ==
"MG_CG_GROUPE_FORME")
1637 if (entite ==
"MG_CG_FORME_ARETE")
1641 if (entite ==
"MG_CG_FORME_ARETE_DROITE")
1645 if (entite ==
"MG_CG_FORME_VOLUME")
1649 if (entite ==
"MG_CG_FORME_VOLUME_BOITE")
1653 if (entite ==
"MG_CG_FORME_VOLUME_SPHERE")
1657 if (entite ==
"MG_CG_FORME_VOLUME_ELLIPSOIDE")
1661 if (entite ==
"MG_CG_FORME_VOLUME_CYLINDRE")
1665 if (entite ==
"MG_CG_FORME_VOLUME_CONE")
1669 if (entite ==
"MG_CG_FORME_VOLUME_TORE")
1673 if (entite ==
"MG_CG_FORME_MULTIPLE")
1677 if (entite ==
"MG_CG_FORME_MULTI_VOLUME")
1681 if (entite ==
"MG_CG_OP_BOOL_UNION")
1685 if (entite ==
"MG_CG_OP_BOOL_DIFFERENCE")
1689 if (entite ==
"MG_CG_OP_BOOL_INTERSECTION")
1693 if (entite ==
"MG_CG_OP_BOOL_FRAGMENT")
1697 if (entite ==
"MG_CG_OP_INCLUSION_MATRICE")
1701 if (entite ==
"MG_CG_OP_TRANSF_ROTATION")
1705 if (entite ==
"MG_CG_OP_TRANSF_TRANSLATION")
1709 if (entite ==
"MG_CG_OP_TRANSF_ECHELLE")
1713 if (entite ==
"MG_CG_OP_TRANSF_DECALLAGE")
1719 if (entite ==
"MG_SOUS_GEOMETRIE")
1723 if (entite==
"GEOMETRIE_EPS")
1725 parse.
decode(data.c_str(),
"@",param+2);
1726 double val=atof((
char*)param[2].argument[0].c_str());
1729 if (entite==
"GROUPE_TOPOLOGIQUE")
1731 parse.
decode(data.c_str(),
"@,(&)",param+2);
1734 int nb=atoi(param[2].argument[0].c_str());
1735 for (
int i=0;i<nb;i++)
1737 unsigned long id2=
cid(param[3].argument[i].c_str());
1743 if (ele!=NULL) mggt->
ajouter(ele);
1747 if (entite==
"GEOM_FONCTION")
1749 parse.
decode(data.c_str(),
"@,@,(&)",param+2);
1750 int dim=atoi((
char*)param[2].argument[0].c_str());
1753 int nb=atoi(param[3].argument[0].c_str());
1754 for (
int i=0;i<nb;i++)
1756 parse.
decode(param[4].argument[i].c_str(),
"(&)",param+5);
1757 double *coo=
new double[dim];
1758 for (
int j=0;j<dim;j++)
1759 coo[j]=atof(param[5].argument[j].c_str());
1766 if (entite==
"VOLUME")
1782 if (entite==
"COQUE")
1786 parse.
decode(data.c_str(),
"@,@,@,@,(&)",param+2);
1789 int nummat=atoi((
char*)param[4].argument[0].c_str());
1791 int nb=atoi(param[5].argument[0].c_str());
1796 parse.
decode(data.c_str(),
"@,@,@,(&)",param+2);
1799 int nb=atoi(param[4].argument[0].c_str());
1815 if (entite==
"POUTRE")
1819 parse.
decode(data.c_str(),
"@,@,@,@,(&)",param+2);
1822 int nummat=atoi((
char*)param[4].argument[0].c_str());
1824 int nb=atoi(param[5].argument[0].c_str());
1829 parse.
decode(data.c_str(),
"@,@,@,(&)",param+2);
1832 int nb=atoi(param[4].argument[0].c_str());
1849 if (entite==
"COQUILLE")
1855 if (entite==
"SURFACE_STEP")
1857 parse.
decode(data.c_str(),
"@",param+2);
1858 long idstepsuf=atol(param[2].argument[0].c_str());
1863 if (entite==
"COURBE_STEP")
1865 parse.
decode(data.c_str(),
"@",param+2);
1866 long idstepcur=atol(param[2].argument[0].c_str());
1872 if (entite==
"POINT_STEP")
1874 parse.
decode(data.c_str(),
"@",param+2);
1875 long idsteppt=atol(param[2].argument[0].c_str());
1883 if (entite==
"SURFACE_SAT")
1885 parse.
decode(data.c_str(),
"@",param+2);
1886 long idsatsuf=atol(param[2].argument[0].c_str());
1891 if (entite==
"COURBE_SAT")
1893 parse.
decode(data.c_str(),
"@",param+2);
1894 long idsatcur=atol(param[2].argument[0].c_str());
1900 if (entite==
"POINT_SAT")
1902 parse.
decode(data.c_str(),
"@",param+2);
1903 long idsatpt=atol(param[2].argument[0].c_str());
1913 if (entite==
"SURFACE_OCC")
1915 parse.
decode(data.c_str(),
"@",param+2);
1916 long idocc=atol(param[2].argument[0].c_str());
1917 TopoDS_Face occface;
1926 occface=TopoDS::Face(occshape);
1933 if (entite==
"COURBE_OCC")
1935 parse.
decode(data.c_str(),
"@",param+2);
1936 long idocc=atol(param[2].argument[0].c_str());
1937 TopoDS_Edge occedge;
1946 occedge=TopoDS::Edge(occshape);
1952 if (entite==
"POINT_OCC")
1954 parse.
decode(data.c_str(),
"@",param+2);
1955 long idocc=atol(param[2].argument[0].c_str());
1956 TopoDS_Vertex occvertex;
1965 occvertex=TopoDS::Vertex(occshape);
1973 #ifdef WINDOWS_VERSION
1974 if (entite==
"CAD4FE_POLYCURVE")
1977 parse.
decode(data.c_str(),
"@,(&)",param+2);
1978 int nb = atoi(param[2].argument[0].c_str());
1982 printf(
"PolyCurve %d is formed with reference vertex : ",
id);
1983 parse.
decode(param[3].argument[0].c_str(),
"@",param+4);
1985 idRefVertex=
cid(param[4].argument[0].c_str());
1986 printf(
"%d ;\n ", idRefVertex);
1992 printf(
"PolyCurve %d is formed with reference edges : ",
id);
1994 for (
int i=0;i<nb;i++)
1996 parse.
decode(param[3].argument[i].c_str(),
"@",param+4);
1998 idRefEdge=
cid(param[4].argument[0].c_str());
1999 printf(
"%d ; ", idRefEdge);
2002 polycurve->
Merge(tmpPC);
2012 if (entite==
"CAD4FE_POLYSURFACE")
2018 parse.
decode(data.c_str(),
"@,(&)",param+2);
2020 int nb = atoi(param[2].argument[0].c_str());
2021 printf(
"PolySurface %d is formed with reference faces : ",
id);
2022 for (
int i=0;i<nb;i++)
2024 parse.
decode(param[3].argument[i].c_str(),
"@",param+4);
2026 idRefFace=
cid(param[4].argument[0].c_str());
2027 printf(
"%d ; ", idRefFace);
2031 polysurface->
Merge(tmpSF);
2036 if (entite==
"CAD4FE_MCEDGE")
2038 parse.
decode(data.c_str(),
"@,@,@,@,@,@,(&)",param+2);
2040 std::string idOriginal = param[2].
argument[0];
2041 long idPolyCurve=
cid(param[3].argument[0]);
2051 int nb=atoi(param[7].argument[0].c_str());
2054 for (
int i=0;i<nb;i++)
2056 parse.
decode(param[8].argument[i].c_str(),
"(@,@)",param+9);
2059 strcpy(nom,param[9].argument[0].c_str());
2060 val=atof(param[10].argument[0].c_str());
2065 if (entite==
"CAD4FE_MCFACE")
2067 parse.
decode(data.c_str(),
"@,@,@,@,@,(&)",param+2);
2069 std::string idOriginal = param[2].
argument[0];
2070 long idPolySurface=
cid(param[3].argument[0]);
2077 int nb=atoi(param[6].argument[0].c_str());
2080 for (
int i=0;i<nb;i++)
2082 parse.
decode(param[7].argument[i].c_str(),
"(@,@)",param+8);
2085 strcpy(nom,param[8].argument[0].c_str());
2086 val=atof(param[9].argument[0].c_str());
2091 if (entite==
"CAD4FE_MCVERTEX")
2093 parse.
decode(data.c_str(),
"@,@,@,(&),@,(&)",param+2);
2094 std::string idOriginal = param[2].
argument[0];
2095 long idsom=
cid(param[3].argument[0]);
2100 int nb_ref_vertex=atoi(param[4].argument[0].c_str());
2101 if (nb_ref_vertex!=0)
2103 for (
int i=0;i<nb_ref_vertex;i++)
2105 unsigned long idRefVertex=
cid(param[5].argument[i]);
2107 mapMergedRefVertices.insert(std::make_pair(mcVertex,idRefVertex));
2110 int nb_ccf=atoi(param[4+2].argument[0].c_str());
2113 for (
int i=0;i<nb_ccf;i++)
2115 parse.
decode(param[5+2].argument[i].c_str(),
"(@,@)",param+6+2);
2118 strcpy(nom_ccf,param[6+2].argument[0].c_str());
2119 val_ccf=atof(param[7+2].argument[0].c_str());
2141 if (entite==
"COFACE")
2143 parse.
decode(data.c_str(),
"@,@,@",param+2);
2144 long idface=
cid(param[2].argument[0]);
2145 long idcoq=
cid(param[3].argument[0]);
2146 int sens=atoi(param[4].argument[0].c_str());
2152 if (entite==
"BOUCLE")
2156 if (entite==
"POINT")
2158 parse.
decode(data.c_str(),
"@,@,@",param+2);
2160 xyz[0]=atof(param[2].argument[0].c_str());
2161 xyz[1]=atof(param[3].argument[0].c_str());
2162 xyz[2]=atof(param[4].argument[0].c_str());
2166 if (entite==
"SOMMET")
2171 if (entite==
"OCC_SOMMET")
2173 parse.
decode(data.c_str(),
"@,@,@,@,(&)",param+2);
2174 long idpoint=
cid(param[3].argument[0]);
2176 TopoDS_Vertex topods_vertex;
2177 long idori = stol(param[2].argument[0]);
2189 std::cout <<
"*** MG_FILE : ERREUR lecture OCC_SOMMET : Mauvaise OCC_FONCTION ! ***" << std::endl;
2195 int ipole=atoi(param[4].argument[0].c_str());
2198 int nb=atoi(param[argccf-1].argument[0].c_str());
2201 if (entite==
"OCC_ARETE")
2203 parse.
decode(data.c_str(),
"@,@,@,@,@,@,(&)",param+2);
2204 long idcur=
cid(param[3].argument[0]);
2205 int sens=atol(param[6].argument[0].c_str());
2206 long idori = stoi(param[2].argument[0]);
2207 TopoDS_Edge topods_edge;
2220 std::cout <<
"*** MG_FILE : ERREUR lecture OCC_ARETE : Mauvaise OCC_FONCTION ! ***" << std::endl;
2222 int nb=atoi(param[7].argument[0].c_str());
2225 if (entite==
"OCC_BOUCLE")
2227 parse.
decode(data.c_str(),
"@,@,(@)",param+2);
2228 long ident=
cid(param[2].argument[0]);
2229 long idori=stol(param[3].argument[0]);
2230 TopoDS_Wire topods_wire;
2262 std::cout <<
"*** MG_FILE : ERREUR lecture OCC_BOUCLE : Mauvaise OCC_FONCTION ! ***" << std::endl;
2266 if (entite==
"OCC_FACE")
2268 parse.
decode(data.c_str(),
"@,@,(@),@,@,@,(&)",param+2);
2269 long idsurf=
cid(param[3].argument[0]);
2270 int sens=atoi(param[5].argument[0].c_str());
2271 long idori = stol(param[2].argument[0]);
2272 TopoDS_Face topods_face;
2285 std::cout <<
"*** MG_FILE : ERREUR lecture OCC_FACE : Mauvaise OCC_FONCTION ! ***" << std::endl;
2291 int nbpole=atoi(param[6].argument[0].c_str());
2294 int nb=atoi(param[argccf-1].argument[0].c_str());
2297 if (entite==
"OCC_COQUILLE")
2299 parse.
decode(data.c_str(),
"@,@,@",param+2);
2300 long ident=
cid(param[2].argument[0]);
2301 long idori = stol(param[3].argument[0]);
2302 TopoDS_Shell topods_shell;
2334 std::cout <<
"*** MG_FILE : ERREUR lecture OCC_COQUILLE : Mauvaise OCC_FONCTION ! ***" << std::endl;
2337 if (entite==
"OCC_VOLUME")
2340 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
2341 long idori = stol(param[2].argument[0]);
2342 TopoDS_Solid topods_solid;
2354 std::cout <<
"*** MG_FILE : ERREUR lecture OCC_VOLUME : Mauvaise OCC_FONCTION ! ***" << std::endl;
2356 int mince=atoi(param[4].argument[0].c_str());
2359 std::string data2=param[5].
argument[0];
2360 parse.
decode(data2.c_str(),
"@,(&)",param+5);
2361 int nb=atoi(param[5].argument[0].c_str());
2366 std::string data2=param[5].
argument[0];
2367 parse.
decode(data2.c_str(),
"(&),@,(&)",param+5);
2368 int nb_face=param[5].
argument.size();
2369 for (
int i=0;i<nb_face;i=i+2)
2371 unsigned long idn1=
cid(param[5].argument[i]);
2372 unsigned long idn2=
cid(param[5].argument[i+1]);
2373 volumemince.push_back(
id);
2374 volumemince.push_back(idn1);
2375 volumemince.push_back(idn2);
2377 int nb=atoi(param[6].argument[0].c_str());
2384 if (entite==
"ARETE_ELEMENT")
2387 parse.
decode(data.c_str(),
"@,(&),@,(&)",param+2);
2389 parse.
decode(data.c_str(),
"@,(&),(&),@,(&)",param+2);
2398 int nb=atoi(param[numparamnb].argument[0].c_str());
2403 if (entite==
"FACE_ELEMENT")
2406 parse.
decode(data.c_str(),
"@,(&),@,(&)",param+2);
2408 parse.
decode(data.c_str(),
"@,(&),(&),@,(&)",param+2);
2418 int nb=atoi(param[numparamnb].argument[0].c_str());
2423 if (entite==
"COQUE_ELEMENT")
2425 parse.
decode(data.c_str(),
"@,(&),@,(&)",param+2);
2428 int nbele=atoi(param[2].argument[0].c_str());
2429 for (
int i=0;i<nbele;i++)
2431 unsigned long idele=
cid(param[3].argument[i].c_str());
2434 int nb=atoi(param[4].argument[0].c_str());
2449 if (entite==
"POUTRE_ELEMENT")
2451 parse.
decode(data.c_str(),
"@,(&),@,(&)",param+2);
2454 int nbele=atoi(param[2].argument[0].c_str());
2455 for (
int i=0;i<nbele;i++)
2457 unsigned long idele=
cid(param[3].argument[i].c_str());
2460 int nb=atoi(param[4].argument[0].c_str());
2475 if (entite==
"VOLUME_ELEMENT")
2478 parse.
decode(data.c_str(),
"@,(&),@,(&)",param+2);
2480 parse.
decode(data.c_str(),
"@,(&),(&),@,(&)",param+2);
2490 int nb=atoi(param[numparamnb].argument[0].c_str());
2494 if (entite==
"SOMMET_NOEUD")
2497 parse.
decode(data.c_str(),
"@,@,(&)",param+2);
2499 parse.
decode(data.c_str(),
"@,(&),@,(&)",param+2);
2500 long idnoeud=
cid(param[2].argument[0]);
2510 int nb=atoi(param[numparamnb].argument[0].c_str());
2513 if (entite==
"ARETE")
2517 if (entite==
"COSOMMET")
2519 parse.
decode(data.c_str(),
"@,@,@",param+2);
2520 long idsom=
cid(param[2].argument[0]);
2521 long idarete=
cid(param[3].argument[0]);
2522 int num=atoi(param[4].argument[0].c_str());
2529 if (entite==
"COARETE")
2531 parse.
decode(data.c_str(),
"@,@,@",param+2);
2532 long idarete=
cid(param[2].argument[0]);
2533 long idboucle=
cid(param[3].argument[0]);
2534 int sens=atoi(param[4].argument[0].c_str());
2540 if (entite==
"VISU_COURBE")
2542 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
2545 xyz1[0]=atof(param[2].argument[0].c_str());
2546 xyz1[1]=atof(param[3].argument[0].c_str());
2547 xyz1[2]=atof(param[4].argument[0].c_str());
2548 xyz2[0]=atof(param[5].argument[0].c_str());
2549 xyz2[1]=atof(param[6].argument[0].c_str());
2550 xyz2[2]=atof(param[7].argument[0].c_str());
2554 if (entite==
"MAILLAGE")
2556 parse.
decode(data.c_str(),
"@",param+2);
2557 long idgeo=
cid(param[2].argument[0]);
2563 if (entite==
"MAILLAGE_STRUCTURE")
2565 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@",param+2);
2566 long idgeo=
cid(param[2].argument[0]);
2570 double xmin=atof(param[3].argument[0].c_str());
2571 double ymin=atof(param[4].argument[0].c_str());
2572 double zmin=atof(param[5].argument[0].c_str());
2573 double xmax=atof(param[6].argument[0].c_str());
2574 double ymax=atof(param[7].argument[0].c_str());
2575 double zmax=atof(param[8].argument[0].c_str());
2576 int nx=atoi(param[9].argument[0].c_str());
2577 int ny=atoi(param[10].argument[0].c_str());
2578 int nz=atoi(param[11].argument[0].c_str());
2579 BOITE_3D b(xmin,ymin,zmin,xmax,ymax,zmax);
2582 if (entite==
"FEM_MAILLAGE")
2584 parse.
decode(data.c_str(),
"@,@,@",param+2);
2585 int degre=atoi(param[2].argument[0].c_str());
2586 long idmai=
cid(param[3].argument[0]);
2587 long idgeo=
cid(param[4].argument[0]);
2594 if (entite==
"FEM_MAILLAGE_STRUCTURE")
2596 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,@",param+2);
2597 int degre=atoi(param[2].argument[0].c_str());
2598 long idmai=
cid(param[3].argument[0]);
2599 long idgeo=
cid(param[4].argument[0]);
2604 double xmin=atof(param[5].argument[0].c_str());
2605 double ymin=atof(param[6].argument[0].c_str());
2606 double zmin=atof(param[7].argument[0].c_str());
2607 double xmax=atof(param[8].argument[0].c_str());
2608 double ymax=atof(param[9].argument[0].c_str());
2609 double zmax=atof(param[10].argument[0].c_str());
2610 int nx=atoi(param[11].argument[0].c_str());
2611 int ny=atoi(param[12].argument[0].c_str());
2612 int nz=atoi(param[13].argument[0].c_str());
2613 BOITE_3D b(xmin,ymin,zmin,xmax,ymax,zmax);
2616 if (entite==
"NOEUD")
lire_NOEUD(
id,parse,param,data,mgmai,mggeo);
2617 if (entite==
"FEM_NOEUD")
2619 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
2620 long idtopo=
cid(param[2].argument[0]);
2621 long idmai=
cid(param[3].argument[0]);
2622 double x=atof(param[4].argument[0].c_str());
2623 double y=atof(param[5].argument[0].c_str());
2624 double z=atof(param[6].argument[0].c_str());
2625 int num=atoi(param[7].argument[0].c_str());
2626 int numopt=atoi(param[8].argument[0].c_str());
2637 if (elmai!=NULL) noeud=
new FEM_NOEUD(
id,elmai,x,y,z);
2655 if (entite==
"FEM_NOEUD_DEF")
2657 parse.
decode(data.c_str(),
"@,@,@",param+2);
2658 double x=atof(param[2].argument[0].c_str());
2659 double y=atof(param[3].argument[0].c_str());
2660 double z=atof(param[4].argument[0].c_str());
2667 if (entite==
"FEM_NOEUD_REAC")
2669 parse.
decode(data.c_str(),
"@,@,@",param+2);
2670 double x=atof(param[2].argument[0].c_str());
2671 double y=atof(param[3].argument[0].c_str());
2672 double z=atof(param[4].argument[0].c_str());
2679 if (entite==
"SEGMENT")
lire_SEGMENT(
id,parse,param,data,mgmai,mggeo);
2680 if (entite==
"FEM_ELEMENT_NOEUD")
2682 parse.
decode(data.c_str(),
"@,@,@",param+2);
2683 long idtopo=
cid(param[2].argument[0]);
2684 long idmai=
cid(param[3].argument[0]);
2685 long idn1=
cid(param[4].argument[0]);
2698 if (entite==
"FEM_SEGMENT2")
2700 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
2701 long idtopo=
cid(param[2].argument[0]);
2702 long idmai=
cid(param[3].argument[0]);
2703 long idn1=
cid(param[4].argument[0]);
2704 long idn2=
cid(param[5].argument[0]);
2719 if (entite==
"FEM_MINI_SEGMENT2")
2721 parse.
decode(data.c_str(),
"@,@",param+2);
2722 long idn1=
cid(param[2].argument[0]);
2723 long idn2=
cid(param[3].argument[0]);
2731 if (entite==
"FEM_SEGMENT3")
2733 parse.
decode(data.c_str(),
"@,@,@,@,@",param+2);
2734 long idtopo=
cid(param[2].argument[0]);
2735 long idmai=
cid(param[3].argument[0]);
2736 long idn1=
cid(param[4].argument[0]);
2737 long idn2=
cid(param[5].argument[0]);
2738 long idn3=
cid(param[6].argument[0]);
2753 if (entite==
"TRIANGLE")
lire_TRIANGLE(
id,parse,param,data,mgmai,mggeo);
2754 if (entite==
"QUADRANGLE")
lire_QUADRANGLE(
id,parse,param,data,mgmai,mggeo);
2755 if (entite==
"FEM_TRIANGLE3")
2757 parse.
decode(data.c_str(),
"@,@,@,@,@",param+2);
2758 long idtopo=
cid(param[2].argument[0]);
2759 long idmai=
cid(param[3].argument[0]);
2760 long idn1=
cid(param[4].argument[0]);
2761 long idn2=
cid(param[5].argument[0]);
2762 long idn3=
cid(param[6].argument[0]);
2777 if (entite==
"FEM_TRIANGLE6")
2779 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@",param+2);
2780 long idtopo=
cid(param[2].argument[0]);
2781 long idmai=
cid(param[3].argument[0]);
2782 long idn1=
cid(param[4].argument[0]);
2783 long idn2=
cid(param[5].argument[0]);
2784 long idn3=
cid(param[6].argument[0]);
2785 long idn4=
cid(param[7].argument[0]);
2786 long idn5=
cid(param[8].argument[0]);
2787 long idn6=
cid(param[9].argument[0]);
2805 if (entite==
"FEM_QUADRANGLE4")
2807 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
2808 long idtopo=
cid(param[2].argument[0]);
2809 long idmai=
cid(param[3].argument[0]);
2810 long idn1=
cid(param[4].argument[0]);
2811 long idn2=
cid(param[5].argument[0]);
2812 long idn3=
cid(param[6].argument[0]);
2813 long idn4=
cid(param[7].argument[0]);
2829 if (entite==
"FEM_QUADRANGLE8")
2831 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@",param+2);
2832 long idtopo=
cid(param[2].argument[0]);
2833 long idmai=
cid(param[3].argument[0]);
2834 long idn1=
cid(param[4].argument[0]);
2835 long idn2=
cid(param[5].argument[0]);
2836 long idn3=
cid(param[6].argument[0]);
2837 long idn4=
cid(param[7].argument[0]);
2838 long idn5=
cid(param[8].argument[0]);
2839 long idn6=
cid(param[9].argument[0]);
2840 long idn7=
cid(param[10].argument[0]);
2841 long idn8=
cid(param[11].argument[0]);
2861 if (entite==
"TETRAEDRE")
lire_TETRA(
id,parse,param,data,mgmai,mggeo);
2863 if (entite==
"HEXAEDRE")
lire_HEXA(
id,parse,param,data,mgmai,mggeo);
2864 if (entite==
"PENTAEDRE")
lire_PENTA(
id,parse,param,data,mgmai,mggeo);
2865 if (entite==
"PYRAMIDE")
lire_PYRAMIDE(
id,parse,param,data,mgmai,mggeo);
2866 if (entite==
"FEM_TETRA4")
2868 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
2869 long idtopo=
cid(param[2].argument[0]);
2870 long idmai=
cid(param[3].argument[0]);
2871 long idn1=
cid(param[4].argument[0]);
2872 long idn2=
cid(param[5].argument[0]);
2873 long idn3=
cid(param[6].argument[0]);
2874 long idn4=
cid(param[7].argument[0]);
2875 long etat=atoi(param[8].argument[0].c_str());
2892 if (entite==
"XFEM_ELEMENT_NOEUD")
2894 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
2895 unsigned long idele=
cid(param[2].argument[0]);
2896 unsigned long idtopo=
cid(param[3].argument[0]);
2897 unsigned long idn1=
cid(param[4].argument[0]);
2898 int etat=atoi(param[5].argument[0].c_str());
2910 if (entite==
"XFEM_SEGMENT2")
2912 parse.
decode(data.c_str(),
"@,@,@,@,@",param+2);
2913 unsigned long idele=
cid(param[2].argument[0]);
2914 unsigned long idtopo=
cid(param[3].argument[0]);
2915 unsigned long idn1=
cid(param[4].argument[0]);
2916 unsigned long idn2=
cid(param[5].argument[0]);
2917 int etat=atoi(param[6].argument[0].c_str());
2929 if (entite==
"XFEM_TRIANGLE3")
2931 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
2932 unsigned long idtet=
cid(param[2].argument[0]);
2933 unsigned long idtopo=
cid(param[3].argument[0]);
2934 unsigned long idn1=
cid(param[4].argument[0]);
2935 unsigned long idn2=
cid(param[5].argument[0]);
2936 unsigned long idn3=
cid(param[6].argument[0]);
2937 int etat=atoi(param[7].argument[0].c_str());
2948 if (entite==
"XFEM_TETRA4")
2950 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
2951 unsigned long idtet=
cid(param[2].argument[0]);
2952 unsigned long idtopo=
cid(param[3].argument[0]);
2953 unsigned long idn1=
cid(param[4].argument[0]);
2954 unsigned long idn2=
cid(param[5].argument[0]);
2955 unsigned long idn3=
cid(param[6].argument[0]);
2956 unsigned long idn4=
cid(param[7].argument[0]);
2957 int etat=atoi(param[8].argument[0].c_str());
2969 if (entite==
"FEM_TETRA10")
2971 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,@",param+2);
2972 long idtopo=
cid(param[2].argument[0]);
2973 long idmai=
cid(param[3].argument[0]);
2974 long idn1=
cid(param[4].argument[0]);
2975 long idn2=
cid(param[5].argument[0]);
2976 long idn3=
cid(param[6].argument[0]);
2977 long idn4=
cid(param[7].argument[0]);
2978 long idn5=
cid(param[8].argument[0]);
2979 long idn6=
cid(param[9].argument[0]);
2980 long idn7=
cid(param[10].argument[0]);
2981 long idn8=
cid(param[11].argument[0]);
2982 long idn9=
cid(param[12].argument[0]);
2983 long idn10=
cid(param[13].argument[0]);
3005 if (entite==
"FEM_HEXA8")
3007 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@",param+2);
3008 long idtopo=
cid(param[2].argument[0]);
3009 long idmai=
cid(param[3].argument[0]);
3010 long idn1=
cid(param[4].argument[0]);
3011 long idn2=
cid(param[5].argument[0]);
3012 long idn3=
cid(param[6].argument[0]);
3013 long idn4=
cid(param[7].argument[0]);
3014 long idn5=
cid(param[8].argument[0]);
3015 long idn6=
cid(param[9].argument[0]);
3016 long idn7=
cid(param[10].argument[0]);
3017 long idn8=
cid(param[11].argument[0]);
3037 if (entite==
"FEM_HEXA20")
3039 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@",param+2);
3040 long idtopo=
cid(param[2].argument[0]);
3041 long idmai=
cid(param[3].argument[0]);
3042 long idn1=
cid(param[4].argument[0]);
3043 long idn2=
cid(param[5].argument[0]);
3044 long idn3=
cid(param[6].argument[0]);
3045 long idn4=
cid(param[7].argument[0]);
3046 long idn5=
cid(param[8].argument[0]);
3047 long idn6=
cid(param[9].argument[0]);
3048 long idn7=
cid(param[10].argument[0]);
3049 long idn8=
cid(param[11].argument[0]);
3050 long idn9=
cid(param[12].argument[0]);
3051 long idn10=
cid(param[13].argument[0]);
3052 long idn11=
cid(param[14].argument[0]);
3053 long idn12=
cid(param[15].argument[0]);
3054 long idn13=
cid(param[16].argument[0]);
3055 long idn14=
cid(param[17].argument[0]);
3056 long idn15=
cid(param[18].argument[0]);
3057 long idn16=
cid(param[19].argument[0]);
3058 long idn17=
cid(param[20].argument[0]);
3059 long idn18=
cid(param[21].argument[0]);
3060 long idn19=
cid(param[22].argument[0]);
3061 long idn20=
cid(param[23].argument[0]);
3093 if (entite==
"FEM_PENTA6")
3095 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@",param+2);
3096 long idtopo=
cid(param[2].argument[0]);
3097 long idmai=
cid(param[3].argument[0]);
3098 long idn1=
cid(param[4].argument[0]);
3099 long idn2=
cid(param[5].argument[0]);
3100 long idn3=
cid(param[6].argument[0]);
3101 long idn4=
cid(param[7].argument[0]);
3102 long idn5=
cid(param[8].argument[0]);
3103 long idn6=
cid(param[9].argument[0]);
3121 if (entite==
"FEM_PENTA15")
3123 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@",param+2);
3124 long idtopo=
cid(param[2].argument[0]);
3125 long idmai=
cid(param[3].argument[0]);
3126 long idn1=
cid(param[4].argument[0]);
3127 long idn2=
cid(param[5].argument[0]);
3128 long idn3=
cid(param[6].argument[0]);
3129 long idn4=
cid(param[7].argument[0]);
3130 long idn5=
cid(param[8].argument[0]);
3131 long idn6=
cid(param[9].argument[0]);
3132 long idn7=
cid(param[10].argument[0]);
3133 long idn8=
cid(param[11].argument[0]);
3134 long idn9=
cid(param[12].argument[0]);
3135 long idn10=
cid(param[13].argument[0]);
3136 long idn11=
cid(param[14].argument[0]);
3137 long idn12=
cid(param[15].argument[0]);
3138 long idn13=
cid(param[16].argument[0]);
3139 long idn14=
cid(param[17].argument[0]);
3140 long idn15=
cid(param[18].argument[0]);
3167 if (entite==
"SOLUTION")
3169 parse.
decode(data.c_str(),
"@,@,@,@,@,@,(&)",param+2);
3170 int typeentite=atoi(param[2].argument[0].c_str());
3171 int typesolution=atoi(param[3].argument[0].c_str());
3172 std::string nomsol=param[4].
argument[0];
3173 long idmai=
cid(param[5].argument[0]);
3174 int nb=atoi(param[6].argument[0].c_str());
3175 std::string chemin=param[7].
argument[0];
3179 for (
int i=0;i<nb;i++)
3182 if (entite==
"FEM_SOLUTION")
3184 parse.
decode(data.c_str(),
"@,@,@,@,@,@,(&)",param+2);
3185 int typeentite=atoi(param[2].argument[0].c_str());
3186 int typesolution=atoi(param[3].argument[0].c_str());
3187 std::string nomsol=param[4].
argument[0];
3188 long idmai=
cid(param[5].argument[0]);
3189 int nb=atoi(param[6].argument[0].c_str());
3190 std::string chemin_sol=param[7].
argument[0];
3194 for (
int i=0;i<nb;i++)
3197 #ifdef WINDOWS_VERSION
3198 if (entite==
"CAD4FE_MCSEGMENT")
3200 parse.
decode(data.c_str(),
"@,@,@",param+2);
3201 long idtopo=
cid(param[2].argument[0]);
3202 long idn1=
cid(param[3].argument[0]);
3203 long idn2=
cid(param[4].argument[0]);
3217 if (entite==
"CAD4FE_MCNODE")
3219 parse.
decode(data.c_str(),
"@,@,@,@,@",param+2);
3220 long idRefTopo=
cid(param[2].argument[0]);
3221 long idMCTopo=
cid(param[3].argument[0]);
3222 double x=atof(param[4].argument[0].c_str());
3223 double y=atof(param[5].argument[0].c_str());
3224 double z=atof(param[6].argument[0].c_str());
3238 if (updatedMergedRefVertices ==
false)
3240 for (std::multimap<CAD4FE::MCVertex * , unsigned long>::iterator itMergedRefVertices = mapMergedRefVertices.begin();
3241 itMergedRefVertices != mapMergedRefVertices.end();
3242 itMergedRefVertices++)
3246 unsigned long id = itMergedRefVertices->second;
3251 updatedMergedRefVertices =
true;
3258 if (entite==
"CAD4FE_MCTRIANGLE")
3260 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
3261 long idtopo=
cid(param[2].argument[0]);
3262 long idn1=
cid(param[3].argument[0]);
3263 long idn2=
cid(param[4].argument[0]);
3264 long idn3=
cid(param[5].argument[0]);
3272 for (
int i=0;i<3;i++)
3275 if (mgsegment[i]==NULL)
3287 while (param[0].argument[0]!=
"FIN");
3289 for (
int i=0;i<volumemince.size();i=i+3)
3298 LISTE_MG_ARBRE::iterator itarbre;
3301 LISTE_MG_ASSEMBLAGE::iterator itass;
3302 for (MG_ASSEMBLAGE *ass=arb->get_premier_assemblage(itass);ass!=NULL;ass=arb->get_suivant_assemblage(itass))
3303 ass->ini_donne(arb);
3306 LISTE_MG_GEOMETRIE::iterator itgeo;
3309 LISTE_MG_CONSTRUCTION::iterator itcon;
3315 LISTE_MG_SOMMET::iterator itsom;
3316 for (
MG_SOMMET* som=geo->get_premier_sommet(itsom);som;som=geo->get_suivant_sommet(itsom))
3317 if (som->est_une_topo_element())
3322 LISTE_MG_MAILLAGE::iterator itmai;
3324 if (mai->get_mg_noeudid(idnoeud)!=NULL) noeud=mai->get_mg_noeudid(idnoeud);
3327 LISTE_MG_COQUE::iterator itcoq;
3328 for (
MG_COQUE* coq=geo->get_premier_coque(itcoq);coq;coq=geo->get_suivant_coque(itcoq))
3329 if (coq->est_une_topo_element())
3334 for (
int i=0;i<nbele;i++)
3339 LISTE_MG_MAILLAGE::iterator itmai;
3342 if (mai->get_mg_triangleid(eleid)!=NULL) mgmai=mai;
3343 if (mai->get_mg_quadrangleid(eleid)!=NULL) mgmai=mai;
3353 LISTE_MG_POUTRE::iterator itpou;
3354 for (
MG_POUTRE* pou=geo->get_premier_poutre(itpou);pou;pou=geo->get_suivant_poutre(itpou))
3355 if (pou->est_une_topo_element())
3360 for (
int i=0;i<nbele;i++)
3365 LISTE_MG_MAILLAGE::iterator itmai;
3368 if (mai->get_mg_segmentid(eleid)!=NULL) mgmai=mai;
3378 #ifdef WINDOWS_VERSION
3379 if (updatedMergedRefVertices ==
false)
3381 for (std::multimap<CAD4FE::MCVertex * , unsigned long>::iterator itMergedRefVertices = mapMergedRefVertices.begin();
3382 itMergedRefVertices != mapMergedRefVertices.end();
3383 itMergedRefVertices++)
3387 unsigned long id = itMergedRefVertices->second;
3392 updatedMergedRefVertices =
true;
void MergeRefVertex(MG_SOMMET *)
std::map< unsigned long, MG_SOMMET * > & GetMergedRefVertices()
void Merge(PolySurface &)
virtual void change_etat(int num, int val)
FEM_ELEMENT0 * get_fem_element0id(unsigned long num)
void change_param_structure(BOITE_3D btmp, int nxtmp, int nytmp, int nztmp)
int ajouter_xfem_element2(XFEM_ELEMENT2 *femelement2)
FEM_NOEUD * get_fem_noeudid(unsigned long num)
FEM_ELEMENT2 * get_fem_element2id(unsigned long num)
MG_MAILLAGE * get_mg_maillage(void)
int ajouter_xfem_element3(XFEM_ELEMENT3 *femelement3)
int ajouter_xfem_element1(XFEM_ELEMENT1 *femelement1)
FEM_NOEUD * ajouter_fem_noeud(MG_NOEUD *mgnoeud, unsigned long num=0)
void active_reaction(void)
int ajouter_xfem_element0(XFEM_ELEMENT0 *femelement0)
void active_deforme(void)
int ajouter_fem_element3(FEM_ELEMENT3 *femelement3)
int ajouter_fem_element1(FEM_ELEMENT1 *femsegment)
FEM_ELEMENT3 * get_fem_element3id(unsigned long num)
int ajouter_fem_element2(FEM_ELEMENT2 *femtriangle)
FEM_ELEMENT1 * get_fem_element1id(unsigned long num)
int ajouter_fem_element0(FEM_ELEMENT0 *femnoeud)
void change_numero_opt(int num)
void change_numero(int num)
virtual void change_ry(double yy)
virtual void change_rx(double xx)
virtual void change_dy(double yy)
virtual void change_dz(double zz)
virtual void change_rz(double zz)
virtual void change_dx(double xx)
void change_legende(int num, std::string val)
virtual void changer_cosommet1(class MG_COSOMMET *cosom)
virtual void changer_cosommet2(class MG_COSOMMET *cosom)
virtual void ajouter_mg_coarete(class MG_COARETE *mgcoarete)
void actualiser_mg_sous_geometrie(void)
virtual int ajouter_mgcg_forme(MG_CG_FORME *mgcg_forme, bool avec_mg_element=true)
virtual void change_mg_sous_geometrie(MG_SOUS_GEOMETRIE *mg_sous_geometrie)
virtual void change_mgcg_operateur_parent(MG_CG_OPERATEUR *mgcg_operateur)
int ajouter_mgcg_forme(MG_CG_FORME *mgcg_forme)
virtual int ajouter_mgcg_assemblage(MG_CG_ASSEMBLAGE *mgcg_assemblage)
virtual MG_CG_OPERATEUR * get_mgcg_operateurid(long id)
virtual void change_epsilon_triangulation(double val)
virtual MG_GEOMETRIE * get_mg_geometrie(void)
virtual void change_fusionner_entite_similaire(bool val)
virtual void change_importer_triangulation(bool val)
virtual MG_CG_FORME * get_mgcg_formeid(long id)
virtual MG_CG_ASSEMBLAGE * get_mgcg_assemblageid(long id)
MG_IDENTIFICATEUR * get_mg_identificateur(long id)
virtual void change_decallage(double decallage)
virtual void change_facteur_echelle(double facteur_echelle)
virtual void change_centre_echelle(double x, double y, double z)
virtual void change_rotation(OT_QUATERNION &quaternion)
virtual void change_centre_rotation(double x, double y, double z)
virtual void change_translation(double x, double y, double z)
virtual int ajouter_mgcg_forme_sortie(MG_CG_FORME *mgcg_forme)
static MG_CG_FORME_ARETE * creer_MG_CG_FORME_ARETE(MG_CG_MODELE *mgcg_modele, int provenance, MG_ARETE *mg_arete)
static MG_CG_FORME_ARETE_DROITE * creer_MG_CG_FORME_ARETE_DROITE(MG_CG_MODELE *mgcg_modele, double x1, double y1, double z1, double x2, double y2, double z2)
static MG_CG_FORME_VOLUME_ELLIPSOIDE * creer_MG_CG_FORME_VOLUME_ELLIPSOIDE(MG_CG_MODELE *mgcg_modele, double centre_x, double centre_y, double centre_z, double direction_x, double direction_y, double direction_z, double rayon_majeur, double rayon_mineur)
static MG_CG_OP_TRANSF_DECALLAGE * creer_MG_CG_OP_TRANSF_DECALLAGE(MG_CG_MODELE *mgcg_modele, int semantique, MG_CG_FORME *mgcg_forme_entree)
static MG_CG_OP_TRANSF_ROTATION * creer_MG_CG_OP_TRANSF_ROTATION(MG_CG_MODELE *mgcg_modele, int semantique, MG_CG_FORME *mgcg_forme_entree)
static MG_CG_OP_BOOL_UNION * creer_MG_CG_OP_BOOL_UNION(MG_CG_MODELE *mgcg_modele, int semantique, MG_CG_FORME *mgcg_forme_entree_1, MG_CG_FORME *mgcg_forme_entree_2)
static MG_CG_OP_BOOL_FRAGMENT * creer_MG_CG_OP_BOOL_FRAGMENT(MG_CG_MODELE *mgcg_modele, int semantique, MG_CG_FORME *mgcg_forme_entree_1, MG_CG_FORME *mgcg_forme_entree_2)
static MG_CG_FORME_VOLUME_CONE * creer_MG_CG_FORME_VOLUME_CONE(MG_CG_MODELE *mgcg_modele, double extremite_x, double extremite_y, double extremite_z, double direction_x, double direction_y, double direction_z, double rayon, double longueur)
static MG_CG_OP_BOOL_DIFFERENCE * creer_MG_CG_OP_BOOL_DIFFERENCE(MG_CG_MODELE *mgcg_modele, int semantique, MG_CG_FORME *mgcg_forme_entree_1, MG_CG_FORME *mgcg_forme_entree_2)
static MG_CG_OP_BOOL_INTERSECTION * creer_MG_CG_OP_BOOL_INTERSECTION(MG_CG_MODELE *mgcg_modele, int semantique, MG_CG_FORME *mgcg_forme_entree_1, MG_CG_FORME *mgcg_forme_entree_2)
static MG_CG_FORME_MULTI_VOLUME * creer_MG_CG_FORME_MULTI_VOLUME(MG_CG_MODELE *mgcg_modele, int provenance, std::vector< MG_VOLUME * > &vector_mg_volume)
static MG_CG_OP_TRANSF_ECHELLE * creer_MG_CG_OP_TRANSF_ECHELLE(MG_CG_MODELE *mgcg_modele, int semantique, MG_CG_FORME *mgcg_forme_entree)
static MG_CG_OP_INCLUSION_MATRICE * creer_MG_CG_OP_INCLUSION_MATRICE(MG_CG_MODELE *mgcg_modele, int semantique, MG_CG_FORME *mgcg_forme_inclusion_entree, MG_CG_FORME *mgcg_forme_matrice_entree)
static MG_CG_FORME_MULTIPLE * creer_MG_CG_FORME_MULTIPLE(MG_CG_MODELE *mgcg_modele, int provenance, std::vector< MG_ELEMENT_TOPOLOGIQUE * > &vector_mg_element_topologique, std::vector< MG_ELEMENT_COTOPOLOGIQUE * > &vector_mg_element_cotopologique)
static MG_CG_INFO_VCT_DOUBLE * creer_MG_CG_INFO_VCT_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE *mg_construction_geometrique, std::string identifiant, std::vector< double > &valeur)
static MG_CG_FORME_VOLUME_SPHERE * creer_MG_CG_FORME_VOLUME_SPHERE(MG_CG_MODELE *mgcg_modele, double centre_x, double centre_y, double centre_z, double rayon)
static MG_CG_INFO_STRING * creer_MG_CG_INFO_STRING(MG_CONSTRUCTION_GEOMETRIQUE *mg_construction_geometrique, std::string identifiant, std::string valeur)
static MG_CG_INFO_DOUBLE * creer_MG_CG_INFO_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE *mg_construction_geometrique, std::string identifiant, double valeur)
static MG_CG_OP_TRANSF_TRANSLATION * creer_MG_CG_OP_TRANSF_TRANSLATION(MG_CG_MODELE *mgcg_modele, int semantique, MG_CG_FORME *mgcg_forme_entree)
static MG_CG_GROUPE_FORME * creer_MG_CG_GROUPE_FORME(MG_CG_MODELE *mgcg_modele, std::string nom)
static MG_CG_FORME_VOLUME_CYLINDRE * creer_MG_CG_FORME_VOLUME_CYLINDRE(MG_CG_MODELE *mgcg_modele, double extremite_x, double extremite_y, double extremite_z, double direction_x, double direction_y, double direction_z, double rayon, double longueur)
static MG_CG_FORME_VOLUME_TORE * creer_MG_CG_FORME_VOLUME_TORE(MG_CG_MODELE *mgcg_modele, double centre_x, double centre_y, double centre_z, double direction_x, double direction_y, double direction_z, double rayon_cercle, double rayon_tore, double angle_seg=2 *M_PI, double angle_rotation=0.0)
static MG_CG_FORME_VOLUME_BOITE * creer_MG_CG_FORME_VOLUME_BOITE(MG_CG_MODELE *mgcg_modele, double x1, double y1, double z1, double x2, double y2, double z2)
static MG_CG_FORME_VOLUME * creer_MG_CG_FORME_VOLUME(MG_CG_MODELE *mgcg_modele, int provenance, MG_VOLUME *mg_volume)
virtual unsigned long get_liste_id(int num)
virtual void ajouter_element(MG_ELEMENT_MAILLAGE *ele)
virtual int get_nb_liste_id(void)
void change_num_materiau(int num)
virtual void ajouter_mg_coface(class MG_COFACE *mgcoface)
virtual void change_idoriginal(std::string id)
virtual void ajouter_contrainte(double val)
virtual void ajouter_ccf(char *nom, double val, std::string suiv="NS")
virtual int get_dimension(void)=0
virtual void change_nb_pole(int val)
virtual void lire_MG_SOMMET(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data, MG_GEOMETRIE *mggeo)
virtual void lire_MG_CG_OP_BOOL_DIFFERENCE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_CG_FORME_MULTIPLE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_CG_FORME_ARETE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_CG_INFO_DOUBLE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_CG_GROUPE_FORME(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_CG_FORME_VOLUME_TORE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_HEXA(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data, MG_MAILLAGE *mgmai, MG_GEOMETRIE *mggeo)
virtual void lire_MG_VOLUME(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data, MG_GEOMETRIE *mggeo, std::vector< unsigned long > &volumemince)
virtual void lire_MG_CG_FORME_VOLUME_ELLIPSOIDE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_CG_OP_INCLUSION_MATRICE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_ARETE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data, MG_GEOMETRIE *mggeo)
virtual void lire_MG_CG_FORME_ARETE_DROITE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_CG_FORME_VOLUME_SPHERE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_SOUS_GEOMETRIE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_CG_OP_TRANSF_ROTATION(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_NOEUD(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data, MG_MAILLAGE *mgmai, MG_GEOMETRIE *mggeo)
virtual void lire_MG_CG_OP_BOOL_INTERSECTION(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_COQUILLE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data, MG_GEOMETRIE *mggeo)
virtual void lire_MG_CG_FORME_VOLUME_CYLINDRE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_CG_OP_TRANSF_DECALLAGE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_CG_OP_TRANSF_TRANSLATION(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_CG_INFO_VCT_DOUBLE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
int get_code_de_lecture(void)
virtual void lire_MG_CG_FORME_VOLUME(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_contrainte(int numparam, class PARS_ARGUMENT(¶m)[100], MG_ELEMENT_TOPOLOGIQUE *ele)
virtual void lire_TRIANGLE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data, MG_MAILLAGE *mgmai, MG_GEOMETRIE *mggeo)
virtual void lire_MG_CG_FORME_VOLUME_BOITE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_SEGMENT(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data, MG_MAILLAGE *mgmai, MG_GEOMETRIE *mggeo)
virtual void lire_MG_CG_OP_TRANSF_ECHELLE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_PENTA(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data, MG_MAILLAGE *mgmai, MG_GEOMETRIE *mggeo)
virtual void lire_MG_CG_MODELE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual long cid(std::string str)
virtual int lire(char *chemin)
virtual void lire_PYRAMIDE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data, MG_MAILLAGE *mgmai, MG_GEOMETRIE *mggeo)
virtual void lire_QUADRANGLE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data, MG_MAILLAGE *mgmai, MG_GEOMETRIE *mggeo)
virtual void lire_MG_CG_FORME_VOLUME_CONE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_CG_ASSEMBLAGE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_FACE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data, MG_GEOMETRIE *mggeo)
virtual void lire_MG_CG_INFO_STRING(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_ccf(double version, int nb, int numparam, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], MG_ELEMENT_TOPOLOGIQUE *ele)
virtual void lire_MG_CG_OP_BOOL_UNION(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_BOUCLE(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data, MG_GEOMETRIE *mggeo)
virtual void lire_TETRA(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data, MG_MAILLAGE *mgmai, MG_GEOMETRIE *mggeo)
virtual void lire_MG_CG_FORME_MULTI_VOLUME(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void lire_MG_CG_OP_BOOL_FRAGMENT(long id, class PARSE &parse, class PARS_ARGUMENT(¶m)[100], std::string &data)
virtual void ajouter_point(double *coo)
double get_valeur_precision(void)
virtual int ajouter_mg_courbe(MG_COURBE *mgcrb)
class ST_GESTIONNAIRE & get_gest_step(void)
virtual int ajouter_mg_face(MG_FACE *mgface)
virtual int ajouter_mg_poutre(MG_POUTRE *mgpoutre)
MG_SURFACE * get_mg_surfaceid(unsigned long num)
MG_COQUE * get_mg_coqueid(unsigned long num)
MG_POUTRE * get_mg_poutreid(unsigned long num)
virtual int ajouter_mg_coquille(MG_COQUILLE *mgcoq)
virtual MG_ELEMENT_COTOPOLOGIQUE * get_mg_element_cotopologiqueid(long num)
virtual int ajouter_mg_visu_courbe(MG_VISU_COURBE *mgvcrb)
MG_BOUCLE * get_mg_boucleid(unsigned long num)
virtual int ajouter_mg_surface(MG_SURFACE *mgsrf)
virtual MG_ELEMENT_TOPOLOGIQUE * get_mg_element_topologiqueid(long num)
virtual int ajouter_mg_point(MG_POINT *mgpt)
virtual int ajouter_mg_coarete(MG_COARETE *mgcoarete)
virtual int ajouter_mg_volume(MG_VOLUME *mgvol)
virtual int ajouter_mg_arete(MG_ARETE *mgarete)
void change_valeur_precision(double val)
virtual int ajouter_mg_coque(MG_COQUE *mgcoque)
MG_COURBE * get_mg_courbeid(unsigned long num)
MG_POINT * get_mg_pointid(unsigned long num)
virtual int ajouter_mg_groupe_topologique(MG_GROUPE_TOPOLOGIQUE *mggroupe_topologique)
virtual int ajouter_mg_cosommet(MG_COSOMMET *mgcosom)
class SAT_GESTIONNAIRE & get_gest_sat(void)
char * get_type_geometrie(void)
MG_FACE * get_mg_faceid(unsigned long num)
virtual int ajouter_mg_boucle(MG_BOUCLE *mgboucle)
void change_gest_materiau(char *nom)
virtual int ajouter_mg_geom_fonction(MG_GEOM_FONCTION *mggeofon)
void change_est_construction(bool val)
MG_SOMMET * get_mg_sommetid(unsigned long num)
MG_COQUILLE * get_mg_coquilleid(unsigned long num)
class OCC_FONCTION & get_occ_fonction(void)
virtual int ajouter_mg_sommet(MG_SOMMET *mgsom)
MG_ARETE * get_mg_areteid(unsigned long num)
MG_VOLUME * get_mg_volumeid(unsigned long num)
virtual int ajouter_mg_coface(MG_COFACE *mgcoface)
MG_ARBRE * get_premier_arbre(LISTE_MG_ARBRE::iterator &it)
MG_MAILLAGE * get_mg_maillageid(unsigned long num)
MG_GEOMETRIE * get_premier_geometrie(LISTE_MG_GEOMETRIE::iterator &it)
MG_GEOMETRIE * get_mg_geometrieid(unsigned long num)
int ajouter_mg_arbre(MG_ARBRE *mgarbre)
MG_MAILLAGE * get_suivant_mg_maillage(LISTE_MG_MAILLAGE::iterator &it)
int ajouter_mg_geometrie(MG_GEOMETRIE *mggeo)
int ajouter_fem_solution(FEM_SOLUTION *mgsol)
LISTE_MGCG_MODELE lst_mgcg_modele
unsigned long entiteidmax
MG_GEOMETRIE * get_premier_construction(LISTE_MG_CONSTRUCTION::iterator &it)
int ajouter_mgcg_modele(MG_CG_MODELE *mgcg_modele)
int ajouter_mg_solution(MG_SOLUTION *mgsol)
MG_ARBRE * get_suivant_arbre(LISTE_MG_ARBRE::iterator &it)
int ajouter_fem_maillage(FEM_MAILLAGE *femmai)
MG_GEOMETRIE * get_suivant_geometrie(LISTE_MG_GEOMETRIE::iterator &it)
MG_MAILLAGE * get_premier_mg_maillage(LISTE_MG_MAILLAGE::iterator &it)
MG_GEOMETRIE * get_mg_constructionid(unsigned long num)
MG_GEOMETRIE * get_suivant_construction(LISTE_MG_CONSTRUCTION::iterator &it)
FEM_MAILLAGE * get_fem_maillageid(unsigned long num)
MG_CG_MODELE * get_mgcg_modeleid(unsigned long num)
int ajouter_mg_maillage(MG_MAILLAGE *mgmai)
int ajouter_mg_construction(MG_GEOMETRIE *construction)
virtual int ajouter(class MG_ELEMENT_TOPOLOGIQUE *ele)
void change_id(unsigned long idtmp)
MG_PENTA * get_mg_pentaid(unsigned long num)
MG_PENTA * ajouter_mg_penta(MG_ELEMENT_TOPOLOGIQUE *topo, class MG_NOEUD *mgnoeud1, class MG_NOEUD *mgnoeud2, class MG_NOEUD *mgnoeud3, class MG_NOEUD *mgnoeud4, class MG_NOEUD *mgnoeud5, class MG_NOEUD *mgnoeud6, int origine, unsigned long num=0)
MG_TRIANGLE * get_mg_triangleid(unsigned long num)
MG_QUADRANGLE * get_mg_quadrangleid(unsigned long num)
MG_QUADRANGLE * ajouter_mg_quadrangle(MG_ELEMENT_TOPOLOGIQUE *topo, class MG_NOEUD *mgnoeud1, class MG_NOEUD *mgnoeud2, class MG_NOEUD *mgnoeud3, class MG_NOEUD *mgnoeud4, int origine, unsigned long num=0)
void change_param_structure(BOITE_3D btmp, int nxtmp, int nytmp, int nztmp)
MG_NOEUD * get_mg_noeudid(unsigned long num)
MG_TRIANGLE * ajouter_mg_triangle(MG_ELEMENT_TOPOLOGIQUE *topo, class MG_NOEUD *mgnoeud1, class MG_NOEUD *mgnoeud2, class MG_NOEUD *mgnoeud3, int origine, unsigned long num=0)
MG_TETRA * get_mg_tetraid(unsigned long num)
MG_TETRA * ajouter_mg_tetra(MG_ELEMENT_TOPOLOGIQUE *topo, class MG_NOEUD *mgnoeud1, class MG_NOEUD *mgnoeud2, class MG_NOEUD *mgnoeud3, class MG_NOEUD *mgnoeud4, int origine, unsigned long num=0)
MG_PYRAMIDE * ajouter_mg_pyramide(MG_ELEMENT_TOPOLOGIQUE *topo, class MG_NOEUD *mgnoeud1, class MG_NOEUD *mgnoeud2, class MG_NOEUD *mgnoeud3, class MG_NOEUD *mgnoeud4, class MG_NOEUD *mgnoeud5, int origine, unsigned long num=0)
MG_SEGMENT * get_mg_segmentid(unsigned long num)
MG_HEXA * get_mg_hexaid(unsigned long num)
MG_SEGMENT * get_mg_segment(unsigned int num)
MG_SEGMENT * ajouter_mg_segment(MG_ELEMENT_TOPOLOGIQUE *topo, class MG_NOEUD *mgnoeud1, class MG_NOEUD *mgnoeud2, int origine, double longue=0.0, unsigned long num=0)
MG_NOEUD * ajouter_mg_noeud(MG_ELEMENT_TOPOLOGIQUE *topo, double xx, double yy, double zz, int origine, unsigned long num=0)
MG_HEXA * ajouter_mg_hexa(MG_ELEMENT_TOPOLOGIQUE *topo, class MG_NOEUD *mgnoeud1, class MG_NOEUD *mgnoeud2, class MG_NOEUD *mgnoeud3, class MG_NOEUD *mgnoeud4, class MG_NOEUD *mgnoeud5, class MG_NOEUD *mgnoeud6, class MG_NOEUD *mgnoeud7, class MG_NOEUD *mgnoeud8, int origine, unsigned long num=0)
virtual unsigned long get_liste_id(int num)
virtual void ajouter_element(MG_ELEMENT_MAILLAGE *ele)
virtual int get_nb_liste_id(void)
void change_num_materiau(int num)
void change_legende(int num, std::string val)
virtual unsigned long get_id_mg_noeud(void)
virtual void change_mg_noeud(MG_NOEUD *notmp)
void change_pole(bool val)
virtual void ajouter_face_correspondante(MG_FACE *face1, MG_FACE *face2)
virtual void change_num_materiau(int num)
TopoDS_Solid get_TopoDS_Solid_id(long id)
TopoDS_Vertex get_TopoDS_Vertex_id(long id)
TopoDS_Wire get_TopoDS_Wire_id(long id)
int ajouter_OCC_SOMMET(class OCC_SOMMET *occ_sommet)
TopoDS_Edge get_TopoDS_Edge_id(long id)
int ajouter_OCC_COQUILLE(class OCC_COQUILLE *occ_coquille)
TopoDS_Shell get_TopoDS_Shell_id(long id)
int ajouter_OCC_BOUCLE(class OCC_BOUCLE *occ_boucle)
int ajouter_OCC_FACE(class OCC_FACE *occ_face)
virtual int ouvrir_fichier_OCAF(char *file)
int ajouter_OCC_VOLUME(class OCC_VOLUME *occ_volume)
int ajouter_OCC_ARETE(class OCC_ARETE *occ_arete)
TopoDS_Face get_TopoDS_Face_id(long id)
virtual const TopoDS_Shape & GetShape(const int id_shape)
virtual std::string get_version(void)
virtual void change_precision(double val)
std::vector< std::string > split(std::string chaine, char c)
std::vector< std::string > argument
std::string lire(FILE *in, char fin, int *ierr)
void decode(char *code, std::string masque, class PARS_ARGUMENT *arg)
TPL_MAP_ENTITE< class SAT_COURBE * > lst_courbe
TPL_MAP_ENTITE< class SAT_SURFACE * > lst_surface
TPL_MAP_ENTITE< class SAT_POINT * > lst_point
TPL_MAP_ENTITE< class ST_COURBE * > lst_courbe
TPL_MAP_ENTITE< class ST_SURFACE * > lst_surface
TPL_MAP_ENTITE< class ST_POINT * > lst_point
virtual X get_premier(ITERATEUR &it)
virtual X getid(unsigned long num)
virtual X get_suivant(ITERATEUR &it)
virtual void ajouter(X x)
std::map< unsigned long, X, std::less< unsigned long > >::iterator ITERATEUR
virtual void change_etat(int num)
const unsigned int SOL_EXISTANTE