71 #include "TopoDS_Shape.hxx"
117 #ifdef WINDOWS_VERSION
130 #pragma package(smart_init)
135 std::setlocale(LC_NUMERIC,
"C");
142 std::setlocale(LC_NUMERIC,
"C");
156 const char *p=str.c_str();
157 if (*p==
'$')
return atol(p+1);
164 int nb=param[numparam].argument.size();
165 for (
int i=0;i<nb;i++)
167 double val=atoi(param[numparam].argument[i].c_str());
177 for (
int i=0;i<nb;i++)
179 parse.
decode(param[numparam].argument[i].c_str(),
"(@,@)",param+numparam+1);
181 strcpy(nom,param[numparam+1].argument[0].c_str());
182 if (strcmp(nom,
"CM")==0)
185 val=atol(param[numparam+2].argument[0].c_str());
191 val=atof(param[numparam+2].argument[0].c_str());
196 else if (version<2.1)
198 for (
int i=0;i<nb;i++)
201 strcpy(test,param[numparam].argument[i].c_str());
202 parse.
decode(param[numparam].argument[i].c_str(),
"(@,@,@)",param+numparam+1);
203 char formulation[10];
204 strcpy(formulation,param[numparam+1].argument[0].c_str());
206 strcpy(nom,param[numparam+2].argument[0].c_str());
207 if (formulation[0]==
'N')
210 val=atof(param[numparam+3].argument[0].c_str());
213 if (formulation[0]==
'I')
216 val=atol(param[numparam+3].argument[0].c_str());
219 if (formulation[0]==
'F')
221 parse.
decode(param[numparam].argument[i].c_str(),
"(@,@,@,@,(@))",param+numparam+1);
223 strcpy(formule,param[numparam+3].argument[0].c_str());
225 strcpy(variable,param[numparam+5].argument[0].c_str());
227 std::vector<std::string> listvariable=ot.
split(variable,
',');
234 for (
int i=0;i<nb;i++)
237 strcpy(test,param[numparam].argument[i].c_str());
238 parse.
decode(param[numparam].argument[i].c_str(),
"(@,@,@,@)",param+numparam+1);
239 char formulation[10];
240 strcpy(formulation,param[numparam+1].argument[0].c_str());
242 strcpy(nom,param[numparam+2].argument[0].c_str());
244 strcpy(suiv,param[numparam+3].argument[0].c_str());
245 if (formulation[0]==
'N')
248 val=atof(param[numparam+4].argument[0].c_str());
251 if (formulation[0]==
'I')
254 val=atol(param[numparam+4].argument[0].c_str());
257 if (formulation[0]==
'F')
259 parse.
decode(param[numparam].argument[i].c_str(),
"(@,@,@,@,@,(@))",param+numparam+1);
261 strcpy(formule,param[numparam+4].argument[0].c_str());
263 strcpy(variable,param[numparam+6].argument[0].c_str());
265 std::vector<std::string> listvariable=ot.
split(variable,
',');
274 parse.
decode(data.c_str(),
"@,@,@,@,@",param+2);
275 long idtopo=
cid(param[2].argument[0]);
276 double x=atof(param[3].argument[0].c_str());
277 double y=atof(param[4].argument[0].c_str());
278 double z=atof(param[5].argument[0].c_str());
279 sscanf(param[3].argument[0].c_str(),
"%lf",&x);
280 int ori=atoi(param[6].argument[0].c_str());
296 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
297 long idtopo=
cid(param[2].argument[0]);
298 long idn1=
cid(param[3].argument[0]);
299 long idn2=
cid(param[4].argument[0]);
300 int ori=atoi(param[5].argument[0].c_str());
319 parse.
decode(data.c_str(),
"@,@,@,@,@",param+2);
320 long idtopo=
cid(param[2].argument[0]);
321 long idn1=
cid(param[3].argument[0]);
322 long idn2=
cid(param[4].argument[0]);
323 long idn3=
cid(param[5].argument[0]);
324 int ori=atoi(param[6].argument[0].c_str());
339 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
340 long idtopo=
cid(param[2].argument[0]);
341 long idn1=
cid(param[3].argument[0]);
342 long idn2=
cid(param[4].argument[0]);
343 long idn3=
cid(param[5].argument[0]);
344 long idn4=
cid(param[6].argument[0]);
345 int ori=atoi(param[7].argument[0].c_str());
363 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
364 long idtopo=
cid(param[2].argument[0]);
365 long idn1=
cid(param[3].argument[0]);
366 long idn2=
cid(param[4].argument[0]);
367 long idn3=
cid(param[5].argument[0]);
368 long idn4=
cid(param[6].argument[0]);
369 int ori=atoi(param[7].argument[0].c_str());
377 if (noeud1&&noeud2&&noeud3&&noeud4) mgmai->
ajouter_mg_tetra(topo,noeud1,noeud2,noeud3,noeud4,ori,
id);
382 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@",param+2);
383 long idtopo=
cid(param[2].argument[0]);
384 long idn1=
cid(param[3].argument[0]);
385 long idn2=
cid(param[4].argument[0]);
386 long idn3=
cid(param[5].argument[0]);
387 long idn4=
cid(param[6].argument[0]);
388 long idn5=
cid(param[7].argument[0]);
389 long idn6=
cid(param[8].argument[0]);
390 long idn7=
cid(param[9].argument[0]);
391 long idn8=
cid(param[10].argument[0]);
392 int ori=atoi(param[11].argument[0].c_str());
404 mgmai->
ajouter_mg_hexa(topo,noeud1,noeud2,noeud3,noeud4,noeud5,noeud6,noeud7,noeud8,ori,
id);
410 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@",param+2);
411 long idtopo=
cid(param[2].argument[0]);
412 long idn1=
cid(param[3].argument[0]);
413 long idn2=
cid(param[4].argument[0]);
414 long idn3=
cid(param[5].argument[0]);
415 long idn4=
cid(param[6].argument[0]);
416 long idn5=
cid(param[7].argument[0]);
417 long idn6=
cid(param[8].argument[0]);
418 int ori=atoi(param[9].argument[0].c_str());
428 mgmai->
ajouter_mg_penta(topo,noeud1,noeud2,noeud3,noeud4,noeud5,noeud6,ori,
id);
433 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
434 long idtopo=
cid(param[2].argument[0]);
435 long idn1=
cid(param[3].argument[0]);
436 long idn2=
cid(param[4].argument[0]);
437 long idn3=
cid(param[5].argument[0]);
438 long idn4=
cid(param[6].argument[0]);
439 long idn5=
cid(param[7].argument[0]);
440 int ori=atoi(param[8].argument[0].c_str());
456 parse.
decode(data.c_str(),
"@,@,@,@,@,@,",param+2);
457 long id_mg_geometrie =
cid(param[2].argument[0]);
458 long id_parent =
cid(param[3].argument[0]);
459 std::string type_geo = param[4].argument[0];
460 std::string nom_fichier = param[5].argument[0];
461 double precision = atof(param[6].argument[0].c_str());
462 double valeur_unitee = atof(param[7].argument[0].c_str());
465 if(type_geo==
"MGCG_ASS")
468 LISTE_MGCG_MODELE::iterator it_modele;
480 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);
493 parse.
decode(data.c_str(),
"@,@,@,@,(&)",param+2);
496 int nummat=atoi((
char*)param[4].argument[0].c_str());
498 int nb=atoi(param[5].argument[0].c_str());
503 parse.
decode(data.c_str(),
"@,@,@,(&)",param+2);
506 int nb=atoi(param[4].argument[0].c_str());
511 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
516 TopoDS_Solid topods_solid;
522 else mgvol=
new MG_VOLUME(param[2].argument[0],
id);
524 mgvol=
new MG_VOLUME(param[2].argument[0],
id);
527 int mince=atoi(param[4].argument[0].c_str());
530 std::string data2=param[5].argument[0];
531 parse.
decode(data2.c_str(),
"@,(&)",param+5);
532 int nb=atoi(param[5].argument[0].c_str());
537 std::string data2=param[5].argument[0];
538 parse.
decode(data2.c_str(),
"(&),@,(&)",param+5);
539 int nb_face=param[5].argument.size();
540 for (
int i=0;i<nb_face;i=i+2)
542 unsigned long idn1=
cid(param[5].argument[i]);
543 unsigned long idn2=
cid(param[5].argument[i+1]);
544 volumemince.push_back(
id);
545 volumemince.push_back(idn1);
546 volumemince.push_back(idn2);
548 int nb=atoi(param[6].argument[0].c_str());
556 bool import_occ_2017=
false;
560 import_occ_2017=
true;
561 parse.
decode(data.c_str(),
"@,@,@",param+2);
562 long ident=
cid(param[2].argument[0]);
563 long idori = stol(param[3].argument[0]);
564 TopoDS_Shell topods_shell;
595 parse.
decode(data.c_str(),
"@,@",param+2);
596 long ident=
cid(param[2].argument[0]);
615 else parse.
decode(data.c_str(),
"@,@,(@),@,@,@,(&)",param+2);
616 long idsurf=
cid(param[3].argument[0]);
617 int sens=atoi(param[5].argument[0].c_str());
623 TopoDS_Face topods_face;
625 topods_face=occ_fonction_v2017->
get_TopoDS_Face_id(atol(param[2].argument[0].c_str()));
629 else mgface=
new MG_FACE(param[2].argument[0],
id,mgsurf,sens);
631 mgface=
new MG_FACE(param[2].argument[0],
id,mgsurf,sens);
638 int nbpole=atoi(param[6].argument[0].c_str());
641 int nb=atoi(param[argccf-1].argument[0].c_str());
647 bool import_occ_2017=
false;
652 import_occ_2017=
true;
653 parse.
decode(data.c_str(),
"@,@,(@)",param+2);
654 long ident=
cid(param[2].argument[0]);
655 long idori=stol(param[3].argument[0]);
656 TopoDS_Wire topods_wire;
686 parse.
decode(data.c_str(),
"@,(@)",param+2);
687 long ident=
cid(param[2].argument[0]);
705 parse.
decode(data.c_str(),
"@,@,@,@,@,@,(&)",param+2);
706 long idcur=
cid(param[3].argument[0]);
707 int sens=atol(param[6].argument[0].c_str());
708 long idori = stoi(param[2].argument[0]);
714 TopoDS_Edge topods_edge;
720 else mgarete=
new MG_ARETE(param[2].argument[0],
id,mgcur,sens);
722 mgarete=
new MG_ARETE(param[2].argument[0],
id,mgcur,sens);
725 int nb=atoi(param[7].argument[0].c_str());
732 else parse.
decode(data.c_str(),
"@,@,@,@,(&)",param+2);
733 long idpoint=
cid(param[3].argument[0]);
734 long idori = stol(param[2].argument[0]);
740 TopoDS_Vertex topods_vertex;
747 else mgsom=
new MG_SOMMET(param[2].argument[0],
id,mgpt);
749 mgsom=
new MG_SOMMET(param[2].argument[0],
id,mgpt);
756 int ipole=atoi(param[4].argument[0].c_str());
759 int nb=atoi(param[argccf-1].argument[0].c_str());
770 parse.
decode(data.c_str(),
"@,@,@,@,@",param+2);
771 std::string nom=param[2].argument[0];
772 long id_mg_geometrie =
cid((
char*)param[3].argument[0].c_str());
773 int fusionner_entite_similaire = atoi((
char*)param[4].argument[0].c_str());
774 int importer_triangulation = atoi((
char*)param[5].argument[0].c_str());
775 double epsilon_triangulation = atof((
char*)param[6].argument[0].c_str());
788 parse.
decode(data.c_str(),
"@,@,@,@,(&)",param+2);
789 long id_modele =
cid((
char*)param[2].argument[0].c_str());
790 std::string nom=param[3].argument[0];
791 long id_mg_sous_geometrie =
cid((
char*)param[4].argument[0].c_str());
792 long nb_mgcg_forme = atol((
char*)param[5].argument[0].c_str());
797 else mg_sous_geometrie=NULL;
799 for(
long i=0;i<nb_mgcg_forme;i++)
801 unsigned long id2 =
cid(param[6].argument[i]);
812 parse.
decode(data.c_str(),
"@,@,@,(&)",param+2);
813 long id_mgcg_modele =
cid(param[2].argument[0]);
814 std::string nom=param[3].argument[0];
815 long nb_forme = atol(param[4].argument[0].c_str());
818 for(
long i=0;i<nb_forme;i++)
820 long id_forme =
cid(param[5].argument[i]);
830 parse.
decode(data.c_str(),
"@,@,@,@,@,@,(&)",param+2);
831 long id_modele =
cid((
char*)param[2].argument[0].c_str());
833 int provenance_forme = atoi((
char*)param[3].argument[0].c_str());
834 int etat_forme = atoi((
char*)param[4].argument[0].c_str());
836 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()));
847 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,(&)",param+2);
848 long id_modele =
cid((
char*)param[2].argument[0].c_str());
850 int etat_forme = atoi((
char*)param[3].argument[0].c_str());
852 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()));
853 double x1 = atof((
char*)param[5].argument[0].c_str());
854 double y1 = atof((
char*)param[6].argument[0].c_str());
855 double z1 = atof((
char*)param[7].argument[0].c_str());
856 double x2 = atof((
char*)param[8].argument[0].c_str());
857 double y2 = atof((
char*)param[9].argument[0].c_str());
858 double z2 = atof((
char*)param[10].argument[0].c_str());
866 parse.
decode(data.c_str(),
"@,@,@,@,@,@,(&)",param+2);
867 long id_modele =
cid((
char*)param[2].argument[0].c_str());
869 int provenance_forme = atoi((
char*)param[3].argument[0].c_str());
870 int etat_forme = atoi((
char*)param[4].argument[0].c_str());
872 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()));
883 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,(&)",param+2);
884 long id_modele =
cid((
char*)param[2].argument[0].c_str());
886 int etat_forme = atoi((
char*)param[3].argument[0].c_str());
888 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()));
889 double x1 = atof((
char*)param[5].argument[0].c_str());
890 double y1 = atof((
char*)param[6].argument[0].c_str());
891 double z1 = atof((
char*)param[7].argument[0].c_str());
892 double x2 = atof((
char*)param[8].argument[0].c_str());
893 double y2 = atof((
char*)param[9].argument[0].c_str());
894 double z2 = atof((
char*)param[10].argument[0].c_str());
903 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,(&)",param+2);
904 long id_modele =
cid((
char*)param[2].argument[0].c_str());
906 int etat_forme = atoi((
char*)param[3].argument[0].c_str());
908 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()));
909 double centre_x = atof((
char*)param[5].argument[0].c_str());
910 double centre_y = atof((
char*)param[6].argument[0].c_str());
911 double centre_z = atof((
char*)param[7].argument[0].c_str());
912 double rayon = atof((
char*)param[8].argument[0].c_str());
921 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,(&)",param+2);
922 long id_modele =
cid((
char*)param[2].argument[0].c_str());
924 int etat_forme = atoi((
char*)param[3].argument[0].c_str());
926 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()));
927 double centre_x = atof((
char*)param[5].argument[0].c_str());
928 double centre_y = atof((
char*)param[6].argument[0].c_str());
929 double centre_z = atof((
char*)param[7].argument[0].c_str());
930 double direction_x = atof((
char*)param[8].argument[0].c_str());
931 double direction_y = atof((
char*)param[9].argument[0].c_str());
932 double direction_z = atof((
char*)param[10].argument[0].c_str());
933 double rayon_majeur = atof((
char*)param[11].argument[0].c_str());
934 double rayon_mineur = atof((
char*)param[12].argument[0].c_str());
935 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);
943 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,(&)",param+2);
944 long id_modele =
cid((
char*)param[2].argument[0].c_str());
946 int etat_forme = atoi((
char*)param[3].argument[0].c_str());
948 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()));
949 double extremite_x = atof((
char*)param[5].argument[0].c_str());
950 double extremite_y = atof((
char*)param[6].argument[0].c_str());
951 double extremite_z = atof((
char*)param[7].argument[0].c_str());
952 double direction_x = atof((
char*)param[8].argument[0].c_str());
953 double direction_y = atof((
char*)param[9].argument[0].c_str());
954 double direction_z = atof((
char*)param[10].argument[0].c_str());
955 double rayon = atof((
char*)param[11].argument[0].c_str());
956 double longueur = atof((
char*)param[12].argument[0].c_str());
957 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);
965 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,(&)",param+2);
966 long id_modele =
cid((
char*)param[2].argument[0].c_str());
968 int etat_forme = atoi((
char*)param[3].argument[0].c_str());
970 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()));
971 double extremite_x = atof((
char*)param[5].argument[0].c_str());
972 double extremite_y = atof((
char*)param[6].argument[0].c_str());
973 double extremite_z = atof((
char*)param[7].argument[0].c_str());
974 double direction_x = atof((
char*)param[8].argument[0].c_str());
975 double direction_y = atof((
char*)param[9].argument[0].c_str());
976 double direction_z = atof((
char*)param[10].argument[0].c_str());
977 double rayon = atof((
char*)param[11].argument[0].c_str());
978 double longueur = atof((
char*)param[12].argument[0].c_str());
979 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);
987 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,@,@,(&)",param+2);
988 long id_modele =
cid((
char*)param[2].argument[0].c_str());
990 int etat_forme = atoi((
char*)param[3].argument[0].c_str());
992 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()));
993 double centre_x = atof((
char*)param[5].argument[0].c_str());
994 double centre_y = atof((
char*)param[6].argument[0].c_str());
995 double centre_z = atof((
char*)param[7].argument[0].c_str());
996 double direction_x = atof((
char*)param[8].argument[0].c_str());
997 double direction_y = atof((
char*)param[9].argument[0].c_str());
998 double direction_z = atof((
char*)param[10].argument[0].c_str());
999 double rayon_cercle = atof((
char*)param[11].argument[0].c_str());
1000 double rayon_tore = atof((
char*)param[12].argument[0].c_str());
1001 double angle_seg = atof((
char*)param[13].argument[0].c_str());
1002 double angle_rotation = atof((
char*)param[14].argument[0].c_str());
1003 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);
1011 parse.
decode(data.c_str(),
"@,@,@,@,(&),@,(&),@",param+2);
1012 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1014 int provenance_forme = atoi((
char*)param[3].argument[0].c_str());
1015 int etat_forme = atoi((
char*)param[4].argument[0].c_str());
1016 std::vector<MG_ELEMENT_TOPOLOGIQUE*> vector_mg_element_topologique;
1017 std::vector<MG_ELEMENT_COTOPOLOGIQUE*> vector_mg_element_cotopologique;
1018 long nb_mg_element_topologique = atol((
char*)param[5].argument[0].c_str());
1019 for(
long i=0;i<nb_mg_element_topologique;i++)
1023 long nb_mg_element_cotopologique = atol((
char*)param[7].argument[0].c_str());
1024 for(
long i=0;i<nb_mg_element_cotopologique;i++)
1038 parse.
decode(data.c_str(),
"@,@,@,@,(&),@",param+2);
1039 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1041 int provenance_forme = atoi((
char*)param[3].argument[0].c_str());
1042 int etat_forme = atoi((
char*)param[4].argument[0].c_str());
1043 std::vector<MG_VOLUME*> vector_mg_volume;
1044 long nb_mg_volume = atol((
char*)param[5].argument[0].c_str());
1045 for(
long i=0;i<nb_mg_volume;i++)
1059 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
1060 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1062 int semantique = atoi((
char*)param[3].argument[0].c_str());
1063 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1066 long id_forme_entree_1 =
cid((
char*)param[5].argument[0].c_str());
1067 if(id_forme_entree_1!=0) mgcg_forme_entree_1=mgcg_modele->
get_mgcg_formeid(id_forme_entree_1);
1068 long id_forme_entree_2 =
cid((
char*)param[6].argument[0].c_str());
1069 if(id_forme_entree_2!=0) mgcg_forme_entree_2=mgcg_modele->
get_mgcg_formeid(id_forme_entree_2);
1070 long id_forme_sortie =
cid((
char*)param[7].argument[0].c_str());
1079 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
1080 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1082 int semantique = atoi((
char*)param[3].argument[0].c_str());
1083 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1086 long id_forme_entree_1 =
cid((
char*)param[5].argument[0].c_str());
1087 if(id_forme_entree_1!=0) mgcg_forme_entree_1=mgcg_modele->
get_mgcg_formeid(id_forme_entree_1);
1088 long id_forme_entree_2 =
cid((
char*)param[6].argument[0].c_str());
1089 if(id_forme_entree_2!=0) mgcg_forme_entree_2=mgcg_modele->
get_mgcg_formeid(id_forme_entree_2);
1090 long id_forme_sortie =
cid((
char*)param[7].argument[0].c_str());
1099 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
1100 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1102 int semantique = atoi((
char*)param[3].argument[0].c_str());
1103 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1106 long id_forme_entree_1 =
cid((
char*)param[5].argument[0].c_str());
1107 if(id_forme_entree_1!=0) mgcg_forme_entree_1=mgcg_modele->
get_mgcg_formeid(id_forme_entree_1);
1108 long id_forme_entree_2 =
cid((
char*)param[6].argument[0].c_str());
1109 if(id_forme_entree_2!=0) mgcg_forme_entree_2=mgcg_modele->
get_mgcg_formeid(id_forme_entree_2);
1110 long id_forme_sortie =
cid((
char*)param[7].argument[0].c_str());
1119 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
1120 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1122 int semantique = atoi((
char*)param[3].argument[0].c_str());
1123 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1126 long id_forme_entree_1 =
cid((
char*)param[5].argument[0].c_str());
1127 if(id_forme_entree_1!=0) mgcg_forme_entree_1=mgcg_modele->
get_mgcg_formeid(id_forme_entree_1);
1128 long id_forme_entree_2 =
cid((
char*)param[6].argument[0].c_str());
1129 if(id_forme_entree_2!=0) mgcg_forme_entree_2=mgcg_modele->
get_mgcg_formeid(id_forme_entree_2);
1130 long id_forme_sortie =
cid((
char*)param[7].argument[0].c_str());
1139 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
1140 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1142 int semantique = atoi((
char*)param[3].argument[0].c_str());
1143 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1146 long id_forme_inclusion_entree =
cid((
char*)param[5].argument[0].c_str());
1147 if(id_forme_inclusion_entree!=0) mgcg_forme_inclusion_entree=mgcg_modele->
get_mgcg_formeid(id_forme_inclusion_entree);
1148 long id_forme_matrice_entree =
cid((
char*)param[6].argument[0].c_str());
1149 if(id_forme_matrice_entree!=0) mgcg_forme_matrice_entree=mgcg_modele->
get_mgcg_formeid(id_forme_matrice_entree);
1150 long id_forme_inclusion_sortie =
cid((
char*)param[7].argument[0].c_str());
1151 long id_forme_matrice_sortie =
cid((
char*)param[8].argument[0].c_str());
1161 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,@",param+2);
1162 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1164 int semantique = atoi((
char*)param[3].argument[0].c_str());
1165 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1167 long id_forme_entree =
cid((
char*)param[5].argument[0].c_str());
1168 if(id_forme_entree!=0) mgcg_forme_entree=mgcg_modele->
get_mgcg_formeid(id_forme_entree);
1169 long id_forme_sortie =
cid((
char*)param[6].argument[0].c_str());
1171 double x = atof((
char*)param[7].argument[0].c_str());
1172 double y = atof((
char*)param[8].argument[0].c_str());
1173 double z = atof((
char*)param[9].argument[0].c_str());
1174 double w = atof((
char*)param[10].argument[0].c_str());
1175 double centre_x = atof((
char*)param[11].argument[0].c_str());
1176 double centre_y = atof((
char*)param[12].argument[0].c_str());
1177 double centre_z = atof((
char*)param[13].argument[0].c_str());
1188 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,",param+2);
1189 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1191 int semantique = atoi((
char*)param[3].argument[0].c_str());
1192 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1194 long id_forme_entree =
cid((
char*)param[5].argument[0].c_str());
1195 if(id_forme_entree!=0) mgcg_forme_entree=mgcg_modele->
get_mgcg_formeid(id_forme_entree);
1196 long id_forme_sortie =
cid((
char*)param[6].argument[0].c_str());
1198 double x = atof((
char*)param[7].argument[0].c_str());
1199 double y = atof((
char*)param[8].argument[0].c_str());
1200 double z = atof((
char*)param[9].argument[0].c_str());
1209 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,",param+2);
1210 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1212 int semantique = atoi((
char*)param[3].argument[0].c_str());
1213 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1215 long id_forme_entree =
cid((
char*)param[5].argument[0].c_str());
1216 if(id_forme_entree!=0) mgcg_forme_entree=mgcg_modele->
get_mgcg_formeid(id_forme_entree);
1217 long id_forme_sortie =
cid((
char*)param[6].argument[0].c_str());
1219 double x = atof((
char*)param[7].argument[0].c_str());
1220 double y = atof((
char*)param[8].argument[0].c_str());
1221 double z = atof((
char*)param[9].argument[0].c_str());
1222 double facteur = atof((
char*)param[10].argument[0].c_str());
1232 parse.
decode(data.c_str(),
"@,@,@,@,@,@,",param+2);
1233 long id_modele =
cid((
char*)param[2].argument[0].c_str());
1235 int semantique = atoi((
char*)param[3].argument[0].c_str());
1236 int etat_operateur = atoi((
char*)param[4].argument[0].c_str());
1238 long id_forme_entree =
cid((
char*)param[5].argument[0].c_str());
1239 if(id_forme_entree!=0) mgcg_forme_entree=mgcg_modele->
get_mgcg_formeid(id_forme_entree);
1240 long id_forme_sortie =
cid((
char*)param[6].argument[0].c_str());
1242 double decallage = atof((
char*)param[7].argument[0].c_str());
1251 parse.
decode(data.c_str(),
"@,@",param+2);
1252 std::string identifiant = param[2].argument[0];
1253 std::string valeur = param[3].argument[0];
1259 if(modele->get_id()==
id)
1271 MG_CONSTRUCTION_GEOMETRIQUE* mg_constr_geo = (MG_CONSTRUCTION_GEOMETRIQUE*)mg_id;
1281 parse.
decode(data.c_str(),
"@,@",param+2);
1282 std::string identifiant = param[2].argument[0];
1283 double valeur = atof(param[3].argument[0].c_str());
1289 if(modele->get_id()==
id)
1301 MG_CONSTRUCTION_GEOMETRIQUE* mg_constr_geo = (MG_CONSTRUCTION_GEOMETRIQUE*)mg_id;
1311 parse.
decode(data.c_str(),
"@,@,(&)",param+2);
1312 std::string identifiant = param[2].argument[0];
1313 long nb_valeur = atol(param[3].argument[0].c_str());
1314 std::vector<double> vector_valeur;
1315 for(
long i=0;i<nb_valeur;i++)
1317 double valeur = atof(param[4].argument[i].c_str());
1318 vector_valeur.push_back(valeur);
1325 if(modele->get_id()==
id)
1337 MG_CONSTRUCTION_GEOMETRIQUE* mg_constr_geo = (MG_CONSTRUCTION_GEOMETRIQUE*)mg_id;
1348 in=fopen(chemin,
"rt");
1349 if (in==NULL)
return 0;
1355 #ifdef WINDOWS_VERSION
1356 std::multimap<CAD4FE::MCVertex*, unsigned long> mapMergedRefVertices;
1358 bool updatedMergedRefVertices =
false;
1360 std::vector<unsigned long> volumemince;
1364 std::string ligne=parse.
lire(in,
';',&ierr);
1365 parse.
decode(ligne.c_str(),
"@;",param);
1366 const char *chaine=param[0].
argument[0].c_str();
1367 if ((chaine[0]==
'/') && (chaine[1]==
'/'))
1369 if ((chaine[2]==
'*')&&(chaine[3]==
'i'))
1372 sscanf(chaine,
"//*i:%lu;",&
id);
1375 if ((chaine[2]==
'*')&&(chaine[3]==
'v'))
1378 else if (param[0].argument[0]!=
"FIN")
1380 parse.
decode(ligne.c_str(),
"%@=@(@);",param);
1381 std::string entite=param[1].
argument[0];
1382 long id=atol(param[0].argument[0].c_str());
1383 std::string data=param[2].
argument[0] ;
1386 if (entite==
"GEOMETRIE")
1388 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
1389 double unite=atof(param[2].argument[0].c_str());
1390 std::string typegeo=param[3].
argument[0];
1391 std::string chemin_geo=param[4].
argument[0];
1392 if (typegeo==
"VIRTUEL")
1394 mggeo=
new MG_GEOMETRIE((
char*)typegeo.c_str(),
id,(
char*)chemin_geo.c_str(),unite);
1398 if (typegeo==
"STEP")
1400 mggeo=
new MG_GEOMETRIE((
char*)
"STEP",
id,(
char *)chemin_geo.c_str(),unite);
1405 if (typegeo==
"ACIS")
1407 mggeo=
new MG_GEOMETRIE((
char*)
"ACIS",
id,(
char *)chemin_geo.c_str(),unite);
1415 mggeo=
new MG_GEOMETRIE((
char*)
"OCC",
id,chemin_geo.c_str(),unite);
1418 if (typegeo==
"OCCV2015")
1420 mggeo=
new MG_GEOMETRIE((
char*)
"OCCV2015",
id,chemin_geo.c_str(),unite);
1425 if (typegeo==
"OCCV2017")
1427 mggeo=
new MG_GEOMETRIE((
char*)
"OCCV2017",
id,chemin_geo.c_str(),unite);
1430 std::string chemin_caf =
str_dossier + chemin_geo +
".ocaf";
1431 char* chemin_caf_char = (
char*)chemin_caf.c_str();
1435 std::string nommat=
"";
1436 if (param[5].argument[0]!=
"")
1440 if (entite==
"CONSTRUCTION")
1443 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
1444 double unite=atof(param[2].argument[0].c_str());
1445 std::string typegeo=param[3].
argument[0];
1446 std::string chemin_geo=param[4].
argument[0];
1448 if (typegeo==
"OCCV2017")
1450 mgconstruction=
new MG_GEOMETRIE((
char*)
"OCCV2017",
id,chemin_geo.c_str(),unite);
1451 mggeo=mgconstruction;
1455 std::string chemin_caf =
str_dossier + chemin_geo +
".ocaf";
1456 char* chemin_caf_char = (
char*)chemin_caf.c_str();
1460 if (typegeo==
"VIRTUEL")
1462 mgconstruction=
new MG_GEOMETRIE((
char*)typegeo.c_str(),
id,(
char*)chemin_geo.c_str(),unite);
1463 mggeo=mgconstruction;
1467 std::string nommat=
"";
1468 if (param[5].argument[0]!=
"")
1473 if (entite==
"ARBRE")
1475 parse.
decode(data.c_str(),
"@",param+2);
1476 std::string nom=param[2].
argument[0];
1477 arbre=
new MG_ARBRE(
id,nom.c_str());
1480 if (entite ==
"ASSEMBLAGE")
1482 parse.
decode(data.c_str(),
"@,@,(&)",param+2);
1483 std::string nom=param[2].
argument[0];
1484 int nb_primitive = atoi((
char*)param[3].argument[0].c_str());
1485 MG_ASSEMBLAGE *mgassembl=
new MG_ASSEMBLAGE(
id,nom.c_str());
1486 for(
int i=0;i<nb_primitive;i++)
1488 unsigned long id2 =
cid(param[4].argument[i]);
1489 mgassembl->ajouter_mg_primitive(id2);
1491 arbre->ajouter_mg_assemblage(mgassembl);
1493 if (entite==
"BOITE")
1495 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
1496 double x1=atof((
char*)param[2].argument[0].c_str());
1497 double y1=atof((
char*)param[3].argument[0].c_str());
1498 double z1=atof((
char*)param[4].argument[0].c_str());
1499 double x2=atof((
char*)param[5].argument[0].c_str());
1500 double y2=atof((
char*)param[6].argument[0].c_str());
1501 double z2=atof((
char*)param[7].argument[0].c_str());
1502 MG_PRIMITIVE_BOITE *b=
new MG_PRIMITIVE_BOITE(
id,x1,y1,z1,x2,y2,z2);
1504 arbre->ajouter_mg_primitive(b);
1506 if (entite==
"SPHERE")
1508 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
1509 double centre_x=atof((
char*)param[2].argument[0].c_str());
1510 double centre_y=atof((
char*)param[3].argument[0].c_str());
1511 double centre_z=atof((
char*)param[4].argument[0].c_str());
1512 double rayon=atof((
char*)param[5].argument[0].c_str());
1513 MG_PRIMITIVE_SPHERE *b=
new MG_PRIMITIVE_SPHERE(
id,centre_x,centre_y,centre_z,rayon);
1515 arbre->ajouter_mg_primitive(b);
1517 if (entite==
"ELLIPSOIDE_REVOLUTION")
1519 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@",param+2);
1520 double centre_x=atof((
char*)param[2].argument[0].c_str());
1521 double centre_y=atof((
char*)param[3].argument[0].c_str());
1522 double centre_z=atof((
char*)param[4].argument[0].c_str());
1523 double axe_x=atof((
char*)param[5].argument[0].c_str());
1524 double axe_y=atof((
char*)param[6].argument[0].c_str());
1525 double axe_z=atof((
char*)param[7].argument[0].c_str());
1526 double rayon_majeur=atof((
char*)param[8].argument[0].c_str());
1527 double rayon_mineur=atof((
char*)param[9].argument[0].c_str());
1528 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);
1530 arbre->ajouter_mg_primitive(b);
1532 if (entite==
"CYLINDRE")
1534 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
1535 double extremite_x=atof((
char*)param[2].argument[0].c_str());
1536 double extremite_y=atof((
char*)param[3].argument[0].c_str());
1537 double extremite_z=atof((
char*)param[4].argument[0].c_str());
1538 double longitude=atof((
char*)param[5].argument[0].c_str());
1539 double latitude=atof((
char*)param[6].argument[0].c_str());
1540 double rayon=atof((
char*)param[7].argument[0].c_str());
1541 double longueur=atof((
char*)param[8].argument[0].c_str());
1542 MG_PRIMITIVE_CYLINDRE *b=
new MG_PRIMITIVE_CYLINDRE(
id,extremite_x,extremite_y,extremite_z,longitude,latitude,rayon,longueur);
1544 arbre->ajouter_mg_primitive(b);
1548 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
1549 double centre_x=atof((
char*)param[2].argument[0].c_str());
1550 double centre_y=atof((
char*)param[3].argument[0].c_str());
1551 double centre_z=atof((
char*)param[4].argument[0].c_str());
1552 double longitude=atof((
char*)param[5].argument[0].c_str());
1553 double latitude=atof((
char*)param[6].argument[0].c_str());
1554 double rayon_cercle=atof((
char*)param[7].argument[0].c_str());
1555 double rayon_tore=atof((
char*)param[8].argument[0].c_str());
1556 MG_PRIMITIVE_TORE *b=
new MG_PRIMITIVE_TORE(
id,centre_x,centre_y,centre_z,longitude,latitude,rayon_cercle,rayon_tore);
1558 arbre->ajouter_mg_primitive(b);
1562 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
1563 double base_x=atof((
char*)param[2].argument[0].c_str());
1564 double base_y=atof((
char*)param[3].argument[0].c_str());
1565 double base_z=atof((
char*)param[4].argument[0].c_str());
1566 double longitude=atof((
char*)param[5].argument[0].c_str());
1567 double latitude=atof((
char*)param[6].argument[0].c_str());
1568 double rayon=atof((
char*)param[7].argument[0].c_str());
1569 double hauteur=atof((
char*)param[8].argument[0].c_str());
1570 MG_PRIMITIVE_CONE *b=
new MG_PRIMITIVE_CONE(
id,base_x,base_y,base_z,longitude,latitude,rayon,hauteur);
1572 arbre->ajouter_mg_primitive(b);
1574 if (entite==
"UNION")
1576 parse.
decode(data.c_str(),
"@,@,@",param+2);
1577 int sem=atoi((
char*)param[2].argument[0].c_str());
1578 long id1=
cid((
char*)param[3].argument[0].c_str());
1579 long id2=
cid((
char*)param[4].argument[0].c_str());
1580 MG_PRIMITIVE *p1=arbre->get_mg_primitiveid(id1);
1581 MG_PRIMITIVE *p2=arbre->get_mg_primitiveid(id2);
1582 MG_OPERATEUR_BOOLEAN_UNION *op=
new MG_OPERATEUR_BOOLEAN_UNION(
id,sem,p1,p2);
1583 arbre->ajouter_mg_operateur_boolean(op);
1585 if (entite==
"DIFFERENCE")
1587 parse.
decode(data.c_str(),
"@,@,@",param+2);
1588 int sem=atoi((
char*)param[2].argument[0].c_str());
1589 long id1=
cid((
char*)param[3].argument[0].c_str());
1590 long id2=
cid((
char*)param[4].argument[0].c_str());
1591 MG_PRIMITIVE *p1=arbre->get_mg_primitiveid(id1);
1592 MG_PRIMITIVE *p2=arbre->get_mg_primitiveid(id2);
1593 MG_OPERATEUR_BOOLEAN_DIFFERENCE *op=
new MG_OPERATEUR_BOOLEAN_DIFFERENCE(
id,sem,p1,p2);
1594 arbre->ajouter_mg_operateur_boolean(op);
1596 if (entite==
"INTERSECTION")
1598 parse.
decode(data.c_str(),
"@,@,@",param+2);
1599 int sem=atoi((
char*)param[2].argument[0].c_str());
1600 long id1=
cid((
char*)param[3].argument[0].c_str());
1601 long id2=
cid((
char*)param[4].argument[0].c_str());
1602 MG_PRIMITIVE *p1=arbre->get_mg_primitiveid(id1);
1603 MG_PRIMITIVE *p2=arbre->get_mg_primitiveid(id2);
1604 MG_OPERATEUR_BOOLEAN_INTERSECTION *op=
new MG_OPERATEUR_BOOLEAN_INTERSECTION(
id,sem,p1,p2);
1605 arbre->ajouter_mg_operateur_boolean(op);
1607 if (entite==
"PRIM_COMPLEXE")
1609 parse.
decode(data.c_str(),
"@",param+2);
1610 long id1=
cid((
char*)param[2].argument[0].c_str());
1611 MG_OPERATEUR_BOOLEAN *op=arbre->get_mg_operateur_booleanid(id1);
1612 MG_PRIMITIVE* p=op->construit(
id);
1613 arbre->ajouter_mg_primitive(p);
1616 if (entite==
"MG_CG_MODELE")
1620 if (entite ==
"MG_CG_ASSEMBLAGE")
1624 if (entite ==
"MG_CG_INFO_DOUBLE")
1628 if (entite ==
"MG_CG_INFO_STRING")
1632 if (entite ==
"MG_CG_INFO_VCT_DOUBLE")
1636 if (entite ==
"MG_CG_GROUPE_FORME")
1640 if (entite ==
"MG_CG_FORME_ARETE")
1644 if (entite ==
"MG_CG_FORME_ARETE_DROITE")
1648 if (entite ==
"MG_CG_FORME_VOLUME")
1652 if (entite ==
"MG_CG_FORME_VOLUME_BOITE")
1656 if (entite ==
"MG_CG_FORME_VOLUME_SPHERE")
1660 if (entite ==
"MG_CG_FORME_VOLUME_ELLIPSOIDE")
1664 if (entite ==
"MG_CG_FORME_VOLUME_CYLINDRE")
1668 if (entite ==
"MG_CG_FORME_VOLUME_CONE")
1672 if (entite ==
"MG_CG_FORME_VOLUME_TORE")
1676 if (entite ==
"MG_CG_FORME_MULTIPLE")
1680 if (entite ==
"MG_CG_FORME_MULTI_VOLUME")
1684 if (entite ==
"MG_CG_OP_BOOL_UNION")
1688 if (entite ==
"MG_CG_OP_BOOL_DIFFERENCE")
1692 if (entite ==
"MG_CG_OP_BOOL_INTERSECTION")
1696 if (entite ==
"MG_CG_OP_BOOL_FRAGMENT")
1700 if (entite ==
"MG_CG_OP_INCLUSION_MATRICE")
1704 if (entite ==
"MG_CG_OP_TRANSF_ROTATION")
1708 if (entite ==
"MG_CG_OP_TRANSF_TRANSLATION")
1712 if (entite ==
"MG_CG_OP_TRANSF_ECHELLE")
1716 if (entite ==
"MG_CG_OP_TRANSF_DECALLAGE")
1722 if (entite ==
"MG_SOUS_GEOMETRIE")
1726 if (entite==
"GEOMETRIE_EPS")
1728 parse.
decode(data.c_str(),
"@",param+2);
1729 double val=atof((
char*)param[2].argument[0].c_str());
1732 if (entite==
"GROUPE_TOPOLOGIQUE")
1734 parse.
decode(data.c_str(),
"@,(&)",param+2);
1737 int nb=atoi(param[2].argument[0].c_str());
1738 for (
int i=0;i<nb;i++)
1740 unsigned long id2=
cid(param[3].argument[i].c_str());
1746 if (ele!=NULL) mggt->
ajouter(ele);
1750 if (entite==
"GEOM_FONCTION")
1752 parse.
decode(data.c_str(),
"@,@,(&)",param+2);
1753 int dim=atoi((
char*)param[2].argument[0].c_str());
1756 int nb=atoi(param[3].argument[0].c_str());
1757 for (
int i=0;i<nb;i++)
1759 parse.
decode(param[4].argument[i].c_str(),
"(&)",param+5);
1760 double *coo=
new double[dim];
1761 for (
int j=0;j<dim;j++)
1762 coo[j]=atof(param[5].argument[j].c_str());
1769 if (entite==
"VOLUME")
1785 if (entite==
"COQUE")
1789 parse.
decode(data.c_str(),
"@,@,@,@,(&)",param+2);
1792 int nummat=atoi((
char*)param[4].argument[0].c_str());
1794 int nb=atoi(param[5].argument[0].c_str());
1799 parse.
decode(data.c_str(),
"@,@,@,(&)",param+2);
1802 int nb=atoi(param[4].argument[0].c_str());
1818 if (entite==
"POUTRE")
1822 parse.
decode(data.c_str(),
"@,@,@,@,(&)",param+2);
1825 int nummat=atoi((
char*)param[4].argument[0].c_str());
1827 int nb=atoi(param[5].argument[0].c_str());
1832 parse.
decode(data.c_str(),
"@,@,@,(&)",param+2);
1835 int nb=atoi(param[4].argument[0].c_str());
1852 if (entite==
"COQUILLE")
1858 if (entite==
"SURFACE_STEP")
1860 parse.
decode(data.c_str(),
"@",param+2);
1861 long idstepsuf=atol(param[2].argument[0].c_str());
1866 if (entite==
"COURBE_STEP")
1868 parse.
decode(data.c_str(),
"@",param+2);
1869 long idstepcur=atol(param[2].argument[0].c_str());
1875 if (entite==
"POINT_STEP")
1877 parse.
decode(data.c_str(),
"@",param+2);
1878 long idsteppt=atol(param[2].argument[0].c_str());
1886 if (entite==
"SURFACE_SAT")
1888 parse.
decode(data.c_str(),
"@",param+2);
1889 long idsatsuf=atol(param[2].argument[0].c_str());
1894 if (entite==
"COURBE_SAT")
1896 parse.
decode(data.c_str(),
"@",param+2);
1897 long idsatcur=atol(param[2].argument[0].c_str());
1903 if (entite==
"POINT_SAT")
1905 parse.
decode(data.c_str(),
"@",param+2);
1906 long idsatpt=atol(param[2].argument[0].c_str());
1916 if (entite==
"SURFACE_OCC")
1918 parse.
decode(data.c_str(),
"@",param+2);
1919 long idocc=atol(param[2].argument[0].c_str());
1920 TopoDS_Face occface;
1929 occface=TopoDS::Face(occshape);
1936 if (entite==
"COURBE_OCC")
1938 parse.
decode(data.c_str(),
"@",param+2);
1939 long idocc=atol(param[2].argument[0].c_str());
1940 TopoDS_Edge occedge;
1949 occedge=TopoDS::Edge(occshape);
1955 if (entite==
"POINT_OCC")
1957 parse.
decode(data.c_str(),
"@",param+2);
1958 long idocc=atol(param[2].argument[0].c_str());
1959 TopoDS_Vertex occvertex;
1968 occvertex=TopoDS::Vertex(occshape);
1976 #ifdef WINDOWS_VERSION
1977 if (entite==
"CAD4FE_POLYCURVE")
1980 parse.
decode(data.c_str(),
"@,(&)",param+2);
1981 int nb = atoi(param[2].argument[0].c_str());
1985 printf(
"PolyCurve %d is formed with reference vertex : ",
id);
1986 parse.
decode(param[3].argument[0].c_str(),
"@",param+4);
1988 idRefVertex=
cid(param[4].argument[0].c_str());
1989 printf(
"%d ;\n ", idRefVertex);
1995 printf(
"PolyCurve %d is formed with reference edges : ",
id);
1997 for (
int i=0;i<nb;i++)
1999 parse.
decode(param[3].argument[i].c_str(),
"@",param+4);
2001 idRefEdge=
cid(param[4].argument[0].c_str());
2002 printf(
"%d ; ", idRefEdge);
2005 polycurve->
Merge(tmpPC);
2015 if (entite==
"CAD4FE_POLYSURFACE")
2021 parse.
decode(data.c_str(),
"@,(&)",param+2);
2023 int nb = atoi(param[2].argument[0].c_str());
2024 printf(
"PolySurface %d is formed with reference faces : ",
id);
2025 for (
int i=0;i<nb;i++)
2027 parse.
decode(param[3].argument[i].c_str(),
"@",param+4);
2029 idRefFace=
cid(param[4].argument[0].c_str());
2030 printf(
"%d ; ", idRefFace);
2034 polysurface->
Merge(tmpSF);
2039 if (entite==
"CAD4FE_MCEDGE")
2041 parse.
decode(data.c_str(),
"@,@,@,@,@,@,(&)",param+2);
2043 std::string idOriginal = param[2].
argument[0];
2044 long idPolyCurve=
cid(param[3].argument[0]);
2054 int nb=atoi(param[7].argument[0].c_str());
2057 for (
int i=0;i<nb;i++)
2059 parse.
decode(param[8].argument[i].c_str(),
"(@,@)",param+9);
2062 strcpy(nom,param[9].argument[0].c_str());
2063 val=atof(param[10].argument[0].c_str());
2068 if (entite==
"CAD4FE_MCFACE")
2070 parse.
decode(data.c_str(),
"@,@,@,@,@,(&)",param+2);
2072 std::string idOriginal = param[2].
argument[0];
2073 long idPolySurface=
cid(param[3].argument[0]);
2080 int nb=atoi(param[6].argument[0].c_str());
2083 for (
int i=0;i<nb;i++)
2085 parse.
decode(param[7].argument[i].c_str(),
"(@,@)",param+8);
2088 strcpy(nom,param[8].argument[0].c_str());
2089 val=atof(param[9].argument[0].c_str());
2094 if (entite==
"CAD4FE_MCVERTEX")
2096 parse.
decode(data.c_str(),
"@,@,@,(&),@,(&)",param+2);
2097 std::string idOriginal = param[2].
argument[0];
2098 long idsom=
cid(param[3].argument[0]);
2103 int nb_ref_vertex=atoi(param[4].argument[0].c_str());
2104 if (nb_ref_vertex!=0)
2106 for (
int i=0;i<nb_ref_vertex;i++)
2108 unsigned long idRefVertex=
cid(param[5].argument[i]);
2110 mapMergedRefVertices.insert(std::make_pair(mcVertex,idRefVertex));
2113 int nb_ccf=atoi(param[4+2].argument[0].c_str());
2116 for (
int i=0;i<nb_ccf;i++)
2118 parse.
decode(param[5+2].argument[i].c_str(),
"(@,@)",param+6+2);
2121 strcpy(nom_ccf,param[6+2].argument[0].c_str());
2122 val_ccf=atof(param[7+2].argument[0].c_str());
2144 if (entite==
"COFACE")
2146 parse.
decode(data.c_str(),
"@,@,@",param+2);
2147 long idface=
cid(param[2].argument[0]);
2148 long idcoq=
cid(param[3].argument[0]);
2149 int sens=atoi(param[4].argument[0].c_str());
2155 if (entite==
"BOUCLE")
2159 if (entite==
"POINT")
2161 parse.
decode(data.c_str(),
"@,@,@",param+2);
2163 xyz[0]=atof(param[2].argument[0].c_str());
2164 xyz[1]=atof(param[3].argument[0].c_str());
2165 xyz[2]=atof(param[4].argument[0].c_str());
2169 if (entite==
"SOMMET")
2174 if (entite==
"OCC_SOMMET")
2176 parse.
decode(data.c_str(),
"@,@,@,@,(&)",param+2);
2177 long idpoint=
cid(param[3].argument[0]);
2179 TopoDS_Vertex topods_vertex;
2180 long idori = stol(param[2].argument[0]);
2192 std::cout <<
"*** MG_FILE : ERREUR lecture OCC_SOMMET : Mauvaise OCC_FONCTION ! ***" << std::endl;
2198 int ipole=atoi(param[4].argument[0].c_str());
2201 int nb=atoi(param[argccf-1].argument[0].c_str());
2204 if (entite==
"OCC_ARETE")
2206 parse.
decode(data.c_str(),
"@,@,@,@,@,@,(&)",param+2);
2207 long idcur=
cid(param[3].argument[0]);
2208 int sens=atol(param[6].argument[0].c_str());
2209 long idori = stoi(param[2].argument[0]);
2210 TopoDS_Edge topods_edge;
2223 std::cout <<
"*** MG_FILE : ERREUR lecture OCC_ARETE : Mauvaise OCC_FONCTION ! ***" << std::endl;
2225 int nb=atoi(param[7].argument[0].c_str());
2228 if (entite==
"OCC_BOUCLE")
2230 parse.
decode(data.c_str(),
"@,@,(@)",param+2);
2231 long ident=
cid(param[2].argument[0]);
2232 long idori=stol(param[3].argument[0]);
2233 TopoDS_Wire topods_wire;
2265 std::cout <<
"*** MG_FILE : ERREUR lecture OCC_BOUCLE : Mauvaise OCC_FONCTION ! ***" << std::endl;
2269 if (entite==
"OCC_FACE")
2271 parse.
decode(data.c_str(),
"@,@,(@),@,@,@,(&)",param+2);
2272 long idsurf=
cid(param[3].argument[0]);
2273 int sens=atoi(param[5].argument[0].c_str());
2274 long idori = stol(param[2].argument[0]);
2275 TopoDS_Face topods_face;
2288 std::cout <<
"*** MG_FILE : ERREUR lecture OCC_FACE : Mauvaise OCC_FONCTION ! ***" << std::endl;
2294 int nbpole=atoi(param[6].argument[0].c_str());
2297 int nb=atoi(param[argccf-1].argument[0].c_str());
2300 if (entite==
"OCC_COQUILLE")
2302 parse.
decode(data.c_str(),
"@,@,@",param+2);
2303 long ident=
cid(param[2].argument[0]);
2304 long idori = stol(param[3].argument[0]);
2305 TopoDS_Shell topods_shell;
2337 std::cout <<
"*** MG_FILE : ERREUR lecture OCC_COQUILLE : Mauvaise OCC_FONCTION ! ***" << std::endl;
2340 if (entite==
"OCC_VOLUME")
2343 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
2344 long idori = stol(param[2].argument[0]);
2345 TopoDS_Solid topods_solid;
2357 std::cout <<
"*** MG_FILE : ERREUR lecture OCC_VOLUME : Mauvaise OCC_FONCTION ! ***" << std::endl;
2359 int mince=atoi(param[4].argument[0].c_str());
2362 std::string data2=param[5].
argument[0];
2363 parse.
decode(data2.c_str(),
"@,(&)",param+5);
2364 int nb=atoi(param[5].argument[0].c_str());
2369 std::string data2=param[5].
argument[0];
2370 parse.
decode(data2.c_str(),
"(&),@,(&)",param+5);
2371 int nb_face=param[5].
argument.size();
2372 for (
int i=0;i<nb_face;i=i+2)
2374 unsigned long idn1=
cid(param[5].argument[i]);
2375 unsigned long idn2=
cid(param[5].argument[i+1]);
2376 volumemince.push_back(
id);
2377 volumemince.push_back(idn1);
2378 volumemince.push_back(idn2);
2380 int nb=atoi(param[6].argument[0].c_str());
2387 if (entite==
"ARETE_ELEMENT")
2390 parse.
decode(data.c_str(),
"@,(&),@,(&)",param+2);
2392 parse.
decode(data.c_str(),
"@,(&),(&),@,(&)",param+2);
2401 int nb=atoi(param[numparamnb].argument[0].c_str());
2406 if (entite==
"FACE_ELEMENT")
2409 parse.
decode(data.c_str(),
"@,(&),@,(&)",param+2);
2411 parse.
decode(data.c_str(),
"@,(&),(&),@,(&)",param+2);
2421 int nb=atoi(param[numparamnb].argument[0].c_str());
2426 if (entite==
"COQUE_ELEMENT")
2428 parse.
decode(data.c_str(),
"@,(&),@,(&)",param+2);
2431 int nbele=atoi(param[2].argument[0].c_str());
2432 for (
int i=0;i<nbele;i++)
2434 unsigned long idele=
cid(param[3].argument[i].c_str());
2437 int nb=atoi(param[4].argument[0].c_str());
2452 if (entite==
"POUTRE_ELEMENT")
2454 parse.
decode(data.c_str(),
"@,(&),@,(&)",param+2);
2457 int nbele=atoi(param[2].argument[0].c_str());
2458 for (
int i=0;i<nbele;i++)
2460 unsigned long idele=
cid(param[3].argument[i].c_str());
2463 int nb=atoi(param[4].argument[0].c_str());
2478 if (entite==
"VOLUME_ELEMENT")
2481 parse.
decode(data.c_str(),
"@,(&),@,(&)",param+2);
2483 parse.
decode(data.c_str(),
"@,(&),(&),@,(&)",param+2);
2493 int nb=atoi(param[numparamnb].argument[0].c_str());
2497 if (entite==
"SOMMET_NOEUD")
2500 parse.
decode(data.c_str(),
"@,@,(&)",param+2);
2502 parse.
decode(data.c_str(),
"@,(&),@,(&)",param+2);
2503 long idnoeud=
cid(param[2].argument[0]);
2513 int nb=atoi(param[numparamnb].argument[0].c_str());
2516 if (entite==
"ARETE")
2520 if (entite==
"COSOMMET")
2522 parse.
decode(data.c_str(),
"@,@,@",param+2);
2523 long idsom=
cid(param[2].argument[0]);
2524 long idarete=
cid(param[3].argument[0]);
2525 int num=atoi(param[4].argument[0].c_str());
2532 if (entite==
"COARETE")
2534 parse.
decode(data.c_str(),
"@,@,@",param+2);
2535 long idarete=
cid(param[2].argument[0]);
2536 long idboucle=
cid(param[3].argument[0]);
2537 int sens=atoi(param[4].argument[0].c_str());
2543 if (entite==
"VISU_COURBE")
2545 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
2548 xyz1[0]=atof(param[2].argument[0].c_str());
2549 xyz1[1]=atof(param[3].argument[0].c_str());
2550 xyz1[2]=atof(param[4].argument[0].c_str());
2551 xyz2[0]=atof(param[5].argument[0].c_str());
2552 xyz2[1]=atof(param[6].argument[0].c_str());
2553 xyz2[2]=atof(param[7].argument[0].c_str());
2557 if (entite==
"MAILLAGE")
2559 parse.
decode(data.c_str(),
"@",param+2);
2560 long idgeo=
cid(param[2].argument[0]);
2566 if (entite==
"MAILLAGE_STRUCTURE")
2568 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@",param+2);
2569 long idgeo=
cid(param[2].argument[0]);
2573 double xmin=atof(param[3].argument[0].c_str());
2574 double ymin=atof(param[4].argument[0].c_str());
2575 double zmin=atof(param[5].argument[0].c_str());
2576 double xmax=atof(param[6].argument[0].c_str());
2577 double ymax=atof(param[7].argument[0].c_str());
2578 double zmax=atof(param[8].argument[0].c_str());
2579 int nx=atoi(param[9].argument[0].c_str());
2580 int ny=atoi(param[10].argument[0].c_str());
2581 int nz=atoi(param[11].argument[0].c_str());
2582 BOITE_3D b(xmin,ymin,zmin,xmax,ymax,zmax);
2585 if (entite==
"FEM_MAILLAGE")
2587 parse.
decode(data.c_str(),
"@,@,@",param+2);
2588 int degre=atoi(param[2].argument[0].c_str());
2589 long idmai=
cid(param[3].argument[0]);
2590 long idgeo=
cid(param[4].argument[0]);
2597 if (entite==
"FEM_MAILLAGE_STRUCTURE")
2599 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,@",param+2);
2600 int degre=atoi(param[2].argument[0].c_str());
2601 long idmai=
cid(param[3].argument[0]);
2602 long idgeo=
cid(param[4].argument[0]);
2607 double xmin=atof(param[5].argument[0].c_str());
2608 double ymin=atof(param[6].argument[0].c_str());
2609 double zmin=atof(param[7].argument[0].c_str());
2610 double xmax=atof(param[8].argument[0].c_str());
2611 double ymax=atof(param[9].argument[0].c_str());
2612 double zmax=atof(param[10].argument[0].c_str());
2613 int nx=atoi(param[11].argument[0].c_str());
2614 int ny=atoi(param[12].argument[0].c_str());
2615 int nz=atoi(param[13].argument[0].c_str());
2616 BOITE_3D b(xmin,ymin,zmin,xmax,ymax,zmax);
2619 if (entite==
"NOEUD")
lire_NOEUD(
id,parse,param,data,mgmai,mggeo);
2620 if (entite==
"FEM_NOEUD")
2622 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
2623 long idtopo=
cid(param[2].argument[0]);
2624 long idmai=
cid(param[3].argument[0]);
2625 double x=atof(param[4].argument[0].c_str());
2626 double y=atof(param[5].argument[0].c_str());
2627 double z=atof(param[6].argument[0].c_str());
2628 int num=atoi(param[7].argument[0].c_str());
2629 int numopt=atoi(param[8].argument[0].c_str());
2640 if (elmai!=NULL) noeud=
new FEM_NOEUD(
id,elmai,x,y,z);
2658 if (entite==
"FEM_NOEUD_DEF")
2660 parse.
decode(data.c_str(),
"@,@,@",param+2);
2661 double x=atof(param[2].argument[0].c_str());
2662 double y=atof(param[3].argument[0].c_str());
2663 double z=atof(param[4].argument[0].c_str());
2670 if (entite==
"FEM_NOEUD_REAC")
2672 parse.
decode(data.c_str(),
"@,@,@",param+2);
2673 double x=atof(param[2].argument[0].c_str());
2674 double y=atof(param[3].argument[0].c_str());
2675 double z=atof(param[4].argument[0].c_str());
2682 if (entite==
"SEGMENT")
lire_SEGMENT(
id,parse,param,data,mgmai,mggeo);
2683 if (entite==
"FEM_ELEMENT_NOEUD")
2685 parse.
decode(data.c_str(),
"@,@,@",param+2);
2686 long idtopo=
cid(param[2].argument[0]);
2687 long idmai=
cid(param[3].argument[0]);
2688 long idn1=
cid(param[4].argument[0]);
2701 if (entite==
"FEM_SEGMENT2")
2703 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
2704 long idtopo=
cid(param[2].argument[0]);
2705 long idmai=
cid(param[3].argument[0]);
2706 long idn1=
cid(param[4].argument[0]);
2707 long idn2=
cid(param[5].argument[0]);
2722 if (entite==
"FEM_MINI_SEGMENT2")
2724 parse.
decode(data.c_str(),
"@,@",param+2);
2725 long idn1=
cid(param[2].argument[0]);
2726 long idn2=
cid(param[3].argument[0]);
2734 if (entite==
"FEM_SEGMENT3")
2736 parse.
decode(data.c_str(),
"@,@,@,@,@",param+2);
2737 long idtopo=
cid(param[2].argument[0]);
2738 long idmai=
cid(param[3].argument[0]);
2739 long idn1=
cid(param[4].argument[0]);
2740 long idn2=
cid(param[5].argument[0]);
2741 long idn3=
cid(param[6].argument[0]);
2756 if (entite==
"TRIANGLE")
lire_TRIANGLE(
id,parse,param,data,mgmai,mggeo);
2757 if (entite==
"QUADRANGLE")
lire_QUADRANGLE(
id,parse,param,data,mgmai,mggeo);
2758 if (entite==
"FEM_TRIANGLE3")
2760 parse.
decode(data.c_str(),
"@,@,@,@,@",param+2);
2761 long idtopo=
cid(param[2].argument[0]);
2762 long idmai=
cid(param[3].argument[0]);
2763 long idn1=
cid(param[4].argument[0]);
2764 long idn2=
cid(param[5].argument[0]);
2765 long idn3=
cid(param[6].argument[0]);
2780 if (entite==
"FEM_TRIANGLE6")
2782 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@",param+2);
2783 long idtopo=
cid(param[2].argument[0]);
2784 long idmai=
cid(param[3].argument[0]);
2785 long idn1=
cid(param[4].argument[0]);
2786 long idn2=
cid(param[5].argument[0]);
2787 long idn3=
cid(param[6].argument[0]);
2788 long idn4=
cid(param[7].argument[0]);
2789 long idn5=
cid(param[8].argument[0]);
2790 long idn6=
cid(param[9].argument[0]);
2808 if (entite==
"FEM_QUADRANGLE4")
2810 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
2811 long idtopo=
cid(param[2].argument[0]);
2812 long idmai=
cid(param[3].argument[0]);
2813 long idn1=
cid(param[4].argument[0]);
2814 long idn2=
cid(param[5].argument[0]);
2815 long idn3=
cid(param[6].argument[0]);
2816 long idn4=
cid(param[7].argument[0]);
2832 if (entite==
"FEM_QUADRANGLE8")
2834 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@",param+2);
2835 long idtopo=
cid(param[2].argument[0]);
2836 long idmai=
cid(param[3].argument[0]);
2837 long idn1=
cid(param[4].argument[0]);
2838 long idn2=
cid(param[5].argument[0]);
2839 long idn3=
cid(param[6].argument[0]);
2840 long idn4=
cid(param[7].argument[0]);
2841 long idn5=
cid(param[8].argument[0]);
2842 long idn6=
cid(param[9].argument[0]);
2843 long idn7=
cid(param[10].argument[0]);
2844 long idn8=
cid(param[11].argument[0]);
2864 if (entite==
"TETRAEDRE")
lire_TETRA(
id,parse,param,data,mgmai,mggeo);
2866 if (entite==
"HEXAEDRE")
lire_HEXA(
id,parse,param,data,mgmai,mggeo);
2867 if (entite==
"PENTAEDRE")
lire_PENTA(
id,parse,param,data,mgmai,mggeo);
2868 if (entite==
"PYRAMIDE")
lire_PYRAMIDE(
id,parse,param,data,mgmai,mggeo);
2869 if (entite==
"FEM_TETRA4")
2871 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
2872 long idtopo=
cid(param[2].argument[0]);
2873 long idmai=
cid(param[3].argument[0]);
2874 long idn1=
cid(param[4].argument[0]);
2875 long idn2=
cid(param[5].argument[0]);
2876 long idn3=
cid(param[6].argument[0]);
2877 long idn4=
cid(param[7].argument[0]);
2878 long etat=atoi(param[8].argument[0].c_str());
2895 if (entite==
"XFEM_ELEMENT_NOEUD")
2897 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
2898 unsigned long idele=
cid(param[2].argument[0]);
2899 unsigned long idtopo=
cid(param[3].argument[0]);
2900 unsigned long idn1=
cid(param[4].argument[0]);
2901 int etat=atoi(param[5].argument[0].c_str());
2913 if (entite==
"XFEM_SEGMENT2")
2915 parse.
decode(data.c_str(),
"@,@,@,@,@",param+2);
2916 unsigned long idele=
cid(param[2].argument[0]);
2917 unsigned long idtopo=
cid(param[3].argument[0]);
2918 unsigned long idn1=
cid(param[4].argument[0]);
2919 unsigned long idn2=
cid(param[5].argument[0]);
2920 int etat=atoi(param[6].argument[0].c_str());
2932 if (entite==
"XFEM_TRIANGLE3")
2934 parse.
decode(data.c_str(),
"@,@,@,@,@,@",param+2);
2935 unsigned long idtet=
cid(param[2].argument[0]);
2936 unsigned long idtopo=
cid(param[3].argument[0]);
2937 unsigned long idn1=
cid(param[4].argument[0]);
2938 unsigned long idn2=
cid(param[5].argument[0]);
2939 unsigned long idn3=
cid(param[6].argument[0]);
2940 int etat=atoi(param[7].argument[0].c_str());
2951 if (entite==
"XFEM_TETRA4")
2953 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@",param+2);
2954 unsigned long idtet=
cid(param[2].argument[0]);
2955 unsigned long idtopo=
cid(param[3].argument[0]);
2956 unsigned long idn1=
cid(param[4].argument[0]);
2957 unsigned long idn2=
cid(param[5].argument[0]);
2958 unsigned long idn3=
cid(param[6].argument[0]);
2959 unsigned long idn4=
cid(param[7].argument[0]);
2960 int etat=atoi(param[8].argument[0].c_str());
2972 if (entite==
"FEM_TETRA10")
2974 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,@",param+2);
2975 long idtopo=
cid(param[2].argument[0]);
2976 long idmai=
cid(param[3].argument[0]);
2977 long idn1=
cid(param[4].argument[0]);
2978 long idn2=
cid(param[5].argument[0]);
2979 long idn3=
cid(param[6].argument[0]);
2980 long idn4=
cid(param[7].argument[0]);
2981 long idn5=
cid(param[8].argument[0]);
2982 long idn6=
cid(param[9].argument[0]);
2983 long idn7=
cid(param[10].argument[0]);
2984 long idn8=
cid(param[11].argument[0]);
2985 long idn9=
cid(param[12].argument[0]);
2986 long idn10=
cid(param[13].argument[0]);
3008 if (entite==
"FEM_HEXA8")
3010 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@",param+2);
3011 long idtopo=
cid(param[2].argument[0]);
3012 long idmai=
cid(param[3].argument[0]);
3013 long idn1=
cid(param[4].argument[0]);
3014 long idn2=
cid(param[5].argument[0]);
3015 long idn3=
cid(param[6].argument[0]);
3016 long idn4=
cid(param[7].argument[0]);
3017 long idn5=
cid(param[8].argument[0]);
3018 long idn6=
cid(param[9].argument[0]);
3019 long idn7=
cid(param[10].argument[0]);
3020 long idn8=
cid(param[11].argument[0]);
3040 if (entite==
"FEM_HEXA20")
3042 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@",param+2);
3043 long idtopo=
cid(param[2].argument[0]);
3044 long idmai=
cid(param[3].argument[0]);
3045 long idn1=
cid(param[4].argument[0]);
3046 long idn2=
cid(param[5].argument[0]);
3047 long idn3=
cid(param[6].argument[0]);
3048 long idn4=
cid(param[7].argument[0]);
3049 long idn5=
cid(param[8].argument[0]);
3050 long idn6=
cid(param[9].argument[0]);
3051 long idn7=
cid(param[10].argument[0]);
3052 long idn8=
cid(param[11].argument[0]);
3053 long idn9=
cid(param[12].argument[0]);
3054 long idn10=
cid(param[13].argument[0]);
3055 long idn11=
cid(param[14].argument[0]);
3056 long idn12=
cid(param[15].argument[0]);
3057 long idn13=
cid(param[16].argument[0]);
3058 long idn14=
cid(param[17].argument[0]);
3059 long idn15=
cid(param[18].argument[0]);
3060 long idn16=
cid(param[19].argument[0]);
3061 long idn17=
cid(param[20].argument[0]);
3062 long idn18=
cid(param[21].argument[0]);
3063 long idn19=
cid(param[22].argument[0]);
3064 long idn20=
cid(param[23].argument[0]);
3096 if (entite==
"FEM_PENTA6")
3098 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@",param+2);
3099 long idtopo=
cid(param[2].argument[0]);
3100 long idmai=
cid(param[3].argument[0]);
3101 long idn1=
cid(param[4].argument[0]);
3102 long idn2=
cid(param[5].argument[0]);
3103 long idn3=
cid(param[6].argument[0]);
3104 long idn4=
cid(param[7].argument[0]);
3105 long idn5=
cid(param[8].argument[0]);
3106 long idn6=
cid(param[9].argument[0]);
3124 if (entite==
"FEM_PENTA15")
3126 parse.
decode(data.c_str(),
"@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@",param+2);
3127 long idtopo=
cid(param[2].argument[0]);
3128 long idmai=
cid(param[3].argument[0]);
3129 long idn1=
cid(param[4].argument[0]);
3130 long idn2=
cid(param[5].argument[0]);
3131 long idn3=
cid(param[6].argument[0]);
3132 long idn4=
cid(param[7].argument[0]);
3133 long idn5=
cid(param[8].argument[0]);
3134 long idn6=
cid(param[9].argument[0]);
3135 long idn7=
cid(param[10].argument[0]);
3136 long idn8=
cid(param[11].argument[0]);
3137 long idn9=
cid(param[12].argument[0]);
3138 long idn10=
cid(param[13].argument[0]);
3139 long idn11=
cid(param[14].argument[0]);
3140 long idn12=
cid(param[15].argument[0]);
3141 long idn13=
cid(param[16].argument[0]);
3142 long idn14=
cid(param[17].argument[0]);
3143 long idn15=
cid(param[18].argument[0]);
3170 if (entite==
"SOLUTION")
3172 parse.
decode(data.c_str(),
"@,@,@,@,@,@,(&)",param+2);
3173 int typeentite=atoi(param[2].argument[0].c_str());
3174 int typesolution=atoi(param[3].argument[0].c_str());
3175 std::string nomsol=param[4].
argument[0];
3176 long idmai=
cid(param[5].argument[0]);
3177 int nb=atoi(param[6].argument[0].c_str());
3178 std::string chemin=param[7].
argument[0];
3182 for (
int i=0;i<nb;i++)
3185 if (entite==
"FEM_SOLUTION")
3187 parse.
decode(data.c_str(),
"@,@,@,@,@,@,(&)",param+2);
3188 int typeentite=atoi(param[2].argument[0].c_str());
3189 int typesolution=atoi(param[3].argument[0].c_str());
3190 std::string nomsol=param[4].
argument[0];
3191 long idmai=
cid(param[5].argument[0]);
3192 int nb=atoi(param[6].argument[0].c_str());
3193 std::string chemin_sol=param[7].
argument[0];
3197 for (
int i=0;i<nb;i++)
3200 #ifdef WINDOWS_VERSION
3201 if (entite==
"CAD4FE_MCSEGMENT")
3203 parse.
decode(data.c_str(),
"@,@,@",param+2);
3204 long idtopo=
cid(param[2].argument[0]);
3205 long idn1=
cid(param[3].argument[0]);
3206 long idn2=
cid(param[4].argument[0]);
3220 if (entite==
"CAD4FE_MCNODE")
3222 parse.
decode(data.c_str(),
"@,@,@,@,@",param+2);
3223 long idRefTopo=
cid(param[2].argument[0]);
3224 long idMCTopo=
cid(param[3].argument[0]);
3225 double x=atof(param[4].argument[0].c_str());
3226 double y=atof(param[5].argument[0].c_str());
3227 double z=atof(param[6].argument[0].c_str());
3241 if (updatedMergedRefVertices ==
false)
3243 for (std::multimap<CAD4FE::MCVertex * , unsigned long>::iterator itMergedRefVertices = mapMergedRefVertices.begin();
3244 itMergedRefVertices != mapMergedRefVertices.end();
3245 itMergedRefVertices++)
3249 unsigned long id = itMergedRefVertices->second;
3254 updatedMergedRefVertices =
true;
3261 if (entite==
"CAD4FE_MCTRIANGLE")
3263 parse.
decode(data.c_str(),
"@,@,@,@",param+2);
3264 long idtopo=
cid(param[2].argument[0]);
3265 long idn1=
cid(param[3].argument[0]);
3266 long idn2=
cid(param[4].argument[0]);
3267 long idn3=
cid(param[5].argument[0]);
3275 for (
int i=0;i<3;i++)
3278 if (mgsegment[i]==NULL)
3290 while (param[0].argument[0]!=
"FIN");
3292 for (
int i=0;i<volumemince.size();i=i+3)
3301 LISTE_MG_ARBRE::iterator itarbre;
3304 LISTE_MG_ASSEMBLAGE::iterator itass;
3305 for (MG_ASSEMBLAGE *ass=arb->get_premier_assemblage(itass);ass!=NULL;ass=arb->get_suivant_assemblage(itass))
3306 ass->ini_donne(arb);
3309 LISTE_MG_GEOMETRIE::iterator itgeo;
3312 LISTE_MG_CONSTRUCTION::iterator itcon;
3318 LISTE_MG_SOMMET::iterator itsom;
3319 for (
MG_SOMMET* som=geo->get_premier_sommet(itsom);som;som=geo->get_suivant_sommet(itsom))
3320 if (som->est_une_topo_element())
3325 LISTE_MG_MAILLAGE::iterator itmai;
3327 if (mai->get_mg_noeudid(idnoeud)!=NULL) noeud=mai->get_mg_noeudid(idnoeud);
3330 LISTE_MG_COQUE::iterator itcoq;
3331 for (
MG_COQUE* coq=geo->get_premier_coque(itcoq);coq;coq=geo->get_suivant_coque(itcoq))
3332 if (coq->est_une_topo_element())
3337 for (
int i=0;i<nbele;i++)
3342 LISTE_MG_MAILLAGE::iterator itmai;
3345 if (mai->get_mg_triangleid(eleid)!=NULL) mgmai=mai;
3346 if (mai->get_mg_quadrangleid(eleid)!=NULL) mgmai=mai;
3356 LISTE_MG_POUTRE::iterator itpou;
3357 for (
MG_POUTRE* pou=geo->get_premier_poutre(itpou);pou;pou=geo->get_suivant_poutre(itpou))
3358 if (pou->est_une_topo_element())
3363 for (
int i=0;i<nbele;i++)
3368 LISTE_MG_MAILLAGE::iterator itmai;
3371 if (mai->get_mg_segmentid(eleid)!=NULL) mgmai=mai;
3381 #ifdef WINDOWS_VERSION
3382 if (updatedMergedRefVertices ==
false)
3384 for (std::multimap<CAD4FE::MCVertex * , unsigned long>::iterator itMergedRefVertices = mapMergedRefVertices.begin();
3385 itMergedRefVertices != mapMergedRefVertices.end();
3386 itMergedRefVertices++)
3390 unsigned long id = itMergedRefVertices->second;
3395 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