MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mg_geometrie.cpp
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
2 //####//------------------------------------------------------------
3 //####// MAGiC
4 //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5 //####// Departement de Genie Mecanique - UQTR
6 //####//------------------------------------------------------------
7 //####// MAGIC est un projet de recherche de l equipe ERICCA
8 //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9 //####// http://www.uqtr.ca/ericca
10 //####// http://www.uqtr.ca/
11 //####//------------------------------------------------------------
12 //####//------------------------------------------------------------
13 //####//
14 //####// mg_geometrie.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:54 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 
24 #include "gestionversion.h"
25 #include <iostream>
26 #include <string.h>
27 
28 
29 #include "mg_geometrie.h"
30 #include "mg_gestionnaire.h"
31 #include "mg_sommet_noeud.h"
32 #include "occ_fonction.h"
33 #include "occ_fonction_v2015.h"
34 #include "occ_fonction_v2017.h"
35 #include "ot_chaine.h"
36 
37 
38 
39 MG_GEOMETRIE::MG_GEOMETRIE(char *type,const char *nom,double unite,double eps):MG_IDENTIFICATEUR(),gest_materiau(""),valeur_unite(unite),precision(eps)
40 {
41 ini(type,(char*)nom);
42 }
43 
44 void MG_GEOMETRIE::ini(char *type,char *nom)
45 {
47  fonction1=NULL;
48  nom_du_fichier=new char[strlen(nom)+1];
49  strcpy(nom_du_fichier,nom);
50  strcpy(type_geo,type);
51 
52  #ifdef BREP_SAT
53  if (strcmp(type_geo,"ACIS")==0)
54  {
56  get_gest_sat().lire();
57  }
58  #endif
59 
60  #ifdef BREP_STEP
61  if (strcmp(type_geo,"STEP")==0)
62  {
64  get_gest_step().lire();
65  }
66  #endif
67 
68  #ifdef BREP_OCC
69  if ((strcmp(type_geo,"STEPOCC")==0)||(strcmp(type_geo,"OCC")==0)||((strcmp(type_geo,"OCCV2015")==0))||((strcmp(type_geo,"OCCV2017")==0)))
70  {
71  if (strcmp(type_geo,"OCC")==0) fonction1=new OCC_FONCTION;
72  #ifdef ALL_OCC
73  else if(strcmp(type_geo,"OCCV2017")==0)
74  {
76  return;
77  }
78  #endif
80  char path2[500];
81  strcpy(path2,nom_du_fichier);
82  if (strcmp(type_geo,"STEPOCC")==0)
83  {
85  char *p=strchr(path2,'.')+1;
86  p[0]='b';
87  p[1]='r';
88  p[2]='e';
89  p[3]='p';
90  p[4]=0;
91  fonction1->Sauvegarder(path2);
92  strcpy(nom_du_fichier,path2);
93  strcpy(type_geo,"OCCV2015");
94  }
96  }
97  #endif
98 }
99 
100 MG_GEOMETRIE::MG_GEOMETRIE(char *type,unsigned long num,const char *nom,double unite,double eps):MG_IDENTIFICATEUR(num),valeur_unite(unite),precision(eps)
101 {
102 ini(type,(char*)nom);
103 }
104 
105 
106 
108 {
123 #ifdef BREP_OCC
124  if ((strcmp(type_geo,"STEPOCC")==0)||(strcmp(type_geo,"OCC")==0)||((strcmp(type_geo,"OCCV2015")==0))||((strcmp(type_geo,"OCCV2017")==0)))
125  delete fonction1;
126 #endif
127 
128 }
129 
130 
132 {
133  gest=mggest;
134 }
135 
136 
138 {
139  gest->recherche_bonid(*mgpt);
140  MG_IDENTIFICATEUR *id=mgpt;
141  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
142  if (!p.second)
143  {
144  return FAIL;
145  }
146 
147  std::pair<const unsigned long,MG_POINT*> tmp(mgpt->get_id(),mgpt);
148  lst_mg_point.insert(tmp);
149  return OK;
150 }
151 
152 
154 {
155  LISTE_MG_POINT::iterator i=lst_mg_point.find(num);
156  if (i==lst_mg_point.end())
157  {
158  return NULL;
159  }
160  return ((*i).second);
161 }
162 
163 
164 
166 {
167  if (!(num<lst_mg_point.size()))
168  {
169  return NULL;
170  }
171  LISTE_MG_POINT::iterator i=lst_mg_point.begin();
172  for (unsigned long j=0;j<num;j++) i++;
173  return ((*i).second);
174 }
175 
176 
177 
179 {
180  return lst_mg_point.size();
181 }
182 
183 
185 {
186  MG_POINT* mgpt=get_mg_pointid(num);
187  if (mgpt==NULL)
188  {
189  return FAIL;
190  }
191  MG_IDENTIFICATEUR* id=mgpt;
192  LISTE_ENTITE::iterator i=lst_entite.find(id);
193  lst_entite.erase(i);
194  LISTE_MG_POINT::iterator j=lst_mg_point.find(num);
195  lst_mg_point.erase(j);
196  delete mgpt;
197  return OK;
198 }
199 
200 
201 int MG_GEOMETRIE::supprimer_mg_point(unsigned int num)
202 {
203  MG_POINT* mgpt=get_mg_point(num);
204  if (mgpt==NULL)
205  {
206  return FAIL;
207  }
208  MG_IDENTIFICATEUR* id=mgpt;
209  LISTE_ENTITE::iterator i=lst_entite.find(id);
210  lst_entite.erase(i);
211  LISTE_MG_POINT::iterator j=lst_mg_point.begin();
212  for (unsigned int k=0;k<num;k++) j++;
213  lst_mg_point.erase(j);
214  delete mgpt;
215  return OK;
216 }
217 
218 
220 {
221  while (get_nb_mg_point()!=0)
222  {
223  LISTE_MG_POINT::iterator j=lst_mg_point.begin();
224  MG_POINT* mgpt=(*j).second;
225  MG_IDENTIFICATEUR* id=mgpt;
226  LISTE_ENTITE::iterator i=lst_entite.find(id);
227  lst_entite.erase(i);
228  lst_mg_point.erase(j);
229  delete mgpt;
230  }
231 }
232 
233 MG_POINT* MG_GEOMETRIE::get_premier_point(LISTE_MG_POINT::iterator &it)
234 {
235  it = lst_mg_point.begin();
236  if (it == lst_mg_point.end())
237  return NULL;
238  return it->second ;
239 }
240 
241 MG_POINT* MG_GEOMETRIE::get_suivant_point(LISTE_MG_POINT::iterator &it)
242 {
243  it++;
244  if (it==lst_mg_point.end())
245  return NULL;
246  return it->second;
247 }
248 
249 
250 
252 {
253  gest->recherche_bonid(*mgcrb);
254  MG_IDENTIFICATEUR *id=mgcrb;
255  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
256  if (!p.second)
257  {
258  return FAIL;
259  }
260  std::pair<const unsigned long,MG_COURBE*> tmp(mgcrb->get_id(),mgcrb);
261  lst_mg_courbe.insert(tmp);
262  return OK;
263 }
264 
265 
267 {
268  LISTE_MG_COURBE::iterator i=lst_mg_courbe.find(num);
269  if (i==lst_mg_courbe.end())
270  {
271  return NULL;
272  }
273  return ((*i).second);
274 }
275 
276 
277 
279 {
280  if (!(num<lst_mg_courbe.size()))
281  {
282  return NULL;
283  }
284  LISTE_MG_COURBE::iterator i=lst_mg_courbe.begin();
285 
286  for (unsigned long j=0;j<num;j++) i++;
287  return ((*i).second);
288 }
289 
290 
291 
293 {
294  return lst_mg_courbe.size();
295 }
296 
297 
299 {
300  MG_COURBE* mgcrb=get_mg_courbeid(num);
301  if (mgcrb==NULL)
302  {
303  return FAIL;
304  }
305  MG_IDENTIFICATEUR* id=mgcrb;
306  LISTE_ENTITE::iterator i=lst_entite.find(id);
307  lst_entite.erase(i);
308  LISTE_MG_COURBE::iterator j=lst_mg_courbe.find(num);
309  lst_mg_courbe.erase(j);
310  delete mgcrb;
311  return OK;
312 }
313 
314 
316 {
317  MG_COURBE* mgcrb=get_mg_courbe(num);
318  if (mgcrb==NULL)
319  {
320  return FAIL;
321  }
322  MG_IDENTIFICATEUR* id=mgcrb;
323  LISTE_ENTITE::iterator i=lst_entite.find(id);
324  lst_entite.erase(i);
325  LISTE_MG_COURBE::iterator j=lst_mg_courbe.begin();
326  for (unsigned int k=0;k<num;k++) j++;
327  lst_mg_courbe.erase(j);
328  delete mgcrb;
329  return OK;
330 }
331 
333 {
334  while (get_nb_mg_courbe()!=0)
335  {
336  LISTE_MG_COURBE::iterator j=lst_mg_courbe.begin();
337  MG_COURBE* mgcrb=(*j).second;
338  MG_IDENTIFICATEUR* id=mgcrb;
339  LISTE_ENTITE::iterator i=lst_entite.find(id);
340  lst_entite.erase(i);
341  lst_mg_courbe.erase(j);
342  delete mgcrb;
343  }
344 }
345 
346 MG_COURBE* MG_GEOMETRIE::get_premier_courbe(LISTE_MG_COURBE::iterator &it)
347 {
348  it = lst_mg_courbe.begin();
349  if (it == lst_mg_courbe.end())
350  return NULL;
351  return it->second ;
352 }
353 
354 MG_COURBE* MG_GEOMETRIE::get_suivant_courbe(LISTE_MG_COURBE::iterator &it)
355 {
356  it++;
357  if (it==lst_mg_courbe.end())
358  return NULL;
359  return it->second;
360 }
361 
362 
363 
364 
365 
367 {
368  gest->recherche_bonid(*mgsrf);
369  MG_IDENTIFICATEUR *id=mgsrf;
370  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
371  if (!p.second)
372  {
373  return FAIL;
374  }
375 
376  std::pair<const unsigned long,MG_SURFACE*> tmp(mgsrf->get_id(),mgsrf);
377  lst_mg_surface.insert(tmp);
378  return OK;
379 }
380 
381 
383 {
384  LISTE_MG_SURFACE::iterator i=lst_mg_surface.find(num);
385  if (i==lst_mg_surface.end())
386  {
387  return NULL;
388  }
389  return ((*i).second);
390 }
391 
392 
393 
395 {
396  if (!(num<lst_mg_surface.size()))
397  {
398  return NULL;
399  }
400  LISTE_MG_SURFACE::iterator i=lst_mg_surface.begin();
401  for (unsigned long j=0;j<num;j++) i++;
402  return ((*i).second);
403 }
404 
405 
406 
408 {
409  return lst_mg_surface.size();
410 }
411 
412 
414 {
415  MG_SURFACE* mgsrf=get_mg_surfaceid(num);
416  if (mgsrf==NULL)
417  {
418  return FAIL;
419  }
420  MG_IDENTIFICATEUR* id=mgsrf;
421  LISTE_ENTITE::iterator i=lst_entite.find(id);
422  lst_entite.erase(i);
423  LISTE_MG_SURFACE::iterator j=lst_mg_surface.find(num);
424  lst_mg_surface.erase(j);
425  delete mgsrf;
426  return OK;
427 }
428 
429 
431 {
432  MG_SURFACE* mgsrf=get_mg_surface(num);
433  if (mgsrf==NULL)
434  {
435  return FAIL;
436  }
437  MG_IDENTIFICATEUR* id=mgsrf;
438  LISTE_ENTITE::iterator i=lst_entite.find(id);
439  lst_entite.erase(i);
440  LISTE_MG_SURFACE::iterator j=lst_mg_surface.begin();
441  for (unsigned int k=0;k<num;k++) j++;
442  lst_mg_surface.erase(j);
443  delete mgsrf;
444  return OK;
445 }
446 
447 
449 {
450  while (get_nb_mg_surface()!=0)
451  {
452  LISTE_MG_SURFACE::iterator j=lst_mg_surface.begin();
453  MG_SURFACE* mgsrf=(*j).second;
454  MG_IDENTIFICATEUR* id=mgsrf;
455  LISTE_ENTITE::iterator i=lst_entite.find(id);
456  lst_entite.erase(i);
457  lst_mg_surface.erase(j);
458  delete mgsrf;
459  }
460 }
461 
462 MG_SURFACE* MG_GEOMETRIE::get_premier_surface(LISTE_MG_SURFACE::iterator &it)
463 {
464  it = lst_mg_surface.begin();
465  if (it == lst_mg_surface.end())
466  return NULL;
467  return it->second ;
468 }
469 
470 MG_SURFACE* MG_GEOMETRIE::get_suivant_surface(LISTE_MG_SURFACE::iterator &it)
471 {
472  it++;
473  if (it==lst_mg_surface.end())
474  return NULL;
475  return it->second;
476 }
477 
478 
479 
480 
482 {
483 MG_SOMMET_NOEUD* somno=new MG_SOMMET_NOEUD(noeud);
484 gest->recherche_bonid(*somno);
485 MG_IDENTIFICATEUR *id=somno;
486 std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
487 if (!p.second)
488  {
489  delete somno;
490  return NULL;
491  }
492 std::pair<const unsigned long,MG_SOMMET*> tmp(somno->get_id(),somno);
493 lst_mg_sommet.insert(tmp);
494 return somno;
495 }
496 
498 {
499  gest->recherche_bonid(*mgsom);
500  MG_IDENTIFICATEUR *id=mgsom;
501  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
502  if (!p.second)
503  {
504  return FAIL;
505  }
506 
507  std::pair<const unsigned long,MG_SOMMET*> tmp(mgsom->get_id(),mgsom);
508  lst_mg_sommet.insert(tmp);
509  return OK;
510 }
511 
512 
514 {
515  LISTE_MG_SOMMET::iterator i=lst_mg_sommet.find(num);
516  if (i==lst_mg_sommet.end())
517  {
518  return NULL;
519  }
520  return ((*i).second);
521 }
522 
524 {
525  LISTE_MG_SOMMET::iterator i=lst_mg_sommet.begin();
526  int nb=lst_mg_sommet.size();
527  for (int j=0;j<nb;j++)
528  {
529  MG_SOMMET* sommet=(*i).second;
530  std::string idori=sommet->get_idoriginal();
531  if (idori==id) return sommet;
532  i++;
533  }
534  return NULL;
535 }
536 
537 
538 
540 {
541  if (!(num<lst_mg_sommet.size()))
542  {
543  return NULL;
544  }
545  LISTE_MG_SOMMET::iterator i=lst_mg_sommet.begin();
546  for (unsigned long j=0;j<num;j++) i++;
547  return ((*i).second);
548 }
549 
550 
551 
553 {
554  return lst_mg_sommet.size();
555 }
556 
557 
559 {
560  MG_SOMMET* mgsom=get_mg_sommetid(num);
561  if (mgsom==NULL)
562  {
563  return FAIL;
564  }
565  if (mgsom->get_nb_mg_cosommet()!=0)
566  {
567  return FAIL;
568  }
569  MG_IDENTIFICATEUR* id=mgsom;
570  LISTE_ENTITE::iterator i=lst_entite.find(id);
571  lst_entite.erase(i);
572  LISTE_MG_SOMMET::iterator j=lst_mg_sommet.find(num);
573  lst_mg_sommet.erase(j);
574 #ifdef ALL_OCC
575  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_SOMMET((OCC_SOMMET*)mgsom);
576 #endif
577  delete mgsom;
578  return OK;
579 }
580 
581 
583 {
584  MG_SOMMET* mgsom=get_mg_sommet(num);
585  if (mgsom==NULL)
586  {
587  return FAIL;
588  }
589  if (mgsom->get_nb_mg_cosommet()!=0)
590  {
591  return FAIL;
592  }
593  MG_IDENTIFICATEUR* id=mgsom;
594  LISTE_ENTITE::iterator i=lst_entite.find(id);
595  lst_entite.erase(i);
596  LISTE_MG_SOMMET::iterator j=lst_mg_sommet.begin();
597  for (unsigned int k=0;k<num;k++) j++;
598  lst_mg_sommet.erase(j);
599 #ifdef ALL_OCC
600  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_SOMMET((OCC_SOMMET*)mgsom);
601 #endif
602  delete mgsom;
603  return OK;
604 }
605 
606 
608 {
609  while (get_nb_mg_sommet()!=0)
610  {
611  LISTE_MG_SOMMET::iterator j=lst_mg_sommet.begin();
612  MG_SOMMET* mgsom=(*j).second;
613  MG_IDENTIFICATEUR* id=mgsom;
614  LISTE_ENTITE::iterator i=lst_entite.find(id);
615  lst_entite.erase(i);
616  lst_mg_sommet.erase(j);
617 #ifdef ALL_OCC
618  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_SOMMET((OCC_SOMMET*)mgsom);
619 #endif
620  delete mgsom;
621  }
622 }
623 
624 MG_SOMMET* MG_GEOMETRIE::get_premier_sommet(LISTE_MG_SOMMET::iterator &it)
625 {
626  it = lst_mg_sommet.begin();
627  if (it == lst_mg_sommet.end())
628  return NULL;
629  return it->second ;
630 }
631 
632 MG_SOMMET* MG_GEOMETRIE::get_suivant_sommet(LISTE_MG_SOMMET::iterator &it)
633 {
634  it++;
635  if (it==lst_mg_sommet.end())
636  return NULL;
637  return it->second;
638 }
639 
640 
641 
642 
644 {
645  gest->recherche_bonid(*mgcosom);
646  MG_IDENTIFICATEUR *id=mgcosom;
647  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
648  if (!p.second)
649  {
650  return FAIL;
651  }
652 
653  std::pair<const unsigned long,MG_COSOMMET*> tmp(mgcosom->get_id(),mgcosom);
654  lst_mg_cosommet.insert(tmp);
655  return OK;
656 }
657 
659 {
660  MG_COSOMMET* mgcosom=new MG_COSOMMET(mgsom,mgarete,precision);
661  gest->recherche_bonid(*mgcosom);
662  MG_IDENTIFICATEUR *id=mgcosom;
663  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
664  if (!p.second)
665  {
666  delete mgcosom;
667  return NULL;
668  }
669 
670  std::pair<const unsigned long,MG_COSOMMET*> tmp(mgcosom->get_id(),mgcosom);
671  lst_mg_cosommet.insert(tmp);
672  mgsom->ajouter_mg_cosommet(mgcosom);
673  return mgcosom;
674 }
675 
677 {
678  MG_COSOMMET* mgcosom=new MG_COSOMMET(num,mgsom,mgarete,precision);
679  MG_IDENTIFICATEUR *id=mgcosom;
680  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
681  if (!p.second)
682  {
683  delete mgcosom;
684  return NULL;
685  }
686 
687  std::pair<const unsigned long,MG_COSOMMET*> tmp(mgcosom->get_id(),mgcosom);
688  lst_mg_cosommet.insert(tmp);
689  mgsom->ajouter_mg_cosommet(mgcosom);
690  return mgcosom;
691 }
692 
694 {
695  if (mgcosom==NULL)
696  {
697  return FAIL;
698  }
699  MG_IDENTIFICATEUR* id=mgcosom;
700  LISTE_ENTITE::iterator i=lst_entite.find(id);
701  lst_entite.erase(i);
702  LISTE_MG_COSOMMET::iterator j=lst_mg_cosommet.find(mgcosom->get_id());
703  lst_mg_cosommet.erase(j);
704  mgcosom->get_sommet()->supprimer_mg_cosommet(mgcosom);
705  delete mgcosom;
706  return OK;
707 }
708 
710 {
711  MG_COSOMMET* mgcosommet=get_mg_cosommetid(num);
712  if (mgcosommet==NULL)
713  {
714  return FAIL;
715  }
716  MG_IDENTIFICATEUR* id=mgcosommet;
717  LISTE_ENTITE::iterator i=lst_entite.find(id);
718  lst_entite.erase(i);
719  LISTE_MG_COSOMMET::iterator j=lst_mg_cosommet.find(num);
720  lst_mg_cosommet.erase(j);
721  mgcosommet->get_sommet()->supprimer_mg_cosommet(mgcosommet);
722  delete mgcosommet;
723  return OK;
724 }
725 
726 
728 {
729  return lst_mg_cosommet.size();
730 }
731 
732 MG_COSOMMET* MG_GEOMETRIE::get_premier_cosommet(LISTE_MG_COSOMMET::iterator& it)
733 {
734  it=lst_mg_cosommet.begin();
735  if(it==lst_mg_cosommet.end()) return NULL;
736  return it->second;
737 }
738 
739 MG_COSOMMET* MG_GEOMETRIE::get_suivant_cosommet(LISTE_MG_COSOMMET::iterator& it)
740 {
741  it++;
742  if(it==lst_mg_cosommet.end()) return NULL;
743  return it->second;
744 }
745 
747 {
748  LISTE_MG_COSOMMET::iterator i=lst_mg_cosommet.find(num);
749  if (i==lst_mg_cosommet.end())
750  {
751  return NULL;
752  }
753  return ((*i).second);
754 }
755 
756 
757 
758 
760 {
761  gest->recherche_bonid(*mgarete);
762  MG_IDENTIFICATEUR *id=mgarete;
763  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
764  if (!p.second)
765  {
766  return FAIL;
767  }
768 
769  std::pair<const unsigned long,MG_ARETE*> tmp(mgarete->get_id(),mgarete);
770  lst_mg_arete.insert(tmp);
771  return OK;
772 }
773 
774 
776 {
777  LISTE_MG_ARETE::iterator i=lst_mg_arete.find(num);
778  if (i==lst_mg_arete.end())
779  {
780  return NULL;
781  }
782  return ((*i).second);
783 }
784 
786 {
787  LISTE_MG_ARETE::iterator i=lst_mg_arete.begin();
788  int nb=lst_mg_arete.size();
789  for (int j=0;j<nb;j++)
790  {
791  MG_ARETE* arete=(*i).second;
792  std::string idori=arete->get_idoriginal();
793  if (idori==id) return arete;
794  i++;
795  }
796  return NULL;
797 }
798 
799 
801 {
802  if (!(num<lst_mg_arete.size()))
803  {
804  return NULL;
805  }
806  LISTE_MG_ARETE::iterator i=lst_mg_arete.begin();
807  for (unsigned long j=0;j<num;j++) i++;
808  return ((*i).second);
809 }
810 
811 
812 
814 {
815  return lst_mg_arete.size();
816 }
817 
818 
820 {
821  MG_ARETE* mgarete=get_mg_areteid(num);
822  if (mgarete==NULL)
823  {
824  return FAIL;
825  }
826  if (mgarete->get_nb_mg_coarete()!=0)
827  {
828  return FAIL;
829  }
830  MG_IDENTIFICATEUR* id=mgarete;
831  LISTE_ENTITE::iterator i=lst_entite.find(id);
832  lst_entite.erase(i);
833  LISTE_MG_ARETE::iterator j=lst_mg_arete.find(num);
834  lst_mg_arete.erase(j);
835  MG_COSOMMET* cosom1=mgarete->get_cosommet1();
836  MG_COSOMMET* cosom2=mgarete->get_cosommet2();
837  cosom1->get_sommet()->supprimer_mg_cosommet(cosom1);
838  cosom2->get_sommet()->supprimer_mg_cosommet(cosom2);
839  supprimer_mg_cosommet(cosom1);
840  supprimer_mg_cosommet(cosom2);
841 #ifdef ALL_OCC
842  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_ARETE((OCC_ARETE*)mgarete);
843 #endif
844  delete mgarete;
845  return OK;
846 }
847 
848 
849 int MG_GEOMETRIE::supprimer_mg_arete(unsigned int num)
850 {
851  MG_ARETE* mgarete=get_mg_arete(num);
852  if (mgarete==NULL)
853  {
854  return FAIL;
855  }
856  if (mgarete->get_nb_mg_coarete()!=0)
857  {
858  return FAIL;
859  }
860  MG_IDENTIFICATEUR* id=mgarete;
861  LISTE_ENTITE::iterator i=lst_entite.find(id);
862  lst_entite.erase(i);
863  LISTE_MG_ARETE::iterator j=lst_mg_arete.find(num);
864  lst_mg_arete.erase(j);
865  MG_COSOMMET* cosom1=mgarete->get_cosommet1();
866  MG_COSOMMET* cosom2=mgarete->get_cosommet2();
867  cosom1->get_sommet()->supprimer_mg_cosommet(cosom1);
868  cosom2->get_sommet()->supprimer_mg_cosommet(cosom2);
869  supprimer_mg_cosommet(cosom1);
870  supprimer_mg_cosommet(cosom2);
871 
872 #ifdef ALL_OCC
873  if(strcmp(type_geo,"OCCV2017")) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_ARETE((OCC_ARETE*)mgarete);
874 #endif
875  delete mgarete;
876  return OK;
877 }
878 
879 
881 {
882  while (get_nb_mg_arete()!=0)
883  {
884  LISTE_MG_ARETE::iterator j=lst_mg_arete.begin();
885  MG_ARETE* mgarete=(*j).second;
886  MG_IDENTIFICATEUR* id=mgarete;
887  LISTE_ENTITE::iterator i=lst_entite.find(id);
888  lst_entite.erase(i);
889  lst_mg_arete.erase(j);
890  if (!mgarete->est_une_topo_element())
891  {
892 
893  MG_COSOMMET* cosom1=mgarete->get_cosommet1();
894  MG_COSOMMET* cosom2=mgarete->get_cosommet2();
895  cosom1->get_sommet()->supprimer_mg_cosommet(cosom1);
896  cosom2->get_sommet()->supprimer_mg_cosommet(cosom2);
897  supprimer_mg_cosommet(cosom1);
898  supprimer_mg_cosommet(cosom2);
899 #ifdef ALL_OCC
900  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_ARETE((OCC_ARETE*)mgarete);
901 #endif
902  delete mgarete;
903  }
904  }
905 }
906 
907 MG_ARETE* MG_GEOMETRIE::get_premier_arete(LISTE_MG_ARETE::iterator &it)
908 {
909  it = lst_mg_arete.begin();
910  if (it == lst_mg_arete.end())
911  return NULL;
912  return it->second ;
913 }
914 
915 MG_ARETE* MG_GEOMETRIE::get_suivant_arete(LISTE_MG_ARETE::iterator &it)
916 {
917  it++;
918  if (it==lst_mg_arete.end())
919  return NULL;
920  return it->second;
921 }
922 
923 
924 
926 {
927  gest->recherche_bonid(*mgcoarete);
928  MG_IDENTIFICATEUR *id=mgcoarete;
929  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
930  if (!p.second)
931  {
932  return FAIL;
933  }
934  std::pair<const unsigned long,MG_COARETE*> tmp(mgcoarete->get_id(),mgcoarete);
935  lst_mg_coarete.insert(tmp);
936  return OK;
937 }
938 
939 
941 {
942  MG_COARETE* mgcoarete=new MG_COARETE(mgarete,mgboucle,sens);
943  gest->recherche_bonid(*mgcoarete);
944  MG_IDENTIFICATEUR *id=mgcoarete;
945  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
946  if (!p.second)
947  {
948  delete mgcoarete;
949  return NULL;
950  }
951 
952  std::pair<const unsigned long,MG_COARETE*> tmp(mgcoarete->get_id(),mgcoarete);
953  lst_mg_coarete.insert(tmp);
954  mgarete->ajouter_mg_coarete(mgcoarete);
955  return mgcoarete;
956 }
957 
958 
959 MG_COARETE* MG_GEOMETRIE::ajouter_mg_coarete(unsigned long num,MG_ARETE *mgarete,MG_BOUCLE *mgboucle,int sens)
960 {
961  MG_COARETE* mgcoarete=new MG_COARETE(num,mgarete,mgboucle,sens);
962  MG_IDENTIFICATEUR *id=mgcoarete;
963  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
964  if (!p.second)
965  {
966  delete mgcoarete;
967  return NULL;
968  }
969 
970  std::pair<const unsigned long,MG_COARETE*> tmp(mgcoarete->get_id(),mgcoarete);
971  lst_mg_coarete.insert(tmp);
972  mgarete->ajouter_mg_coarete(mgcoarete);
973  return mgcoarete;
974 }
975 
977 {
978  if (mgcoarete==NULL)
979  {
980  return FAIL;
981  }
982  MG_IDENTIFICATEUR* id=mgcoarete;
983  LISTE_ENTITE::iterator i=lst_entite.find(id);
984  lst_entite.erase(i);
985  LISTE_MG_COARETE::iterator j=lst_mg_coarete.find(mgcoarete->get_id());
986  lst_mg_coarete.erase(j);
987  mgcoarete->get_arete()->supprimer_mg_coarete(mgcoarete);
988  delete mgcoarete;
989  return OK;
990 }
991 
993 {
994  MG_COARETE* mgcoarete=get_mg_coareteid(num);
995  if (mgcoarete==NULL)
996  {
997  return FAIL;
998  }
999  MG_IDENTIFICATEUR* id=mgcoarete;
1000  LISTE_ENTITE::iterator i=lst_entite.find(id);
1001  lst_entite.erase(i);
1002  LISTE_MG_COARETE::iterator j=lst_mg_coarete.find(num);
1003  lst_mg_coarete.erase(j);
1004  mgcoarete->get_arete()->supprimer_mg_coarete(mgcoarete);
1005  delete mgcoarete;
1006  return OK;
1007 }
1008 
1009 
1011 {
1012  return lst_mg_coarete.size();
1013 }
1014 
1015 MG_COARETE* MG_GEOMETRIE::get_premier_coarete(LISTE_MG_COARETE::iterator& it)
1016 {
1017  it=lst_mg_coarete.begin();
1018  if(it==lst_mg_coarete.end()) return NULL;
1019  return it->second;
1020 }
1021 
1022 MG_COARETE* MG_GEOMETRIE::get_suivant_coarete(LISTE_MG_COARETE::iterator& it)
1023 {
1024  it++;
1025  if(it==lst_mg_coarete.end()) return NULL;
1026  return it->second;
1027 }
1028 
1030 {
1031  LISTE_MG_COARETE::iterator i=lst_mg_coarete.find(num);
1032  if (i==lst_mg_coarete.end())
1033  {
1034  return NULL;
1035  }
1036  return ((*i).second);
1037 }
1038 
1039 
1040 
1042 {
1043  gest->recherche_bonid(*mgboucle);
1044  MG_IDENTIFICATEUR *id=mgboucle;
1045  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
1046  if (!p.second)
1047  {
1048  return FAIL;
1049  }
1050  std::pair<const unsigned long,MG_BOUCLE*> tmp(mgboucle->get_id(),mgboucle);
1051  std::pair<LISTE_MG_BOUCLE::iterator,bool> p2 = lst_mg_boucle.insert(tmp);
1052  return OK;
1053 }
1054 
1056 {
1057  gest->recherche_bonid(*mgboucle);
1058  MG_IDENTIFICATEUR *id=mgboucle;
1059  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
1060  if (!p.second)
1061  {
1062  return FAIL;
1063  }
1064 
1065  std::pair<const unsigned long,MG_BOUCLE*> tmp(mgboucle->get_id(),mgboucle);
1066  std::pair<LISTE_MG_BOUCLE::iterator,bool> p2 = lst_mg_boucle.insert(tmp);
1067  if(p2.second) mgpoutre->ajouter_mg_boucle(mgboucle);
1068  return OK;
1069 }
1070 
1072 {
1073  gest->recherche_bonid(*mgboucle);
1074  MG_IDENTIFICATEUR *id=mgboucle;
1075  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
1076  if (!p.second)
1077  {
1078  return FAIL;
1079  }
1080 
1081  std::pair<const unsigned long,MG_BOUCLE*> tmp(mgboucle->get_id(),mgboucle);
1082  std::pair<LISTE_MG_BOUCLE::iterator,bool> p2 = lst_mg_boucle.insert(tmp);
1083  if(p2.second) mgface->ajouter_mg_boucle(mgboucle);
1084  return OK;
1085 }
1086 
1087 
1089 {
1090  LISTE_MG_BOUCLE::iterator i=lst_mg_boucle.find(num);
1091  if (i==lst_mg_boucle.end())
1092  {
1093  return NULL;
1094  }
1095  return ((*i).second);
1096 }
1097 
1098 
1099 
1101 {
1102  if (!(num<lst_mg_boucle.size()))
1103  {
1104  return NULL;
1105  }
1106  LISTE_MG_BOUCLE::iterator i=lst_mg_boucle.begin();
1107  for (unsigned long j=0;j<num;j++) i++;
1108  return ((*i).second);
1109 }
1110 
1111 
1112 
1114 {
1115  return lst_mg_boucle.size();
1116 }
1117 
1118 
1120 {
1121  MG_BOUCLE* mgboucle=get_mg_boucleid(num);
1122  if (mgboucle==NULL)
1123  {
1124  return FAIL;
1125  }
1126  MG_IDENTIFICATEUR* id=mgboucle;
1127  LISTE_ENTITE::iterator i=lst_entite.find(id);
1128  lst_entite.erase(i);
1129  LISTE_MG_BOUCLE::iterator j=lst_mg_boucle.find(num);
1130  lst_mg_boucle.erase(j);
1131  for (int k=0;k<mgboucle->get_nb_mg_coarete();k++)
1132  {
1133  MG_COARETE* coarete=mgboucle->get_mg_coarete(k);
1134  supprimer_mg_coarete(coarete);
1135  }
1136 #ifdef ALL_OCC
1137  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_BOUCLE((OCC_BOUCLE*)mgboucle);
1138 #endif
1139  delete mgboucle;
1140  return OK;
1141 }
1142 
1143 
1145 {
1146  MG_BOUCLE* mgboucle=get_mg_boucle(num);
1147  if (mgboucle==NULL)
1148  {
1149  return FAIL;
1150  }
1151  MG_IDENTIFICATEUR* id=mgboucle;
1152  LISTE_ENTITE::iterator i=lst_entite.find(id);
1153  lst_entite.erase(i);
1154  LISTE_MG_BOUCLE::iterator j=lst_mg_boucle.begin();
1155  for (unsigned int k=0;k<num;k++) j++;
1156  lst_mg_boucle.erase(j);
1157  for (int k=0;k<mgboucle->get_nb_mg_coarete();k++)
1158  {
1159  MG_COARETE* coarete=mgboucle->get_mg_coarete(k);
1160  supprimer_mg_coarete(coarete);
1161  }
1162 #ifdef ALL_OCC
1163  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_BOUCLE((OCC_BOUCLE*)mgboucle);
1164 #endif
1165  delete mgboucle;
1166  return OK;
1167 }
1168 
1169 
1171 {
1172  while (get_nb_mg_boucle()!=0)
1173  {
1174  LISTE_MG_BOUCLE::iterator j=lst_mg_boucle.begin();
1175  MG_BOUCLE* mgboucle=(*j).second;
1176  MG_IDENTIFICATEUR* id=mgboucle;
1177  LISTE_ENTITE::iterator i=lst_entite.find(id);
1178  lst_entite.erase(i);
1179  lst_mg_boucle.erase(j);
1180  for (int k=0;k<mgboucle->get_nb_mg_coarete();k++)
1181  {
1182  MG_COARETE* coarete=mgboucle->get_mg_coarete(k);
1183  supprimer_mg_coarete(coarete);
1184  }
1185 #ifdef ALL_OCC
1186  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_BOUCLE((OCC_BOUCLE*)mgboucle);
1187 #endif
1188  delete mgboucle;
1189  }
1190 }
1191 
1192 MG_BOUCLE* MG_GEOMETRIE::get_premier_boucle(LISTE_MG_BOUCLE::iterator &it)
1193 {
1194  it = lst_mg_boucle.begin();
1195  if (it == lst_mg_boucle.end())
1196  return NULL;
1197  return it->second ;
1198 }
1199 
1200 MG_BOUCLE* MG_GEOMETRIE::get_suivant_boucle(LISTE_MG_BOUCLE::iterator &it)
1201 {
1202  it++;
1203  if (it==lst_mg_boucle.end())
1204  return NULL;
1205  return it->second;
1206 }
1207 
1208 
1209 
1211 {
1212  gest->recherche_bonid(*mgface);
1213  MG_IDENTIFICATEUR *id=mgface;
1214  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
1215  if (!p.second)
1216  {
1217  return FAIL;
1218  }
1219 
1220  std::pair<const unsigned long,MG_FACE*> tmp(mgface->get_id(),mgface);
1221  lst_mg_face.insert(tmp);
1222  return OK;
1223 }
1224 
1225 
1227 {
1228  LISTE_MG_FACE::iterator i=lst_mg_face.find(num);
1229  if (i==lst_mg_face.end())
1230  {
1231  return NULL;
1232  }
1233  return ((*i).second);
1234 }
1235 
1237 {
1238  LISTE_MG_FACE::iterator i=lst_mg_face.begin();
1239  int nb=lst_mg_face.size();
1240  for (int j=0;j<nb;j++)
1241  {
1242  MG_FACE* face=(*i).second;
1243  std::string idori=face->get_idoriginal();
1244  if (idori==id) return face;
1245  i++;
1246  }
1247  return NULL;
1248 }
1249 
1250 
1252 {
1253  if (!(num<lst_mg_face.size()))
1254  {
1255  return NULL;
1256  }
1257  LISTE_MG_FACE::iterator i=lst_mg_face.begin();
1258  for (unsigned long j=0;j<num;j++) i++;
1259  return ((*i).second);
1260 }
1261 
1262 
1263 
1265 {
1266  return lst_mg_face.size();
1267 }
1268 
1269 
1271 {
1272  MG_FACE* mgface=get_mg_faceid(num);
1273  if (mgface==NULL)
1274  {
1275  return FAIL;
1276  }
1277  if (mgface->get_nb_mg_coface()!=0)
1278  {
1279  std::cerr << "ERRCOFACE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" << std::endl;
1280  return FAIL;
1281  }
1282  MG_IDENTIFICATEUR* id=mgface;
1283  LISTE_ENTITE::iterator i=lst_entite.find(id);
1284  lst_entite.erase(i);
1285  LISTE_MG_FACE::iterator j=lst_mg_face.find(num);
1286  lst_mg_face.erase(j);
1287 #ifdef ALL_OCC
1288  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_FACE((OCC_FACE*)mgface);
1289 #endif
1290  delete mgface;
1291  return OK;
1292 }
1293 
1294 
1295 int MG_GEOMETRIE::supprimer_mg_face(unsigned int num)
1296 {
1297  MG_FACE* mgface=get_mg_face(num);
1298  if (mgface==NULL)
1299  {
1300  return FAIL;
1301  }
1302  if (mgface->get_nb_mg_coface()!=0)
1303  {
1304  return FAIL;
1305  }
1306  MG_IDENTIFICATEUR* id=mgface;
1307  LISTE_ENTITE::iterator i=lst_entite.find(id);
1308  lst_entite.erase(i);
1309  LISTE_MG_FACE::iterator j=lst_mg_face.begin();
1310  for (unsigned int k=0;k<num;k++) j++;
1311  lst_mg_face.erase(j);
1312 #ifdef ALL_OCC
1313  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_FACE((OCC_FACE*)mgface);
1314 #endif
1315  delete mgface;
1316  return OK;
1317 }
1318 
1319 
1321 {
1322 
1323  while (get_nb_mg_face()!=0)
1324  {
1325  LISTE_MG_FACE::iterator j=lst_mg_face.begin();
1326  MG_FACE* mgface=(*j).second;
1327  MG_IDENTIFICATEUR* id=mgface;
1328  LISTE_ENTITE::iterator i=lst_entite.find(id);
1329  lst_entite.erase(i);
1330  lst_mg_face.erase(j);
1331 #ifdef ALL_OCC
1332  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_FACE((OCC_FACE*)mgface);
1333 #endif
1334  delete mgface;
1335  }
1336 }
1337 
1338 MG_FACE* MG_GEOMETRIE::get_premier_face(LISTE_MG_FACE::iterator &it)
1339 {
1340  it = lst_mg_face.begin();
1341  if (it == lst_mg_face.end())
1342  return NULL;
1343  return it->second ;
1344 }
1345 
1346 MG_FACE* MG_GEOMETRIE::get_suivant_face(LISTE_MG_FACE::iterator &it)
1347 {
1348  it++;
1349  if (it==lst_mg_face.end())
1350  return NULL;
1351  return it->second;
1352 }
1353 
1354 
1355 
1357 {
1358  gest->recherche_bonid(*mgcoface);
1359  MG_IDENTIFICATEUR *id=mgcoface;
1360  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
1361  if (!p.second)
1362  {
1363  return FAIL;
1364  }
1365 
1366  std::pair<const unsigned long,MG_COFACE*> tmp(mgcoface->get_id(),mgcoface);
1367  lst_mg_coface.insert(tmp);
1368  return OK;
1369 }
1370 
1372 {
1373  MG_COFACE* mgcoface=new MG_COFACE(mgface,mgcoq,sens);
1374  gest->recherche_bonid(*mgcoface);
1375  MG_IDENTIFICATEUR *id=mgcoface;
1376  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
1377  if (!p.second)
1378  {
1379  delete mgcoface;
1380  return NULL;
1381  }
1382 
1383  std::pair<const unsigned long,MG_COFACE*> tmp(mgcoface->get_id(),mgcoface);
1384  lst_mg_coface.insert(tmp);
1385  mgface->ajouter_mg_coface(mgcoface);
1386  return mgcoface;
1387 }
1388 
1389 
1390 MG_COFACE* MG_GEOMETRIE::ajouter_mg_coface(unsigned long num,MG_FACE *mgface,MG_COQUILLE *mgcoq,int sens)
1391 {
1392  MG_COFACE* mgcoface=new MG_COFACE(num,mgface,mgcoq,sens);
1393  MG_IDENTIFICATEUR *id=mgcoface;
1394  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
1395  if (!p.second)
1396  {
1397  delete mgcoface;
1398  return NULL;
1399  }
1400 
1401  std::pair<const unsigned long,MG_COFACE*> tmp(mgcoface->get_id(),mgcoface);
1402  lst_mg_coface.insert(tmp);
1403  mgface->ajouter_mg_coface(mgcoface);
1404  return mgcoface;
1405 }
1406 
1408 {
1409  if (mgcoface==NULL)
1410  {
1411  return FAIL;
1412  }
1413  MG_IDENTIFICATEUR* id=mgcoface;
1414  LISTE_ENTITE::iterator i=lst_entite.find(id);
1415  lst_entite.erase(i);
1416  LISTE_MG_COFACE::iterator j=lst_mg_coface.find(mgcoface->get_id());
1417  lst_mg_coface.erase(j);
1418  mgcoface->get_face()->supprimer_mg_coface(mgcoface);
1419  delete mgcoface;
1420  return OK;
1421 }
1422 
1424 {
1425  MG_COFACE* mgcoface=get_mg_cofaceid(num);
1426  if (mgcoface==NULL)
1427  {
1428  return FAIL;
1429  }
1430  MG_IDENTIFICATEUR* id=mgcoface;
1431  LISTE_ENTITE::iterator i=lst_entite.find(id);
1432  lst_entite.erase(i);
1433  LISTE_MG_COFACE::iterator j=lst_mg_coface.find(num);
1434  lst_mg_coface.erase(j);
1435  mgcoface->get_face()->supprimer_mg_coface(mgcoface);
1436  delete mgcoface;
1437  return OK;
1438 }
1439 
1440 
1442 {
1443  return lst_mg_coface.size();
1444 }
1445 
1446 MG_COFACE* MG_GEOMETRIE::get_premier_coface(LISTE_MG_COFACE::iterator& it)
1447 {
1448  it=lst_mg_coface.begin();
1449  if(it==lst_mg_coface.end()) return NULL;
1450  return it->second;
1451 }
1452 
1453 MG_COFACE* MG_GEOMETRIE::get_suivant_coface(LISTE_MG_COFACE::iterator& it)
1454 {
1455  it++;
1456  if(it==lst_mg_coface.end()) return NULL;
1457  return it->second;
1458 }
1459 
1461 {
1462  LISTE_MG_COFACE::iterator i=lst_mg_coface.find(num);
1463  if (i==lst_mg_coface.end())
1464  {
1465  return NULL;
1466  }
1467  return ((*i).second);
1468 }
1469 
1470 
1471 
1472 
1474 {
1475  gest->recherche_bonid(*mgcoq);
1476  MG_IDENTIFICATEUR *id=mgcoq;
1477  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
1478  if (!p.second)
1479  {
1480  return FAIL;
1481  }
1482  std::pair<const unsigned long,MG_COQUILLE*> tmp(mgcoq->get_id(),mgcoq);
1483  std::pair<LISTE_MG_COQUILLE::iterator,bool> p2 = lst_mg_coquille.insert(tmp);
1484  return OK;
1485 }
1486 
1488 {
1489  gest->recherche_bonid(*mgcoq);
1490  MG_IDENTIFICATEUR *id=mgcoq;
1491  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
1492  if (!p.second)
1493  {
1494  return FAIL;
1495  }
1496 
1497  std::pair<const unsigned long,MG_COQUILLE*> tmp(mgcoq->get_id(),mgcoq);
1498  std::pair<LISTE_MG_COQUILLE::iterator,bool> p2 = lst_mg_coquille.insert(tmp);
1499  if(p2.second) mgcoque->ajouter_mg_coquille(mgcoq);
1500  return OK;
1501 }
1502 
1503 
1505 {
1506  gest->recherche_bonid(*mgcoquille);
1507  MG_IDENTIFICATEUR *id=mgcoquille;
1508  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
1509  if (!p.second)
1510  {
1511  return FAIL;
1512  }
1513 
1514  std::pair<const unsigned long,MG_COQUILLE*> tmp(mgcoquille->get_id(),mgcoquille);
1515  std::pair<LISTE_MG_COQUILLE::iterator,bool> p2 = lst_mg_coquille.insert(tmp);
1516  if(p2.second) mgvolume->ajouter_mg_coquille(mgcoquille);
1517  return OK;
1518 }
1519 
1520 
1522 {
1523  LISTE_MG_COQUILLE::iterator i=lst_mg_coquille.find(num);
1524  if (i==lst_mg_coquille.end())
1525  {
1526  return NULL;
1527  }
1528  return ((*i).second);
1529 }
1530 
1531 
1532 
1534 {
1535  if (!(num<lst_mg_coquille.size()))
1536  {
1537  return NULL;
1538  }
1539  LISTE_MG_COQUILLE::iterator i=lst_mg_coquille.begin();
1540  for (unsigned long j=0;j<num;j++) i++;
1541  return ((*i).second);
1542 }
1543 
1544 MG_COQUILLE* MG_GEOMETRIE::get_premier_coquille(LISTE_MG_COQUILLE::iterator &it)
1545 {
1546  it = lst_mg_coquille.begin();
1547  if (it == lst_mg_coquille.end())
1548  return NULL;
1549  return it->second ;
1550 }
1551 
1552 MG_COQUILLE* MG_GEOMETRIE::get_suivant_coquille(LISTE_MG_COQUILLE::iterator &it)
1553 {
1554  it++;
1555  if (it==lst_mg_coquille.end())
1556  return NULL;
1557  return it->second;
1558 }
1559 
1560 
1562 {
1563  return lst_mg_coquille.size();
1564 }
1565 
1566 
1568 {
1569  MG_COQUILLE* mgcoquille=get_mg_coquilleid(num);
1570  if (mgcoquille==NULL)
1571  {
1572  return FAIL;
1573  }
1574  MG_IDENTIFICATEUR* id=mgcoquille;
1575  LISTE_ENTITE::iterator i=lst_entite.find(id);
1576  lst_entite.erase(i);
1577  LISTE_MG_COQUILLE::iterator j=lst_mg_coquille.find(num);
1578  lst_mg_coquille.erase(j);
1579  for (int k=0;k<mgcoquille->get_nb_mg_coface();k++)
1580  {
1581  MG_COFACE* coface=mgcoquille->get_mg_coface(k);
1582  supprimer_mg_coface(coface);
1583  }
1584 #ifdef ALL_OCC
1585  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_COQUILLE((OCC_COQUILLE*)mgcoquille);
1586 #endif
1587  delete mgcoquille;
1588  return OK;
1589 }
1590 
1591 
1593 {
1594  MG_COQUILLE* mgcoquille=get_mg_coquille(num);
1595  if (mgcoquille==NULL)
1596  {
1597  return FAIL;
1598  }
1599  MG_IDENTIFICATEUR* id=mgcoquille;
1600  LISTE_ENTITE::iterator i=lst_entite.find(id);
1601  lst_entite.erase(i);
1602  LISTE_MG_COQUILLE::iterator j=lst_mg_coquille.begin();
1603  for (unsigned int k=0;k<num;k++) j++;
1604  lst_mg_coquille.erase(j);
1605  for (int k=0;k<mgcoquille->get_nb_mg_coface();k++)
1606  {
1607  MG_COFACE* coface=mgcoquille->get_mg_coface(k);
1608  supprimer_mg_coface(coface);
1609  }
1610 #ifdef ALL_OCC
1611  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_COQUILLE((OCC_COQUILLE*)mgcoquille);
1612 #endif
1613  delete mgcoquille;
1614  return OK;
1615 }
1616 
1617 
1619 {
1620  while (get_nb_mg_coquille()!=0)
1621  {
1622  LISTE_MG_COQUILLE::iterator j=lst_mg_coquille.begin();
1623  MG_COQUILLE* mgcoquille=(*j).second;
1624  MG_IDENTIFICATEUR* id=mgcoquille;
1625  LISTE_ENTITE::iterator i=lst_entite.find(id);
1626  lst_entite.erase(i);
1627  lst_mg_coquille.erase(j);
1628  for (int k=0;k<mgcoquille->get_nb_mg_coface();k++)
1629  {
1630  MG_COFACE* coface=mgcoquille->get_mg_coface(k);
1631  supprimer_mg_coface(coface);
1632  }
1633 #ifdef ALL_OCC
1634  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_COQUILLE((OCC_COQUILLE*)mgcoquille);
1635 #endif
1636  delete mgcoquille;
1637  }
1638 }
1639 
1640 
1641 
1643 {
1644  gest->recherche_bonid(*mgvolume);
1645  MG_IDENTIFICATEUR *id=mgvolume;
1646  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
1647  if (!p.second)
1648  {
1649  return FAIL;
1650  }
1651 
1652  std::pair<const unsigned long,MG_VOLUME*> tmp(mgvolume->get_id(),mgvolume);
1653  lst_mg_volume.insert(tmp);
1654  return OK;
1655 }
1656 
1657 
1659 {
1660  LISTE_MG_VOLUME::iterator i=lst_mg_volume.find(num);
1661  if (i==lst_mg_volume.end())
1662  {
1663  return NULL;
1664  }
1665  return ((*i).second);
1666 }
1667 
1669 {
1670  LISTE_MG_VOLUME::iterator i=lst_mg_volume.begin();
1671  int nb=lst_mg_volume.size();
1672  for (int j=0;j<nb;j++)
1673  {
1674  MG_VOLUME* volume=(*i).second;
1675  std::string idori=volume->get_idoriginal();
1676  if (idori==id) return volume;
1677  i++;
1678  }
1679  return NULL;
1680 }
1681 
1682 
1684 {
1685  if (!(num<lst_mg_volume.size()))
1686  {
1687  return NULL;
1688  }
1689  LISTE_MG_VOLUME::iterator i=lst_mg_volume.begin();
1690  for (unsigned long j=0;j<num;j++) i++;
1691  return ((*i).second);
1692 }
1693 
1694 MG_VOLUME* MG_GEOMETRIE::get_premier_volume(LISTE_MG_VOLUME::iterator &it)
1695 {
1696  it = lst_mg_volume.begin();
1697  if (it == lst_mg_volume.end())
1698  return NULL;
1699  return it->second ;
1700 }
1701 
1702 MG_VOLUME* MG_GEOMETRIE::get_suivant_volume(LISTE_MG_VOLUME::iterator &it)
1703 {
1704  it++;
1705  if (it==lst_mg_volume.end())
1706  return NULL;
1707  return it->second;
1708 }
1709 
1710 
1711 
1713 {
1714  return lst_mg_volume.size();
1715 }
1716 
1717 
1719 {
1720  MG_VOLUME* mgvolume=get_mg_volumeid(num);
1721  if (mgvolume==NULL)
1722  {
1723  return FAIL;
1724  }
1725  MG_IDENTIFICATEUR* id=mgvolume;
1726  LISTE_ENTITE::iterator i=lst_entite.find(id);
1727  lst_entite.erase(i);
1728  LISTE_MG_VOLUME::iterator j=lst_mg_volume.find(num);
1729  lst_mg_volume.erase(j);
1730 #ifdef ALL_OCC
1731  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_VOLUME((OCC_VOLUME*)mgvolume);
1732 #endif
1733  delete mgvolume;
1734  return OK;
1735 }
1736 
1737 
1739 {
1740  MG_VOLUME* mgvolume=get_mg_volume(num);
1741  if (mgvolume==NULL)
1742  {
1743  return FAIL;
1744  }
1745  MG_IDENTIFICATEUR* id=mgvolume;
1746  LISTE_ENTITE::iterator i=lst_entite.find(id);
1747  lst_entite.erase(i);
1748  LISTE_MG_VOLUME::iterator j=lst_mg_volume.begin();
1749  for (unsigned int k=0;k<num;k++) j++;
1750  lst_mg_volume.erase(j);
1751 #ifdef ALL_OCC
1752  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_VOLUME((OCC_VOLUME*)mgvolume);
1753 #endif
1754  delete mgvolume;
1755  return OK;
1756 }
1757 
1758 
1760 {
1761  while (get_nb_mg_volume()!=0)
1762  {
1763  LISTE_MG_VOLUME::iterator j=lst_mg_volume.begin();
1764  MG_VOLUME* mgvolume=(*j).second;
1765  MG_IDENTIFICATEUR* id=mgvolume;
1766  LISTE_ENTITE::iterator i=lst_entite.find(id);
1767  lst_entite.erase(i);
1768  lst_mg_volume.erase(j);
1769 #ifdef ALL_OCC
1770  if(strcmp(type_geo,"OCCV2017")==0) ((OCC_FONCTION_V2017*)fonction1)->supprimer_OCC_VOLUME((OCC_VOLUME*)mgvolume);
1771 #endif
1772  delete mgvolume;
1773  }
1774 }
1775 
1776 
1778 {
1779  gest->recherche_bonid(*mgcoque);
1780  MG_IDENTIFICATEUR *id=mgcoque;
1781  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
1782  if (!p.second)
1783  {
1784  return FAIL;
1785  }
1786 
1787  std::pair<const unsigned long,MG_COQUE*> tmp(mgcoque->get_id(),mgcoque);
1788  lst_mg_coque.insert(tmp);
1789  return OK;
1790 }
1791 
1792 
1794 {
1795  LISTE_MG_COQUE::iterator i=lst_mg_coque.find(num);
1796  if (i==lst_mg_coque.end())
1797  {
1798  return NULL;
1799  }
1800  return ((*i).second);
1801 }
1802 
1804 {
1805  LISTE_MG_COQUE::iterator i=lst_mg_coque.begin();
1806  int nb=lst_mg_coque.size();
1807  for (int j=0;j<nb;j++)
1808  {
1809  MG_COQUE* coque=(*i).second;
1810  std::string idori=coque->get_idoriginal();
1811  if (idori==id) return coque;
1812  i++;
1813  }
1814  return NULL;
1815 }
1816 
1817 
1819 {
1820  if (!(num<lst_mg_coque.size()))
1821  {
1822  return NULL;
1823  }
1824  LISTE_MG_COQUE::iterator i=lst_mg_coque.begin();
1825  for (unsigned long j=0;j<num;j++) i++;
1826  return ((*i).second);
1827 }
1828 
1829 
1830 MG_COQUE* MG_GEOMETRIE::get_premier_coque(LISTE_MG_COQUE::iterator &it)
1831 {
1832  it = lst_mg_coque.begin();
1833  if (it == lst_mg_coque.end())
1834  return NULL;
1835  return it->second ;
1836 }
1837 
1838 MG_COQUE* MG_GEOMETRIE::get_suivant_coque(LISTE_MG_COQUE::iterator &it)
1839 {
1840  it++;
1841  if (it==lst_mg_coque.end())
1842  return NULL;
1843  return it->second;
1844 }
1845 
1846 
1848 {
1849  return lst_mg_coque.size();
1850 }
1851 
1852 
1854 {
1855  MG_COQUE* mgcoque=get_mg_coqueid(num);
1856  if (mgcoque==NULL)
1857  {
1858  return FAIL;
1859  }
1860  MG_IDENTIFICATEUR* id=mgcoque;
1861  LISTE_ENTITE::iterator i=lst_entite.find(id);
1862  lst_entite.erase(i);
1863  LISTE_MG_COQUE::iterator j=lst_mg_coque.find(num);
1864  lst_mg_coque.erase(j);
1865  delete mgcoque;
1866  return OK;
1867 }
1868 
1869 
1871 {
1872  MG_COQUE* mgcoque=get_mg_coque(num);
1873  if (mgcoque==NULL)
1874  {
1875  return FAIL;
1876  }
1877  MG_IDENTIFICATEUR* id=mgcoque;
1878  LISTE_ENTITE::iterator i=lst_entite.find(id);
1879  lst_entite.erase(i);
1880  LISTE_MG_COQUE::iterator j=lst_mg_coque.begin();
1881  for (unsigned int k=0;k<num;k++) j++;
1882  lst_mg_coque.erase(j);
1883  delete mgcoque;
1884  return OK;
1885 }
1886 
1887 
1889 {
1890  while (get_nb_mg_coque()!=0)
1891  {
1892  LISTE_MG_COQUE::iterator j=lst_mg_coque.begin();
1893  MG_COQUE* mgcoque=(*j).second;
1894  MG_IDENTIFICATEUR* id=mgcoque;
1895  LISTE_ENTITE::iterator i=lst_entite.find(id);
1896  lst_entite.erase(i);
1897  lst_mg_coque.erase(j);
1898  delete mgcoque;
1899  }
1900 }
1901 
1902 
1903 
1905 {
1906  gest->recherche_bonid(*mgpoutre);
1907  MG_IDENTIFICATEUR *id=mgpoutre;
1908  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
1909  if (!p.second)
1910  {
1911  return FAIL;
1912  }
1913 
1914  std::pair<const unsigned long,MG_POUTRE*> tmp(mgpoutre->get_id(),mgpoutre);
1915  lst_mg_poutre.insert(tmp);
1916  return OK;
1917 }
1918 
1919 
1921 {
1922  LISTE_MG_POUTRE::iterator i=lst_mg_poutre.find(num);
1923  if (i==lst_mg_poutre.end())
1924  {
1925  return NULL;
1926  }
1927  return ((*i).second);
1928 }
1929 
1931 {
1932  LISTE_MG_POUTRE::iterator i=lst_mg_poutre.begin();
1933  int nb=lst_mg_poutre.size();
1934  for (int j=0;j<nb;j++)
1935  {
1936  MG_POUTRE* poutre=(*i).second;
1937  std::string idori=poutre->get_idoriginal();
1938  if (idori==id) return poutre;
1939  i++;
1940  }
1941  return NULL;
1942 }
1943 
1944 
1946 {
1947  if (!(num<lst_mg_poutre.size()))
1948  {
1949  return NULL;
1950  }
1951  LISTE_MG_POUTRE::iterator i=lst_mg_poutre.begin();
1952  for (unsigned long j=0;j<num;j++) i++;
1953  return ((*i).second);
1954 }
1955 
1956 
1957 MG_POUTRE* MG_GEOMETRIE::get_premier_poutre(LISTE_MG_POUTRE::iterator &it)
1958 {
1959  it = lst_mg_poutre.begin();
1960  if (it == lst_mg_poutre.end())
1961  return NULL;
1962  return it->second ;
1963 }
1964 
1965 MG_POUTRE* MG_GEOMETRIE::get_suivant_poutre(LISTE_MG_POUTRE::iterator &it)
1966 {
1967  it++;
1968  if (it==lst_mg_poutre.end())
1969  return NULL;
1970  return it->second;
1971 }
1972 
1973 
1975 {
1976  return lst_mg_poutre.size();
1977 }
1978 
1979 
1981 {
1982  MG_POUTRE* mgpoutre=get_mg_poutreid(num);
1983  if (mgpoutre==NULL)
1984  {
1985  return FAIL;
1986  }
1987  MG_IDENTIFICATEUR* id=mgpoutre;
1988  LISTE_ENTITE::iterator i=lst_entite.find(id);
1989  lst_entite.erase(i);
1990  LISTE_MG_POUTRE::iterator j=lst_mg_poutre.find(num);
1991  lst_mg_poutre.erase(j);
1992  delete mgpoutre;
1993  return OK;
1994 }
1995 
1996 
1998 {
1999  MG_POUTRE* mgpoutre=get_mg_poutre(num);
2000  if (mgpoutre==NULL)
2001  {
2002  return FAIL;
2003  }
2004  MG_IDENTIFICATEUR* id=mgpoutre;
2005  LISTE_ENTITE::iterator i=lst_entite.find(id);
2006  lst_entite.erase(i);
2007  LISTE_MG_POUTRE::iterator j=lst_mg_poutre.begin();
2008  for (unsigned int k=0;k<num;k++) j++;
2009  lst_mg_poutre.erase(j);
2010  delete mgpoutre;
2011  return OK;
2012 }
2013 
2014 
2016 {
2017  while (get_nb_mg_poutre()!=0)
2018  {
2019  LISTE_MG_POUTRE::iterator j=lst_mg_poutre.begin();
2020  MG_POUTRE* mgpoutre=(*j).second;
2021  MG_IDENTIFICATEUR* id=mgpoutre;
2022  LISTE_ENTITE::iterator i=lst_entite.find(id);
2023  lst_entite.erase(i);
2024  lst_mg_poutre.erase(j);
2025  delete mgpoutre;
2026  }
2027 }
2028 
2030 {
2031  gest->recherche_bonid(*mggroupe_topologique);
2032  MG_IDENTIFICATEUR *id=mggroupe_topologique;
2033  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
2034  if (!p.second)
2035  {
2036  return FAIL;
2037  }
2038 
2039  std::pair<const unsigned long,MG_GROUPE_TOPOLOGIQUE*> tmp(mggroupe_topologique->get_id(),mggroupe_topologique);
2040  lst_mg_groupe_topologique.insert(tmp);
2041  return OK;
2042 }
2043 
2044 
2046 {
2047  LISTE_MG_GROUPE_TOPOLOGIQUE::iterator i=lst_mg_groupe_topologique.find(num);
2048  if (i==lst_mg_groupe_topologique.end())
2049  {
2050  return NULL;
2051  }
2052  return ((*i).second);
2053 }
2054 
2055 
2056 
2058 {
2059  if (!(num<lst_mg_groupe_topologique.size()))
2060  {
2061  return NULL;
2062  }
2063  LISTE_MG_GROUPE_TOPOLOGIQUE::iterator i=lst_mg_groupe_topologique.begin();
2064  for (unsigned long j=0;j<num;j++) i++;
2065  return ((*i).second);
2066 }
2067 
2068 
2069 MG_GROUPE_TOPOLOGIQUE* MG_GEOMETRIE::get_premier_groupe_topologique(LISTE_MG_GROUPE_TOPOLOGIQUE::iterator &it)
2070 {
2071  it = lst_mg_groupe_topologique.begin();
2072  if (it == lst_mg_groupe_topologique.end())
2073  return NULL;
2074  return it->second ;
2075 }
2076 
2077 MG_GROUPE_TOPOLOGIQUE* MG_GEOMETRIE::get_suivant_groupe_topologique(LISTE_MG_GROUPE_TOPOLOGIQUE::iterator &it)
2078 {
2079  it++;
2080  if (it==lst_mg_groupe_topologique.end())
2081  return NULL;
2082  return it->second;
2083 }
2084 
2085 
2087 {
2088  return lst_mg_groupe_topologique.size();
2089 }
2090 
2091 
2093 {
2094  MG_GROUPE_TOPOLOGIQUE* mggroupe_topologique=get_mg_groupe_topologiqueid(num);
2095  if (mggroupe_topologique==NULL)
2096  {
2097  return FAIL;
2098  }
2099  MG_IDENTIFICATEUR* id=mggroupe_topologique;
2100  LISTE_ENTITE::iterator i=lst_entite.find(id);
2101  lst_entite.erase(i);
2102  LISTE_MG_GROUPE_TOPOLOGIQUE::iterator j=lst_mg_groupe_topologique.find(num);
2103  lst_mg_groupe_topologique.erase(j);
2104  delete mggroupe_topologique;
2105  return OK;
2106 }
2107 
2108 
2110 {
2111  MG_GROUPE_TOPOLOGIQUE* mggroupe_topologique=get_mg_groupe_topologique(num);
2112  if (mggroupe_topologique==NULL)
2113  {
2114  return FAIL;
2115  }
2116  MG_IDENTIFICATEUR* id=mggroupe_topologique;
2117  LISTE_ENTITE::iterator i=lst_entite.find(id);
2118  lst_entite.erase(i);
2119  LISTE_MG_GROUPE_TOPOLOGIQUE::iterator j=lst_mg_groupe_topologique.begin();
2120  for (unsigned int k=0;k<num;k++) j++;
2121  lst_mg_groupe_topologique.erase(j);
2122  delete mggroupe_topologique;
2123  return OK;
2124 }
2125 
2126 
2128 {
2129  while (get_nb_mg_groupe_topologique()!=0)
2130  {
2131  LISTE_MG_GROUPE_TOPOLOGIQUE::iterator j=lst_mg_groupe_topologique.begin();
2132  MG_GROUPE_TOPOLOGIQUE* mggroupe_topologique=(*j).second;
2133  MG_IDENTIFICATEUR* id=mggroupe_topologique;
2134  LISTE_ENTITE::iterator i=lst_entite.find(id);
2135  lst_entite.erase(i);
2136  lst_mg_groupe_topologique.erase(j);
2137  delete mggroupe_topologique;
2138  }
2139 }
2140 
2142 {
2143  gest->recherche_bonid(*mggeomfon);
2144  MG_IDENTIFICATEUR *id=mggeomfon;
2145  std::pair<LISTE_ENTITE::iterator,bool> p=lst_entite.insert(id);
2146  if (!p.second)
2147  {
2148  return FAIL;
2149  }
2150 
2151  std::pair<const unsigned long,MG_GEOM_FONCTION*> tmp(mggeomfon->get_id(),mggeomfon);
2152  lst_mg_geom_fonction.insert(tmp);
2153  return OK;
2154 }
2155 
2156 
2158 {
2159  LISTE_MG_GEOM_FONCTION::iterator i=lst_mg_geom_fonction.find(num);
2160  if (i==lst_mg_geom_fonction.end())
2161  {
2162  return NULL;
2163  }
2164  return ((*i).second);
2165 }
2166 
2167 
2168 
2170 {
2171  if (!(num<lst_mg_geom_fonction.size()))
2172  {
2173  return NULL;
2174  }
2175  LISTE_MG_GEOM_FONCTION::iterator i=lst_mg_geom_fonction.begin();
2176  for (unsigned long j=0;j<num;j++) i++;
2177  return ((*i).second);
2178 }
2179 
2180 
2181 MG_GEOM_FONCTION* MG_GEOMETRIE::get_premier_geom_fonction(LISTE_MG_GEOM_FONCTION::iterator &it)
2182 {
2183  it = lst_mg_geom_fonction.begin();
2184  if (it == lst_mg_geom_fonction.end())
2185  return NULL;
2186  return it->second ;
2187 }
2188 
2189 MG_GEOM_FONCTION* MG_GEOMETRIE::get_suivant_geom_fonction(LISTE_MG_GEOM_FONCTION::iterator &it)
2190 {
2191  it++;
2192  if (it==lst_mg_geom_fonction.end())
2193  return NULL;
2194  return it->second;
2195 }
2196 
2197 
2199 {
2200  return lst_mg_geom_fonction.size();
2201 }
2202 
2203 
2205 {
2206  MG_GEOM_FONCTION* mggeomfon=get_mg_geom_fonctionid(num);
2207  if (mggeomfon==NULL)
2208  {
2209  return FAIL;
2210  }
2211  MG_IDENTIFICATEUR* id=mggeomfon;
2212  LISTE_ENTITE::iterator i=lst_entite.find(id);
2213  lst_entite.erase(i);
2214  LISTE_MG_GEOM_FONCTION::iterator j=lst_mg_geom_fonction.find(num);
2215  lst_mg_geom_fonction.erase(j);
2216  delete mggeomfon;
2217  return OK;
2218 }
2219 
2220 
2222 {
2223  MG_GEOM_FONCTION* mggeomfon=get_mg_geom_fonction(num);
2224  if (mggeomfon==NULL)
2225  {
2226  return FAIL;
2227  }
2228  MG_IDENTIFICATEUR* id=mggeomfon;
2229  LISTE_ENTITE::iterator i=lst_entite.find(id);
2230  lst_entite.erase(i);
2231  LISTE_MG_GEOM_FONCTION::iterator j=lst_mg_geom_fonction.begin();
2232  for (unsigned int k=0;k<num;k++) j++;
2233  lst_mg_geom_fonction.erase(j);
2234  delete mggeomfon;
2235  return OK;
2236 }
2237 
2238 
2240 {
2241  while (get_nb_mg_geom_fonction()!=0)
2242  {
2243  LISTE_MG_GEOM_FONCTION::iterator j=lst_mg_geom_fonction.begin();
2244  MG_GEOM_FONCTION* mggeomfon=(*j).second;
2245  MG_IDENTIFICATEUR* id=mggeomfon;
2246  LISTE_ENTITE::iterator i=lst_entite.find(id);
2247  lst_entite.erase(i);
2248  lst_mg_geom_fonction.erase(j);
2249  delete mggeomfon;
2250  }
2251 }
2252 
2253 
2254 
2255 
2257 {
2258  gest->recherche_bonidvisuel(*mgvcrb);
2259  std::pair<const unsigned long,MG_VISU_COURBE*> tmp(mgvcrb->get_id(),mgvcrb);
2260  lst_mg_visu_courbe.insert(tmp);
2261  return OK;
2262 }
2263 
2264 
2266 {
2267  LISTE_MG_VISU_COURBE::iterator i=lst_mg_visu_courbe.find(num);
2268  if (i==lst_mg_visu_courbe.end())
2269  {
2270  return NULL;
2271  }
2272  return ((*i).second);
2273 }
2274 
2275 
2276 
2278 {
2279  if (!(num<lst_mg_visu_courbe.size()))
2280  {
2281  return NULL;
2282  }
2283  LISTE_MG_VISU_COURBE::iterator i=lst_mg_visu_courbe.begin();
2284 
2285  for (unsigned long j=0;j<num;j++) i++;
2286  return ((*i).second);
2287 }
2288 
2289 
2290 
2292 {
2293  return lst_mg_visu_courbe.size();
2294 }
2295 
2296 MG_VISU_COURBE* MG_GEOMETRIE::get_premier_visu_courbe(LISTE_MG_VISU_COURBE::iterator& it)
2297 {
2298  it = lst_mg_visu_courbe.begin();
2299  if (it == lst_mg_visu_courbe.end())
2300  return NULL;
2301  return it->second ;
2302 }
2303 
2304 MG_VISU_COURBE* MG_GEOMETRIE::get_suivant_visu_courbe(LISTE_MG_VISU_COURBE::iterator& it)
2305 {
2306  it++;
2307  if (it == lst_mg_visu_courbe.end())
2308  return NULL;
2309  return it->second ;
2310 }
2311 
2312 
2313 
2315 {
2316  MG_VISU_COURBE* mgvcrb=get_mg_visu_courbeid(num);
2317  if (mgvcrb==NULL)
2318  {
2319  return FAIL;
2320  }
2321  LISTE_MG_VISU_COURBE::iterator j=lst_mg_visu_courbe.find(num);
2322  lst_mg_visu_courbe.erase(j);
2323  delete mgvcrb;
2324  return OK;
2325 }
2326 
2327 
2329 {
2330  MG_VISU_COURBE* mgvcrb=get_mg_visu_courbe(num);
2331  if (mgvcrb==NULL)
2332  {
2333  return FAIL;
2334  }
2335  LISTE_MG_VISU_COURBE::iterator j=lst_mg_visu_courbe.begin();
2336  for (unsigned int k=0;k<num;k++) j++;
2337  lst_mg_visu_courbe.erase(j);
2338  delete mgvcrb;
2339  return OK;
2340 }
2341 
2343 {
2344  while (get_nb_mg_visu_courbe()!=0)
2345  {
2346  LISTE_MG_VISU_COURBE::iterator j=lst_mg_visu_courbe.begin();
2347  MG_VISU_COURBE* mgvcrb=(*j).second;
2348  lst_mg_visu_courbe.erase(j);
2349  delete mgvcrb;
2350  }
2351 }
2352 
2354 {
2355  switch(mg_element_topologique->get_type())
2356  {
2357  case MG_ELEMENT_TOPOLOGIQUE::TYPE_ELEMENT_TOPOLOGIQUE::SOMMET:
2358  ajouter_mg_sommet((MG_SOMMET*)mg_element_topologique); break;
2359  case MG_ELEMENT_TOPOLOGIQUE::TYPE_ELEMENT_TOPOLOGIQUE::ARETE:
2360  ajouter_mg_arete((MG_ARETE*)mg_element_topologique); break;
2361  case MG_ELEMENT_TOPOLOGIQUE::TYPE_ELEMENT_TOPOLOGIQUE::FACE:
2362  ajouter_mg_face((MG_FACE*)mg_element_topologique); break;
2363  case MG_ELEMENT_TOPOLOGIQUE::TYPE_ELEMENT_TOPOLOGIQUE::COQUE:
2364  ajouter_mg_coque((MG_COQUE*)mg_element_topologique); break;
2365  case MG_ELEMENT_TOPOLOGIQUE::TYPE_ELEMENT_TOPOLOGIQUE::POUTRE:
2366  ajouter_mg_poutre((MG_POUTRE*)mg_element_topologique); break;
2367  case MG_ELEMENT_TOPOLOGIQUE::TYPE_ELEMENT_TOPOLOGIQUE::VOLUME:
2368  ajouter_mg_volume((MG_VOLUME*)mg_element_topologique); break;
2369  }
2370 return 0;
2371 
2372 }
2373 
2375 {
2376  switch(mg_element_cotopologique->get_type())
2377  {
2378  case MG_ELEMENT_COTOPOLOGIQUE::TYPE_ELEMENT_COTOPOLOGIQUE::COSOMMET:
2379  ajouter_mg_cosommet((MG_COSOMMET*)mg_element_cotopologique); break;
2380  case MG_ELEMENT_COTOPOLOGIQUE::TYPE_ELEMENT_COTOPOLOGIQUE::COARETE:
2381  ajouter_mg_coarete((MG_COARETE*)mg_element_cotopologique); break;
2382  case MG_ELEMENT_COTOPOLOGIQUE::TYPE_ELEMENT_COTOPOLOGIQUE::BOUCLE:
2383  ajouter_mg_boucle((MG_BOUCLE*)mg_element_cotopologique); break;
2384  case MG_ELEMENT_COTOPOLOGIQUE::TYPE_ELEMENT_COTOPOLOGIQUE::COFACE:
2385  ajouter_mg_coface((MG_COFACE*)mg_element_cotopologique); break;
2386  case MG_ELEMENT_COTOPOLOGIQUE::TYPE_ELEMENT_COTOPOLOGIQUE::COQUILLE:
2387  ajouter_mg_coquille((MG_COQUILLE*)mg_element_cotopologique); break;
2388  }
2389 return 0;
2390 
2391 }
2392 
2394 {
2395  switch(mg_element_geometrique->get_type())
2396  {
2397  case MG_ELEMENT_GEOMETRIQUE::TYPE_ELEMENT_GEOMETRIQUE::POINT:
2398  ajouter_mg_point((MG_POINT*)mg_element_geometrique); break;
2399  case MG_ELEMENT_GEOMETRIQUE::TYPE_ELEMENT_GEOMETRIQUE::COURBE:
2400  ajouter_mg_courbe((MG_COURBE*)mg_element_geometrique); break;
2401  case MG_ELEMENT_GEOMETRIQUE::TYPE_ELEMENT_GEOMETRIQUE::SURFACE:
2402  ajouter_mg_surface((MG_SURFACE*)mg_element_geometrique); break;
2403  }
2404  return 0;
2405 }
2406 
2408 {
2409  switch(mg_element_topologique->get_type())
2410  {
2411  case MG_ELEMENT_TOPOLOGIQUE::TYPE_ELEMENT_TOPOLOGIQUE::SOMMET:
2412  supprimer_mg_sommetid(mg_element_topologique->get_id()); break;
2413  case MG_ELEMENT_TOPOLOGIQUE::TYPE_ELEMENT_TOPOLOGIQUE::ARETE:
2414  supprimer_mg_areteid(mg_element_topologique->get_id()); break;
2415  case MG_ELEMENT_TOPOLOGIQUE::TYPE_ELEMENT_TOPOLOGIQUE::FACE:
2416  supprimer_mg_faceid(mg_element_topologique->get_id()); break;
2417  case MG_ELEMENT_TOPOLOGIQUE::TYPE_ELEMENT_TOPOLOGIQUE::COQUE:
2418  supprimer_mg_coqueid(mg_element_topologique->get_id()); break;
2419  case MG_ELEMENT_TOPOLOGIQUE::TYPE_ELEMENT_TOPOLOGIQUE::POUTRE:
2420  supprimer_mg_poutreid(mg_element_topologique->get_id()); break;
2421  case MG_ELEMENT_TOPOLOGIQUE::TYPE_ELEMENT_TOPOLOGIQUE::VOLUME:
2422  supprimer_mg_volumeid(mg_element_topologique->get_id()); break;
2423  }
2424 return 0;
2425 }
2426 
2428 {
2429  switch(mg_element_cotopologique->get_type())
2430  {
2431  case MG_ELEMENT_COTOPOLOGIQUE::TYPE_ELEMENT_COTOPOLOGIQUE::COSOMMET:
2432  supprimer_mg_cosommetid(mg_element_cotopologique->get_id()); break;
2433  case MG_ELEMENT_COTOPOLOGIQUE::TYPE_ELEMENT_COTOPOLOGIQUE::COARETE:
2434  supprimer_mg_coareteid(mg_element_cotopologique->get_id()); break;
2435  case MG_ELEMENT_COTOPOLOGIQUE::TYPE_ELEMENT_COTOPOLOGIQUE::BOUCLE:
2436  supprimer_mg_boucleid(mg_element_cotopologique->get_id()); break;
2437  case MG_ELEMENT_COTOPOLOGIQUE::TYPE_ELEMENT_COTOPOLOGIQUE::COFACE:
2438  supprimer_mg_cofaceid(mg_element_cotopologique->get_id()); break;
2439  case MG_ELEMENT_COTOPOLOGIQUE::TYPE_ELEMENT_COTOPOLOGIQUE::COQUILLE:
2440  supprimer_mg_coquilleid(mg_element_cotopologique->get_id()); break;
2441  }
2442 return 0;
2443 
2444 }
2445 
2447 {
2448  switch(mg_element_geometrique->get_type())
2449  {
2450  case MG_ELEMENT_GEOMETRIQUE::TYPE_ELEMENT_GEOMETRIQUE::POINT:
2451  supprimer_mg_pointid(mg_element_geometrique->get_id()); break;
2452  case MG_ELEMENT_GEOMETRIQUE::TYPE_ELEMENT_GEOMETRIQUE::COURBE:
2453  supprimer_mg_courbeid(mg_element_geometrique->get_id()); break;
2454  case MG_ELEMENT_GEOMETRIQUE::TYPE_ELEMENT_GEOMETRIQUE::SURFACE:
2455  supprimer_mg_surfaceid(mg_element_geometrique->get_id()); break;
2456  }
2457 return 0;
2458 }
2459 
2460 
2462 {
2464  if(get_mg_sommetid(num)!=NULL)
2465  {
2466  ele = get_mg_sommetid(num);
2467  return ele;
2468  }
2469  else if(get_mg_areteid(num)!=NULL)
2470  {
2471  ele = get_mg_areteid(num);
2472  return ele;
2473  }
2474  else if(get_mg_faceid(num)!=NULL)
2475  {
2476  ele = get_mg_faceid(num);
2477  return ele;
2478  }
2479  else if(get_mg_volumeid(num)!=NULL)
2480  {
2481  ele = get_mg_volumeid(num);
2482  return ele;
2483  }
2484  else if(get_mg_poutreid(num)!=NULL)
2485  {
2486  ele = get_mg_poutreid(num);
2487  return ele;
2488  }
2489  else if(get_mg_coqueid(num)!=NULL)
2490  {
2491  ele = get_mg_coqueid(num);
2492  return ele;
2493  }
2494  else return NULL;
2495 }
2496 
2498 {
2500  if(get_mg_cosommetid(num)!=NULL)
2501  {
2502  ele = get_mg_cosommetid(num);
2503  return ele;
2504  }
2505  else if(get_mg_coareteid(num)!=NULL)
2506  {
2507  ele = get_mg_coareteid(num);
2508  return ele;
2509  }
2510  else if(get_mg_boucleid(num)!=NULL)
2511  {
2512  ele = get_mg_boucleid(num);
2513  return ele;
2514  }
2515  else if(get_mg_cofaceid(num)!=NULL)
2516  {
2517  ele = get_mg_cofaceid(num);
2518  return ele;
2519  }
2520  else if(get_mg_coquilleid(num)!=NULL)
2521  {
2522  ele = get_mg_coquilleid(num);
2523  return ele;
2524  }
2525  else return NULL;
2526 }
2527 
2528 
2530 {
2531  LISTE_MG_SOMMET::iterator it_sommet;
2532  for(MG_SOMMET* sommet=get_premier_sommet(it_sommet);sommet!=NULL;sommet=get_suivant_sommet(it_sommet)) mg_groupe_topologique->ajouter(sommet);
2533  LISTE_MG_ARETE::iterator it_arete;
2534  for(MG_ARETE* arete=get_premier_arete(it_arete);arete!=NULL;arete=get_suivant_arete(it_arete)) mg_groupe_topologique->ajouter(arete);
2535  LISTE_MG_FACE::iterator it_face;
2536  for(MG_FACE* face=get_premier_face(it_face);face!=NULL;face=get_suivant_face(it_face)) mg_groupe_topologique->ajouter(face);
2537  LISTE_MG_VOLUME::iterator it_volume;
2538  for(MG_VOLUME* volume=get_premier_volume(it_volume);volume!=NULL;volume=get_suivant_volume(it_volume)) mg_groupe_topologique->ajouter(volume);
2539  LISTE_MG_COQUE::iterator it_coque;
2540  for(MG_COQUE* coque=get_premier_coque(it_coque);coque!=NULL;coque=get_suivant_coque(it_coque)) mg_groupe_topologique->ajouter(coque);
2541  LISTE_MG_POUTRE::iterator it_poutre;
2542  for(MG_POUTRE* poutre=get_premier_poutre(it_poutre);poutre!=NULL;poutre=get_suivant_poutre(it_poutre)) mg_groupe_topologique->ajouter(poutre);
2543 }
2544 
2545 
2546 
2547 void MG_GEOMETRIE::enregistrer(std::ostream& o,double version)
2548 {
2549 #ifdef ALL_OCC
2550  if(strcmp(type_geo,"OCCV2017")==0)
2551  {
2552  OCC_FONCTION_V2017* occ_fonction_v2017 = (OCC_FONCTION_V2017*)fonction1;
2553  occ_fonction_v2017->enregistrer_fichier_OCAF(nom_du_fichier,this);
2554  }
2555 #endif
2557  {
2558  if (nom_du_fichier==NULL) o << "%" << get_id() << "=GEOMETRIE(" << valeur_unite << "," << type_geo ;
2559  else o << "%" << get_id() << "=GEOMETRIE(" << valeur_unite << "," << type_geo << "," << nom_du_fichier;
2560  }
2561  else o << "%" << get_id() << "=CONSTRUCTION(" << valeur_unite << "," << type_geo << "," << nom_du_fichier;
2562  if (gest_materiau!="") o << "," << gest_materiau.c_str() ;
2563  o << ");" << std::endl;
2564  o << "%" << get_id() << "=GEOMETRIE_EPS(" << precision << ");" << std::endl;
2565  LISTE_ENTITE::const_iterator i;
2566  for (i=lst_entite.begin();i!=lst_entite.end();i++)
2567  (*i)->enregistrer(o,version);
2568 }
2569 
2570 void MG_GEOMETRIE::get_fichier_dependant(std::vector<std::string> &liste_fichier)
2571 {
2572  liste_fichier.push_back(nom_du_fichier);
2573  LISTE_ENTITE::const_iterator i;
2574  for (i=lst_entite.begin();i!=lst_entite.end();i++)
2575  (*i)->get_fichier_dependant(liste_fichier);
2576 }
2577 
2579 {
2580  return nom_du_fichier;
2581 }
2582 
2584 {
2585  return type_geo;
2586 }
2587 
2589 {
2590 bool res=false;
2591 std::string type=get_type_geometrie();
2592 OT_CHAINE ot;
2593 type=ot.upcase(type);
2594 if (type=="VIRTUEL") res=true;
2595 return res;
2596 }
2597 
2599 {
2601  int nbarete=get_nb_mg_arete();
2602  for (int i=0;i<nbarete;i++)
2603  {
2604  MG_ARETE* mgarete=get_mg_arete(i);
2605  double xyz1[3];
2606  double tmin=mgarete->get_tmin();
2607  double tmax=mgarete->get_tmax();
2608  mgarete->evaluer(tmin,xyz1);
2609  int nb_pas=(int)(20.*facteur);
2610  for (int j=1;j<nb_pas+1;j++)
2611  {
2612  double t=tmin+j*(tmax-tmin)/nb_pas;
2613  double xyz2[3];
2614  mgarete->evaluer(t,xyz2);
2615  MG_VISU_COURBE* mgvisucourbe=new MG_VISU_COURBE(xyz1,xyz2);
2616  ajouter_mg_visu_courbe(mgvisucourbe);
2617  xyz1[0]=xyz2[0];
2618  xyz1[1]=xyz2[1];
2619  xyz1[2]=xyz2[2];
2620  }
2621  }
2622 }
2623 
2624 std::ostream& operator << (std::ostream& o,MG_GEOMETRIE& geo)
2625 {
2627  return o;
2628 }
2629 
2630 
2631 
2633 {
2634  gest_materiau=nom;
2635 }
2636 
2638 {
2639  return (char*)gest_materiau.c_str();
2640 }
2641 
2643 {
2644  return precision;
2645 }
2646 
2648 {
2649  precision=val;
2650 }
2651 
2653 {
2654  return valeur_unite;
2655 }
2656 
2658 {
2659  valeur_unite=val;
2660 }
2661 
2662 
2663 
2665 {
2666  LISTE_MG_FACE::iterator itface;
2667  for (MG_FACE* face=get_premier_face(itface);face!=NULL;face=get_suivant_face(itface))
2668  face->get_vectorisation();
2669  LISTE_MG_ARETE::iterator itarete;
2670  for (MG_ARETE* arete=get_premier_arete(itarete);arete!=NULL;arete=get_suivant_arete(itarete))
2671  arete->get_vectorisation();
2672  LISTE_MG_SOMMET::iterator itsommet;
2673  for (MG_SOMMET* som=get_premier_sommet(itsommet);som!=NULL;som=get_suivant_sommet(itsommet))
2674  som->get_vectorisation();
2675  LISTE_MG_SURFACE::iterator itsurface;
2676  for (MG_SURFACE* surface=get_premier_surface(itsurface);surface!=NULL;surface=get_suivant_surface(itsurface))
2677  surface->get_vectorisation();
2678  LISTE_MG_COURBE::iterator itcourbe;
2679  for (MG_COURBE* courb=get_premier_courbe(itcourbe);courb!=NULL;courb=get_suivant_courbe(itcourbe))
2680  courb->get_vectorisation();
2681  LISTE_MG_POINT::iterator itpoint;
2682  for (MG_POINT* point=get_premier_point(itpoint);point!=NULL;point=get_suivant_point(itpoint))
2683  point->get_vectorisation();
2684 }
2685 
2686 
2687 #ifdef BREP_SAT
2689 {
2690  return fichsat;
2691 }
2692 #endif
2693 #ifdef BREP_STEP
2695 {
2696  return fichstep;
2697 }
2698 #endif
2699 
2700 #ifdef BREP_OCC
2702 {
2703  return *fonction1;
2704 }
2705 #endif
2706 
2708 {
2709  return geometrie_construction;
2710 }
2711 
2713 {
2715 }
2716 
2717 void MG_GEOMETRIE::efface_ccf(bool volume, bool face, bool arete, bool sommet)
2718 {
2719 if (volume)
2720  {
2721  LISTE_MG_VOLUME::iterator it;
2722  for (MG_VOLUME* vol=get_premier_volume(it);vol!=NULL;vol=get_suivant_volume(it))
2723  {
2724  while (vol->get_nb_ccf()>0)
2725  vol->supprimer_ccf(0);
2726  }
2727  }
2728 if (face)
2729  {
2730  LISTE_MG_FACE::iterator it;
2731  for (MG_FACE* fac=get_premier_face(it);fac!=NULL;fac=get_suivant_face(it))
2732  {
2733  while (fac->get_nb_ccf()>0)
2734  fac->supprimer_ccf(0);
2735  }
2736  }
2737 if (arete)
2738  {
2739  LISTE_MG_ARETE::iterator it;
2740  for (MG_ARETE* are=get_premier_arete(it);are!=NULL;are=get_suivant_arete(it))
2741  {
2742  while (are->get_nb_ccf()>0)
2743  are->supprimer_ccf(0);
2744  }
2745  }
2746 if (sommet)
2747  {
2748  LISTE_MG_SOMMET::iterator it;
2749  for (MG_SOMMET* som=get_premier_sommet(it);som!=NULL;som=get_suivant_sommet(it))
2750  {
2751  while (som->get_nb_ccf()>0)
2752  som->supprimer_ccf(0);
2753  }
2754  }
2755 }
MG_GEOMETRIE::supprimer_mg_surface
virtual int supprimer_mg_surface(unsigned int num)
Definition: mg_geometrie.cpp:430
MG_GEOMETRIE::get_mg_cofaceid
MG_COFACE * get_mg_cofaceid(long num)
Definition: mg_geometrie.cpp:1460
MG_GEOMETRIE::~MG_GEOMETRIE
virtual ~MG_GEOMETRIE()
Definition: mg_geometrie.cpp:107
MG_GEOMETRIE::get_mg_element_topologiqueid
virtual MG_ELEMENT_TOPOLOGIQUE * get_mg_element_topologiqueid(long num)
Definition: mg_geometrie.cpp:2461
MG_GEOMETRIE::lst_mg_coquille
LISTE_MG_COQUILLE lst_mg_coquille
Definition: mg_geometrie.h:342
MG_GEOMETRIE::supprimer_mg_sommetid
virtual int supprimer_mg_sommetid(unsigned long num)
Definition: mg_geometrie.cpp:558
MG_GEOMETRIE::get_valeur_precision
double get_valeur_precision(void)
Definition: mg_geometrie.cpp:2642
ST_GESTIONNAIRE
Definition: st_gestionnaire.h:55
MG_GEOMETRIE::get_mg_geom_fonction
MG_GEOM_FONCTION * get_mg_geom_fonction(unsigned int num)
Definition: mg_geometrie.cpp:2169
MG_GEOMETRIE::get_nb_cosommet
unsigned int get_nb_cosommet(void)
Definition: mg_geometrie.cpp:727
MG_GEOMETRIE::ajouter_mg_poutre
virtual int ajouter_mg_poutre(MG_POUTRE *mgpoutre)
Definition: mg_geometrie.cpp:1904
MG_ARETE::get_cosommet2
virtual class MG_COSOMMET * get_cosommet2(void)
Definition: mg_arete.cpp:85
MG_GEOMETRIE::supprimer_tout_mg_geom_fonction
virtual void supprimer_tout_mg_geom_fonction(void)
Definition: mg_geometrie.cpp:2239
MG_GEOMETRIE::get_mg_element_cotopologiqueid
virtual MG_ELEMENT_COTOPOLOGIQUE * get_mg_element_cotopologiqueid(long num)
Definition: mg_geometrie.cpp:2497
MG_GEOMETRIE::supprimer_mg_poutreid
virtual int supprimer_mg_poutreid(unsigned long num)
Definition: mg_geometrie.cpp:1980
MG_GEOMETRIE::get_gest_step
class ST_GESTIONNAIRE & get_gest_step(void)
Definition: mg_geometrie.cpp:2694
MG_GEOMETRIE::lst_mg_arete
LISTE_MG_ARETE lst_mg_arete
Definition: mg_geometrie.h:337
MG_GEOMETRIE::get_mg_courbeid
MG_COURBE * get_mg_courbeid(unsigned long num)
Definition: mg_geometrie.cpp:266
MG_GEOMETRIE::get_mg_cosommetid
MG_COSOMMET * get_mg_cosommetid(long num)
Definition: mg_geometrie.cpp:746
MG_GEOMETRIE::get_mg_boucle
MG_BOUCLE * get_mg_boucle(unsigned int num)
Definition: mg_geometrie.cpp:1100
mg_geometrie.h
MG_GEOMETRIE::lst_mg_cosommet
LISTE_MG_COSOMMET lst_mg_cosommet
Definition: mg_geometrie.h:336
MG_GEOMETRIE::supprimer_tout_mg_point
virtual void supprimer_tout_mg_point(void)
Definition: mg_geometrie.cpp:219
MG_GEOMETRIE::get_mg_coqueid
MG_COQUE * get_mg_coqueid(unsigned long num)
Definition: mg_geometrie.cpp:1793
MG_GEOMETRIE::get_premier_boucle
MG_BOUCLE * get_premier_boucle(LISTE_MG_BOUCLE::iterator &it)
Definition: mg_geometrie.cpp:1192
MG_GEOMETRIE::supprimer_mg_element_cotopologique
virtual int supprimer_mg_element_cotopologique(MG_ELEMENT_COTOPOLOGIQUE *mg_element_cotopologique)
Definition: mg_geometrie.cpp:2427
MG_BOUCLE
Definition: mg_boucle.h:35
gestionversion.h
MG_BOUCLE::get_nb_mg_coarete
virtual int get_nb_mg_coarete(void)
Definition: mg_boucle.cpp:78
MG_SURFACE
Definition: mg_surface.h:31
MG_VOLUME::ajouter_mg_coquille
virtual void ajouter_mg_coquille(class MG_COQUILLE *mgcoq)
Definition: mg_volume.cpp:46
OCC_FONCTION::Sauvegarder
virtual void Sauvegarder(char *file)
Definition: occ_fonction.cpp:54
MG_GEOMETRIE::supprimer_mg_coareteid
virtual int supprimer_mg_coareteid(long num)
Definition: mg_geometrie.cpp:992
MG_GEOMETRIE::get_mg_coareteid
MG_COARETE * get_mg_coareteid(long num)
Definition: mg_geometrie.cpp:1029
MG_GEOMETRIE::ajouter_mg_sommet_noeud
virtual class MG_SOMMET_NOEUD * ajouter_mg_sommet_noeud(MG_NOEUD *noeud)
Definition: mg_geometrie.cpp:481
MG_GEOMETRIE::construit_vectorisation
void construit_vectorisation(void)
Definition: mg_geometrie.cpp:2664
MG_GEOMETRIE::change_valeur_unite
void change_valeur_unite(double val)
Definition: mg_geometrie.cpp:2657
MG_GEOMETRIE::supprimer_tout_mg_visu_courbe
virtual void supprimer_tout_mg_visu_courbe(void)
Definition: mg_geometrie.cpp:2342
FAIL
const int FAIL
Definition: mg_definition.h:39
SAT_GESTIONNAIRE::lire
int lire(void)
Definition: sat_gestionnaire.cpp:97
MG_ARETE::evaluer
virtual void evaluer(double t, double *xyz)
Definition: mg_arete.cpp:143
MG_GEOMETRIE::get_suivant_volume
MG_VOLUME * get_suivant_volume(LISTE_MG_VOLUME::iterator &it)
Definition: mg_geometrie.cpp:1702
mg_gestionnaire.h
MG_POUTRE::ajouter_mg_boucle
virtual void ajouter_mg_boucle(class MG_BOUCLE *mgbou)
Definition: mg_poutre.cpp:43
MG_GEOMETRIE::ajouter_mg_groupe_topologique
virtual int ajouter_mg_groupe_topologique(MG_GROUPE_TOPOLOGIQUE *mggroupe_topologique)
Definition: mg_geometrie.cpp:2029
MG_GEOMETRIE::get_mg_areteid
MG_ARETE * get_mg_areteid(unsigned long num)
Definition: mg_geometrie.cpp:775
MG_GEOMETRIE::ajouter_mg_boucle
virtual int ajouter_mg_boucle(MG_BOUCLE *mgboucle)
Definition: mg_geometrie.cpp:1041
MG_GEOMETRIE::get_mg_pointid
MG_POINT * get_mg_pointid(unsigned long num)
Definition: mg_geometrie.cpp:153
MG_GEOMETRIE::lst_mg_surface
LISTE_MG_SURFACE lst_mg_surface
Definition: mg_geometrie.h:334
MG_GEOMETRIE::change_gest_materiau
void change_gest_materiau(char *nom)
Definition: mg_geometrie.cpp:2632
MG_GEOMETRIE::supprimer_tout_mg_arete
virtual void supprimer_tout_mg_arete(void)
Definition: mg_geometrie.cpp:880
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: mg_identificateur.cpp:53
MG_GEOMETRIE::supprimer_mg_poutre
virtual int supprimer_mg_poutre(unsigned int num)
Definition: mg_geometrie.cpp:1997
MG_GEOMETRIE::get_fichier_dependant
virtual void get_fichier_dependant(std::vector< std::string > &liste_fichier)
Definition: mg_geometrie.cpp:2570
MG_COSOMMET
Definition: mg_cosommet.h:31
MG_GEOMETRIE::get_nb_mg_arete
unsigned int get_nb_mg_arete(void)
Definition: mg_geometrie.cpp:813
MG_GEOMETRIE::MG_GEOMETRIE
MG_GEOMETRIE(char *type, const char *nom=NULL, double unite=1.0, double eps=1e-6)
Definition: mg_geometrie.cpp:39
MG_GEOMETRIE::supprimer_mg_geom_fonctionid
virtual int supprimer_mg_geom_fonctionid(unsigned long num)
Definition: mg_geometrie.cpp:2204
MG_GEOMETRIE::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition: mg_geometrie.cpp:2547
MG_FACE::get_nb_mg_coface
virtual int get_nb_mg_coface(void)
Definition: mg_face.cpp:83
MG_GEOMETRIE::lst_mg_coque
LISTE_MG_COQUE lst_mg_coque
Definition: mg_geometrie.h:344
MG_COARETE
Definition: mg_coarete.h:31
MG_GEOMETRIE::get_premier_coarete
MG_COARETE * get_premier_coarete(LISTE_MG_COARETE::iterator &it)
Definition: mg_geometrie.cpp:1015
MG_GEOMETRIE::get_premier_courbe
MG_COURBE * get_premier_courbe(LISTE_MG_COURBE::iterator &it)
Definition: mg_geometrie.cpp:346
MG_GEOMETRIE::ajouter_mg_volume
virtual int ajouter_mg_volume(MG_VOLUME *mgvol)
Definition: mg_geometrie.cpp:1642
MG_ARETE::est_une_topo_element
virtual bool est_une_topo_element(void)
Definition: mg_arete.cpp:111
MG_ARETE::supprimer_mg_coarete
virtual void supprimer_mg_coarete(class MG_COARETE *coarete)
Definition: mg_arete.cpp:213
MG_GEOMETRIE::get_premier_face
MG_FACE * get_premier_face(LISTE_MG_FACE::iterator &it)
Definition: mg_geometrie.cpp:1338
MG_COFACE::get_face
virtual MG_FACE * get_face(void)
Definition: mg_coface.cpp:58
MG_GEOMETRIE::get_suivant_cosommet
MG_COSOMMET * get_suivant_cosommet(LISTE_MG_COSOMMET::iterator &it)
Definition: mg_geometrie.cpp:739
OCC_VOLUME
Definition: occ_volume.h:34
MG_GEOMETRIE::supprimer_mg_element_topologique
virtual int supprimer_mg_element_topologique(MG_ELEMENT_TOPOLOGIQUE *mg_element_topologique)
Definition: mg_geometrie.cpp:2407
MG_GEOMETRIE::get_mg_visu_courbeid
MG_VISU_COURBE * get_mg_visu_courbeid(unsigned long num)
Definition: mg_geometrie.cpp:2265
MG_GEOMETRIE::lst_mg_point
LISTE_MG_POINT lst_mg_point
Definition: mg_geometrie.h:332
MG_GEOMETRIE::get_mg_poutre
MG_POUTRE * get_mg_poutre(unsigned int num)
Definition: mg_geometrie.cpp:1945
MG_GEOMETRIE::supprimer_mg_courbe
virtual int supprimer_mg_courbe(unsigned int num)
Definition: mg_geometrie.cpp:315
MG_GEOMETRIE::get_mg_surface
MG_SURFACE * get_mg_surface(unsigned int num)
Definition: mg_geometrie.cpp:394
MG_GEOMETRIE::est_construction
bool est_construction(void)
Definition: mg_geometrie.cpp:2707
MG_GEOMETRIE::get_mg_sommet
MG_SOMMET * get_mg_sommet(unsigned int num)
Definition: mg_geometrie.cpp:539
MG_GEOMETRIE::get_premier_point
MG_POINT * get_premier_point(LISTE_MG_POINT::iterator &it)
Definition: mg_geometrie.cpp:233
MG_GEOMETRIE::get_nb_mg_surface
unsigned int get_nb_mg_surface(void)
Definition: mg_geometrie.cpp:407
OK
const int OK
Definition: mg_definition.h:38
MG_GEOMETRIE::ajouter_mg_element_geometrique
virtual int ajouter_mg_element_geometrique(MG_ELEMENT_GEOMETRIQUE *mg_element_geometrique)
Definition: mg_geometrie.cpp:2393
MG_GEOMETRIE::get_premier_cosommet
MG_COSOMMET * get_premier_cosommet(LISTE_MG_COSOMMET::iterator &it)
Definition: mg_geometrie.cpp:732
MG_VOLUME
Definition: mg_volume.h:33
MG_COQUILLE
Definition: mg_coquille.h:34
MG_GESTIONNAIRE
Definition: mg_gestionnaire.h:57
MG_COFACE
Definition: mg_coface.h:33
MG_GEOMETRIE::ajouter_mg_sommet
virtual int ajouter_mg_sommet(MG_SOMMET *mgsom)
Definition: mg_geometrie.cpp:497
MG_ELEMENT_TOPOLOGIQUE::get_type
virtual int get_type(void)=0
MG_GEOMETRIE::supprimer_mg_cosommet
virtual int supprimer_mg_cosommet(MG_COSOMMET *mgcosom)
Definition: mg_geometrie.cpp:693
MG_GEOMETRIE::lst_mg_volume
LISTE_MG_VOLUME lst_mg_volume
Definition: mg_geometrie.h:343
MG_SOMMET::get_nb_mg_cosommet
virtual int get_nb_mg_cosommet(void)
Definition: mg_sommet.cpp:64
MG_COURBE
Definition: mg_courbe.h:30
MG_GEOMETRIE::get_nb_coarete
unsigned int get_nb_coarete(void)
Definition: mg_geometrie.cpp:1010
MG_GEOMETRIE::get_gest_materiau
char * get_gest_materiau(void)
Definition: mg_geometrie.cpp:2637
MG_GEOMETRIE::get_nom_du_fichier
char * get_nom_du_fichier(void)
Definition: mg_geometrie.cpp:2578
MG_GEOMETRIE::lst_mg_face
LISTE_MG_FACE lst_mg_face
Definition: mg_geometrie.h:340
MG_GEOMETRIE::supprimer_mg_visu_courbeid
virtual int supprimer_mg_visu_courbeid(unsigned long num)
Definition: mg_geometrie.cpp:2314
MG_ARETE::get_tmin
virtual double get_tmin(void)
Definition: mg_arete.cpp:179
MG_GEOMETRIE::lst_mg_poutre
LISTE_MG_POUTRE lst_mg_poutre
Definition: mg_geometrie.h:345
MG_GEOMETRIE::get_suivant_boucle
MG_BOUCLE * get_suivant_boucle(LISTE_MG_BOUCLE::iterator &it)
Definition: mg_geometrie.cpp:1200
MG_POUTRE
Definition: mg_poutre.h:33
MG_ELEMENT_TOPOLOGIQUE
Definition: mg_element_topologique.h:51
MAGIC_VERSION_FICHIER_DOUBLE
#define MAGIC_VERSION_FICHIER_DOUBLE
Definition: version.h:7
MG_FACE::supprimer_mg_coface
virtual void supprimer_mg_coface(class MG_COFACE *coface)
Definition: mg_face.cpp:89
MG_GEOMETRIE::supprimer_mg_coque
virtual int supprimer_mg_coque(unsigned int num)
Definition: mg_geometrie.cpp:1870
MG_GEOMETRIE::get_suivant_sommet
MG_SOMMET * get_suivant_sommet(LISTE_MG_SOMMET::iterator &it)
Definition: mg_geometrie.cpp:632
MG_GEOMETRIE::supprimer_mg_volumeid
virtual int supprimer_mg_volumeid(unsigned long num)
Definition: mg_geometrie.cpp:1718
MG_GEOMETRIE::ini
void ini(char *type, char *nom)
Definition: mg_geometrie.cpp:44
MG_GEOMETRIE::get_nb_mg_poutre
unsigned int get_nb_mg_poutre(void)
Definition: mg_geometrie.cpp:1974
MG_GEOMETRIE::get_premier_geom_fonction
MG_GEOM_FONCTION * get_premier_geom_fonction(LISTE_MG_GEOM_FONCTION::iterator &it)
Definition: mg_geometrie.cpp:2181
MG_GEOMETRIE::get_mg_courbe
MG_COURBE * get_mg_courbe(unsigned int num)
Definition: mg_geometrie.cpp:278
MG_GEOMETRIE::supprimer_mg_faceid
virtual int supprimer_mg_faceid(unsigned long num)
Definition: mg_geometrie.cpp:1270
MG_GEOMETRIE::ajouter_mg_element_cotopologique
virtual int ajouter_mg_element_cotopologique(MG_ELEMENT_COTOPOLOGIQUE *mg_element_cotopologique)
Definition: mg_geometrie.cpp:2374
MG_GEOMETRIE::supprimer_mg_areteid
virtual int supprimer_mg_areteid(unsigned long num)
Definition: mg_geometrie.cpp:819
MG_GEOMETRIE::ajouter_mg_coquille
virtual int ajouter_mg_coquille(MG_COQUILLE *mgcoq)
Definition: mg_geometrie.cpp:1473
MG_GEOMETRIE::ajouter_mg_coface
virtual int ajouter_mg_coface(MG_COFACE *mgcoface)
Definition: mg_geometrie.cpp:1356
MG_ARETE::get_nb_mg_coarete
virtual int get_nb_mg_coarete(void)
Definition: mg_arete.cpp:106
MG_GEOMETRIE::get_premier_coface
MG_COFACE * get_premier_coface(LISTE_MG_COFACE::iterator &it)
Definition: mg_geometrie.cpp:1446
MG_ELEMENT_GEOMETRIQUE
Definition: mg_element_geometrique.h:30
MG_GEOMETRIE::gest_materiau
std::string gest_materiau
Definition: mg_geometrie.h:329
MG_GEOMETRIE::supprimer_mg_coquilleid
virtual int supprimer_mg_coquilleid(unsigned long num)
Definition: mg_geometrie.cpp:1567
MG_GEOMETRIE::supprimer_mg_visu_courbe
virtual int supprimer_mg_visu_courbe(unsigned int num)
Definition: mg_geometrie.cpp:2328
MG_GEOMETRIE::supprimer_mg_cofaceid
virtual int supprimer_mg_cofaceid(long num)
Definition: mg_geometrie.cpp:1423
MG_GEOMETRIE::get_premier_poutre
MG_POUTRE * get_premier_poutre(LISTE_MG_POUTRE::iterator &it)
Definition: mg_geometrie.cpp:1957
MG_GEOMETRIE::supprimer_tout_mg_boucle
virtual void supprimer_tout_mg_boucle(void)
Definition: mg_geometrie.cpp:1170
OT_CHAINE
Definition: ot_chaine.h:29
MG_GEOMETRIE::precision
double precision
Definition: mg_geometrie.h:327
MG_GEOMETRIE::get_nb_mg_courbe
unsigned int get_nb_mg_courbe(void)
Definition: mg_geometrie.cpp:292
MG_GEOMETRIE::ajouter_mg_cosommet
virtual int ajouter_mg_cosommet(MG_COSOMMET *mgcosom)
Definition: mg_geometrie.cpp:643
OCC_BOUCLE
Definition: occ_boucle.h:38
MG_GEOMETRIE::ajouter_mg_geom_fonction
virtual int ajouter_mg_geom_fonction(MG_GEOM_FONCTION *mggeofon)
Definition: mg_geometrie.cpp:2141
OCC_SOMMET
Definition: occ_sommet.h:34
operator<<
std::ostream & operator<<(std::ostream &o, MG_GEOMETRIE &geo)
Definition: mg_geometrie.cpp:2624
MG_GEOMETRIE::fonction1
OCC_FONCTION * fonction1
Definition: mg_geometrie.h:359
OCC_FONCTION::OuvrirFichierStep
virtual void OuvrirFichierStep(char *file)
Definition: occ_fonction.cpp:44
MG_VISU_COURBE
Definition: mg_visu_courbe.h:29
MG_GEOMETRIE::get_mg_point
MG_POINT * get_mg_point(unsigned int num)
Definition: mg_geometrie.cpp:165
MG_FACE::ajouter_mg_boucle
virtual void ajouter_mg_boucle(class MG_BOUCLE *mgbou)
Definition: mg_face.cpp:48
MG_GEOMETRIE::get_premier_visu_courbe
MG_VISU_COURBE * get_premier_visu_courbe(LISTE_MG_VISU_COURBE::iterator &it)
Definition: mg_geometrie.cpp:2296
ST_GESTIONNAIRE::lire
int lire(void)
Definition: st_gestionnaire.cpp:160
MG_GEOMETRIE::lst_mg_groupe_topologique
LISTE_MG_GROUPE_TOPOLOGIQUE lst_mg_groupe_topologique
Definition: mg_geometrie.h:346
MG_GEOMETRIE::supprimer_mg_boucle
virtual int supprimer_mg_boucle(unsigned int num)
Definition: mg_geometrie.cpp:1144
MG_GEOMETRIE::get_mg_volumeid
MG_VOLUME * get_mg_volumeid(unsigned long num)
Definition: mg_geometrie.cpp:1658
MG_GEOMETRIE::get_mg_surfaceid
MG_SURFACE * get_mg_surfaceid(unsigned long num)
Definition: mg_geometrie.cpp:382
MG_GEOMETRIE::get_suivant_coquille
MG_COQUILLE * get_suivant_coquille(LISTE_MG_COQUILLE::iterator &it)
Definition: mg_geometrie.cpp:1552
MG_SOMMET::supprimer_mg_cosommet
virtual void supprimer_mg_cosommet(class MG_COSOMMET *cosom)
Definition: mg_sommet.cpp:70
MG_NOEUD
Definition: mg_noeud.h:41
MG_GEOMETRIE::remplir_mg_groupe_topologique
virtual void remplir_mg_groupe_topologique(MG_GROUPE_TOPOLOGIQUE *mg_groupe_topologique)
Definition: mg_geometrie.cpp:2529
occ_fonction_v2015.h
MG_GEOMETRIE::supprimer_mg_courbeid
virtual int supprimer_mg_courbeid(unsigned long num)
Definition: mg_geometrie.cpp:298
MG_GEOMETRIE::supprimer_mg_groupe_topologique
virtual int supprimer_mg_groupe_topologique(unsigned int num)
Definition: mg_geometrie.cpp:2109
MG_GEOMETRIE::get_nb_mg_groupe_topologique
unsigned int get_nb_mg_groupe_topologique(void)
Definition: mg_geometrie.cpp:2086
MG_GEOMETRIE::get_mg_arete
MG_ARETE * get_mg_arete(unsigned int num)
Definition: mg_geometrie.cpp:800
MG_GEOMETRIE::get_suivant_visu_courbe
MG_VISU_COURBE * get_suivant_visu_courbe(LISTE_MG_VISU_COURBE::iterator &it)
Definition: mg_geometrie.cpp:2304
MG_GEOMETRIE::get_nb_mg_visu_courbe
unsigned int get_nb_mg_visu_courbe(void)
Definition: mg_geometrie.cpp:2291
MG_GEOMETRIE::supprimer_mg_sommet
virtual int supprimer_mg_sommet(unsigned int num)
Definition: mg_geometrie.cpp:582
MG_GEOM_FONCTION
Definition: mg_geom_fonction.h:29
MG_GEOMETRIE::ajouter_mg_element_topologique
virtual int ajouter_mg_element_topologique(MG_ELEMENT_TOPOLOGIQUE *mg_element_topologique)
Definition: mg_geometrie.cpp:2353
MG_GEOMETRIE::get_premier_coque
MG_COQUE * get_premier_coque(LISTE_MG_COQUE::iterator &it)
Definition: mg_geometrie.cpp:1830
MG_GEOMETRIE::supprimer_tout_mg_groupe_topologique
virtual void supprimer_tout_mg_groupe_topologique(void)
Definition: mg_geometrie.cpp:2127
OCC_FONCTION::OuvrirFichier
virtual void OuvrirFichier(char *file)
Definition: occ_fonction.cpp:40
MG_GEOMETRIE::get_suivant_coface
MG_COFACE * get_suivant_coface(LISTE_MG_COFACE::iterator &it)
Definition: mg_geometrie.cpp:1453
MG_GEOMETRIE::supprimer_mg_cosommetid
virtual int supprimer_mg_cosommetid(long num)
Definition: mg_geometrie.cpp:709
MG_GEOMETRIE::get_mg_visu_courbe
MG_VISU_COURBE * get_mg_visu_courbe(unsigned int num)
Definition: mg_geometrie.cpp:2277
MG_GEOMETRIE::get_mg_geom_fonctionid
MG_GEOM_FONCTION * get_mg_geom_fonctionid(unsigned long num)
Definition: mg_geometrie.cpp:2157
MG_ARETE::ajouter_mg_coarete
virtual void ajouter_mg_coarete(class MG_COARETE *coarete)
Definition: mg_arete.cpp:101
occ_fonction_v2017.h
MG_GEOMETRIE::get_nb_mg_geom_fonction
unsigned int get_nb_mg_geom_fonction(void)
Definition: mg_geometrie.cpp:2198
OCC_FONCTION_V2015
Definition: occ_fonction_v2015.h:41
MG_GEOMETRIE::supprimer_mg_groupe_topologiqueid
virtual int supprimer_mg_groupe_topologiqueid(unsigned long num)
Definition: mg_geometrie.cpp:2092
SAT_GESTIONNAIRE::change_nom
void change_nom(char *path)
Definition: sat_gestionnaire.cpp:84
MG_GEOMETRIE::get_suivant_groupe_topologique
MG_GROUPE_TOPOLOGIQUE * get_suivant_groupe_topologique(LISTE_MG_GROUPE_TOPOLOGIQUE::iterator &it)
Definition: mg_geometrie.cpp:2077
MG_SOMMET::ajouter_mg_cosommet
virtual void ajouter_mg_cosommet(class MG_COSOMMET *cosom)
Definition: mg_sommet.cpp:59
MG_GEOMETRIE::fichsat
SAT_GESTIONNAIRE fichsat
Definition: mg_geometrie.h:353
mg_sommet_noeud.h
OCC_COQUILLE
Definition: occ_coquille.h:36
MG_ELEMENT_COTOPOLOGIQUE
Definition: mg_element_cotopologique.h:30
MG_GEOMETRIE::get_nb_mg_coque
unsigned int get_nb_mg_coque(void)
Definition: mg_geometrie.cpp:1847
MG_GESTIONNAIRE::recherche_bonidvisuel
void recherche_bonidvisuel(MG_IDENTIFICATEUR &ident)
Definition: mg_gestionnaire.cpp:82
MG_GEOMETRIE::supprimer_mg_surfaceid
virtual int supprimer_mg_surfaceid(unsigned long num)
Definition: mg_geometrie.cpp:413
MG_GEOMETRIE::get_gest_sat
class SAT_GESTIONNAIRE & get_gest_sat(void)
Definition: mg_geometrie.cpp:2688
MG_GEOMETRIE::get_premier_surface
MG_SURFACE * get_premier_surface(LISTE_MG_SURFACE::iterator &it)
Definition: mg_geometrie.cpp:462
MG_GEOMETRIE::get_mg_coquille
MG_COQUILLE * get_mg_coquille(unsigned int num)
Definition: mg_geometrie.cpp:1533
MG_GEOMETRIE::est_virtuelle
bool est_virtuelle(void)
Definition: mg_geometrie.cpp:2588
MG_GEOMETRIE::lst_entite
LISTE_ENTITE lst_entite
Definition: mg_geometrie.h:331
MG_POINT
Definition: mg_point.h:33
MG_GEOMETRIE::supprimer_tout_mg_surface
virtual void supprimer_tout_mg_surface(void)
Definition: mg_geometrie.cpp:448
MG_GEOMETRIE::lst_mg_geom_fonction
LISTE_MG_GEOM_FONCTION lst_mg_geom_fonction
Definition: mg_geometrie.h:347
MG_GEOMETRIE::get_mg_face
MG_FACE * get_mg_face(unsigned int num)
Definition: mg_geometrie.cpp:1251
MG_GEOMETRIE::supprimer_tout_mg_sommet
virtual void supprimer_tout_mg_sommet(void)
Definition: mg_geometrie.cpp:607
MG_GEOMETRIE::get_premier_sommet
MG_SOMMET * get_premier_sommet(LISTE_MG_SOMMET::iterator &it)
Definition: mg_geometrie.cpp:624
MG_COSOMMET::get_sommet
virtual MG_SOMMET * get_sommet(void)
Definition: mg_cosommet.cpp:83
MG_GEOMETRIE::supprimer_mg_coarete
virtual int supprimer_mg_coarete(MG_COARETE *mgcoarete)
Definition: mg_geometrie.cpp:976
MG_GEOMETRIE::supprimer_mg_pointid
virtual int supprimer_mg_pointid(unsigned long num)
Definition: mg_geometrie.cpp:184
MG_GEOMETRIE::geometrie_construction
bool geometrie_construction
Definition: mg_geometrie.h:361
MG_GEOMETRIE::get_mg_boucleid
MG_BOUCLE * get_mg_boucleid(unsigned long num)
Definition: mg_geometrie.cpp:1088
MG_GEOMETRIE::get_nb_mg_point
unsigned int get_nb_mg_point(void)
Definition: mg_geometrie.cpp:178
MG_GEOMETRIE::lst_mg_visu_courbe
LISTE_MG_VISU_COURBE lst_mg_visu_courbe
Definition: mg_geometrie.h:348
MG_GEOMETRIE::ajouter_mg_courbe
virtual int ajouter_mg_courbe(MG_COURBE *mgcrb)
Definition: mg_geometrie.cpp:251
MG_GEOMETRIE::get_premier_coquille
MG_COQUILLE * get_premier_coquille(LISTE_MG_COQUILLE::iterator &it)
Definition: mg_geometrie.cpp:1544
MG_GEOMETRIE::lst_mg_coarete
LISTE_MG_COARETE lst_mg_coarete
Definition: mg_geometrie.h:338
MG_GEOMETRIE::ajouter_mg_face
virtual int ajouter_mg_face(MG_FACE *mgface)
Definition: mg_geometrie.cpp:1210
MG_COQUE::ajouter_mg_coquille
virtual void ajouter_mg_coquille(class MG_COQUILLE *mgcoa)
Definition: mg_coque.cpp:45
MG_GEOMETRIE::get_premier_groupe_topologique
MG_GROUPE_TOPOLOGIQUE * get_premier_groupe_topologique(LISTE_MG_GROUPE_TOPOLOGIQUE::iterator &it)
Definition: mg_geometrie.cpp:2069
MG_GEOMETRIE::supprimer_mg_arete
virtual int supprimer_mg_arete(unsigned int num)
Definition: mg_geometrie.cpp:849
MG_GEOMETRIE::ajouter_mg_coarete
virtual int ajouter_mg_coarete(MG_COARETE *mgcoarete)
Definition: mg_geometrie.cpp:925
MG_GEOMETRIE::get_nb_mg_face
unsigned int get_nb_mg_face(void)
Definition: mg_geometrie.cpp:1264
MG_GEOMETRIE::lst_mg_boucle
LISTE_MG_BOUCLE lst_mg_boucle
Definition: mg_geometrie.h:339
OCC_FONCTION_V2017::enregistrer_fichier_OCAF
virtual int enregistrer_fichier_OCAF(char *file, MG_GEOMETRIE *mg_geometrie)
Definition: occ_fonction_v2017.cpp:152
MG_GEOMETRIE::get_premier_arete
MG_ARETE * get_premier_arete(LISTE_MG_ARETE::iterator &it)
Definition: mg_geometrie.cpp:907
OT_CHAINE::upcase
std::string upcase(std::string chaine)
Definition: ot_chaine.cpp:204
MG_GEOMETRIE::get_nb_mg_volume
unsigned int get_nb_mg_volume(void)
Definition: mg_geometrie.cpp:1712
MG_GEOMETRIE::supprimer_mg_coquille
virtual int supprimer_mg_coquille(unsigned int num)
Definition: mg_geometrie.cpp:1592
MG_GEOMETRIE::get_mg_groupe_topologique
MG_GROUPE_TOPOLOGIQUE * get_mg_groupe_topologique(unsigned int num)
Definition: mg_geometrie.cpp:2057
MG_FACE::ajouter_mg_coface
virtual void ajouter_mg_coface(class MG_COFACE *coface)
Definition: mg_face.cpp:78
SAT_GESTIONNAIRE
Definition: sat_gestionnaire.h:46
MG_GEOMETRIE::lst_mg_coface
LISTE_MG_COFACE lst_mg_coface
Definition: mg_geometrie.h:341
MG_GEOMETRIE::get_mg_groupe_topologiqueid
MG_GROUPE_TOPOLOGIQUE * get_mg_groupe_topologiqueid(unsigned long num)
Definition: mg_geometrie.cpp:2045
MG_BOUCLE::get_mg_coarete
virtual MG_COARETE * get_mg_coarete(int num)
Definition: mg_boucle.cpp:84
MG_GEOMETRIE::efface_ccf
void efface_ccf(bool volume, bool face, bool arete, bool sommet)
Definition: mg_geometrie.cpp:2717
MG_GEOMETRIE::ajouter_mg_arete
virtual int ajouter_mg_arete(MG_ARETE *mgarete)
Definition: mg_geometrie.cpp:759
MG_GEOMETRIE::ajouter_mg_point
virtual int ajouter_mg_point(MG_POINT *mgpt)
Definition: mg_geometrie.cpp:137
MG_GEOMETRIE::valeur_unite
double valeur_unite
Definition: mg_geometrie.h:350
MG_GEOMETRIE::get_suivant_poutre
MG_POUTRE * get_suivant_poutre(LISTE_MG_POUTRE::iterator &it)
Definition: mg_geometrie.cpp:1965
MG_GEOMETRIE::supprimer_mg_geom_fonction
virtual int supprimer_mg_geom_fonction(unsigned int num)
Definition: mg_geometrie.cpp:2221
MG_GESTIONNAIRE::recherche_bonid
void recherche_bonid(MG_IDENTIFICATEUR &ident)
Definition: mg_gestionnaire.cpp:69
MG_GEOMETRIE::get_type_geometrie
char * get_type_geometrie(void)
Definition: mg_geometrie.cpp:2583
MG_GROUPE_TOPOLOGIQUE
Definition: mg_groupe_topologique.h:31
MG_GEOMETRIE::change_valeur_precision
void change_valeur_precision(double val)
Definition: mg_geometrie.cpp:2647
MG_GEOMETRIE::lst_mg_sommet
LISTE_MG_SOMMET lst_mg_sommet
Definition: mg_geometrie.h:335
MG_GEOMETRIE::supprimer_mg_point
virtual int supprimer_mg_point(unsigned int num)
Definition: mg_geometrie.cpp:201
MG_GEOMETRIE::get_valeur_unite
double get_valeur_unite(void)
Definition: mg_geometrie.cpp:2652
MG_GEOMETRIE::cree_entite_visuel
void cree_entite_visuel(double facteur=1.)
Definition: mg_geometrie.cpp:2598
MG_GEOMETRIE::get_mg_faceid
MG_FACE * get_mg_faceid(unsigned long num)
Definition: mg_geometrie.cpp:1226
MG_GEOMETRIE::change_gestionnaire
void change_gestionnaire(class MG_GESTIONNAIRE *mggest)
Definition: mg_geometrie.cpp:131
MG_GEOMETRIE::nom_du_fichier
char * nom_du_fichier
Definition: mg_geometrie.h:324
MG_GEOMETRIE::get_suivant_geom_fonction
MG_GEOM_FONCTION * get_suivant_geom_fonction(LISTE_MG_GEOM_FONCTION::iterator &it)
Definition: mg_geometrie.cpp:2189
MG_GEOMETRIE::get_premier_volume
MG_VOLUME * get_premier_volume(LISTE_MG_VOLUME::iterator &it)
Definition: mg_geometrie.cpp:1694
MG_GEOMETRIE::ajouter_mg_visu_courbe
virtual int ajouter_mg_visu_courbe(MG_VISU_COURBE *mgvcrb)
Definition: mg_geometrie.cpp:2256
MG_GEOMETRIE::get_mg_poutreid
MG_POUTRE * get_mg_poutreid(unsigned long num)
Definition: mg_geometrie.cpp:1920
MG_GEOMETRIE::supprimer_mg_volume
virtual int supprimer_mg_volume(unsigned int num)
Definition: mg_geometrie.cpp:1738
MG_GEOMETRIE::type_geo
char type_geo[16]
Definition: mg_geometrie.h:325
MG_GEOMETRIE
Definition: mg_geometrie.h:84
MG_GEOMETRIE::supprimer_tout_mg_volume
virtual void supprimer_tout_mg_volume(void)
Definition: mg_geometrie.cpp:1759
MG_GEOMETRIE::get_mg_coque
MG_COQUE * get_mg_coque(unsigned int num)
Definition: mg_geometrie.cpp:1818
ST_GESTIONNAIRE::change_nom
void change_nom(char *path)
Definition: st_gestionnaire.cpp:129
MG_GROUPE_TOPOLOGIQUE::ajouter
virtual int ajouter(class MG_ELEMENT_TOPOLOGIQUE *ele)
Definition: mg_groupe_topologique.cpp:61
MG_GEOMETRIE::supprimer_mg_coface
virtual int supprimer_mg_coface(MG_COFACE *mgcoface)
Definition: mg_geometrie.cpp:1407
MG_GEOMETRIE::supprimer_tout_mg_courbe
virtual void supprimer_tout_mg_courbe(void)
Definition: mg_geometrie.cpp:332
MG_GEOMETRIE::get_suivant_courbe
MG_COURBE * get_suivant_courbe(LISTE_MG_COURBE::iterator &it)
Definition: mg_geometrie.cpp:354
MG_COQUILLE::get_nb_mg_coface
virtual int get_nb_mg_coface(void)
Definition: mg_coquille.cpp:76
MG_COQUILLE::get_mg_coface
virtual MG_COFACE * get_mg_coface(int num)
Definition: mg_coquille.cpp:90
MG_GEOMETRIE::supprimer_mg_face
virtual int supprimer_mg_face(unsigned int num)
Definition: mg_geometrie.cpp:1295
res
#define res(i, j)
ot_chaine.h
OCC_FACE
Definition: occ_face.h:34
MG_GEOMETRIE::ajouter_mg_coque
virtual int ajouter_mg_coque(MG_COQUE *mgcoque)
Definition: mg_geometrie.cpp:1777
MG_GEOMETRIE::change_est_construction
void change_est_construction(bool val)
Definition: mg_geometrie.cpp:2712
MG_ELEMENT_COTOPOLOGIQUE::get_type
virtual int get_type(void)=0
MG_ARETE
Definition: mg_arete.h:36
MG_GEOMETRIE::supprimer_mg_element_geometrique
virtual int supprimer_mg_element_geometrique(MG_ELEMENT_GEOMETRIQUE *mg_element_geometrique)
Definition: mg_geometrie.cpp:2446
MG_FACE
Definition: mg_face.h:34
OCC_FONCTION_V2017
Definition: occ_fonction_v2017.h:104
MG_GEOMETRIE::supprimer_mg_boucleid
virtual int supprimer_mg_boucleid(unsigned long num)
Definition: mg_geometrie.cpp:1119
MG_COQUE
Definition: mg_coque.h:33
MG_GEOMETRIE::get_mg_coquilleid
MG_COQUILLE * get_mg_coquilleid(unsigned long num)
Definition: mg_geometrie.cpp:1521
occ_fonction.h
MG_GEOMETRIE::fichstep
ST_GESTIONNAIRE fichstep
Definition: mg_geometrie.h:356
MG_ELEMENT_TOPOLOGIQUE::get_idoriginal
virtual std::string get_idoriginal(void)
Definition: mg_element_topologique.cpp:299
MG_ARETE::get_cosommet1
virtual class MG_COSOMMET * get_cosommet1(void)
Definition: mg_arete.cpp:81
MG_GEOMETRIE::get_nb_mg_boucle
unsigned int get_nb_mg_boucle(void)
Definition: mg_geometrie.cpp:1113
MG_SOMMET
Definition: mg_sommet.h:35
MG_GEOMETRIE::get_suivant_coque
MG_COQUE * get_suivant_coque(LISTE_MG_COQUE::iterator &it)
Definition: mg_geometrie.cpp:1838
MG_IDENTIFICATEUR
Definition: mg_identificateur.h:34
MG_GEOMETRIE::gest
MG_GESTIONNAIRE * gest
Definition: mg_geometrie.h:349
OCC_ARETE
Definition: occ_arete.h:34
MG_SOMMET_NOEUD
Definition: mg_sommet_noeud.h:33
MG_GEOMETRIE::get_suivant_coarete
MG_COARETE * get_suivant_coarete(LISTE_MG_COARETE::iterator &it)
Definition: mg_geometrie.cpp:1022
MG_GEOMETRIE::supprimer_tout_mg_coque
virtual void supprimer_tout_mg_coque(void)
Definition: mg_geometrie.cpp:1888
MG_GEOMETRIE::get_suivant_face
MG_FACE * get_suivant_face(LISTE_MG_FACE::iterator &it)
Definition: mg_geometrie.cpp:1346
MG_GEOMETRIE::get_mg_sommetid
MG_SOMMET * get_mg_sommetid(unsigned long num)
Definition: mg_geometrie.cpp:513
MG_COARETE::get_arete
virtual MG_ARETE * get_arete(void)
Definition: mg_coarete.cpp:58
OCC_FONCTION
Definition: occ_fonction.h:40
MG_GEOMETRIE::lst_mg_courbe
LISTE_MG_COURBE lst_mg_courbe
Definition: mg_geometrie.h:333
MG_GEOMETRIE::get_nb_coface
unsigned int get_nb_coface(void)
Definition: mg_geometrie.cpp:1441
MG_GEOMETRIE::supprimer_mg_coqueid
virtual int supprimer_mg_coqueid(unsigned long num)
Definition: mg_geometrie.cpp:1853
MG_GEOMETRIE::ajouter_mg_surface
virtual int ajouter_mg_surface(MG_SURFACE *mgsrf)
Definition: mg_geometrie.cpp:366
MG_ARETE::get_tmax
virtual double get_tmax(void)
Definition: mg_arete.cpp:184
MG_GEOMETRIE::get_nb_mg_coquille
unsigned int get_nb_mg_coquille(void)
Definition: mg_geometrie.cpp:1561
MG_GEOMETRIE::get_suivant_point
MG_POINT * get_suivant_point(LISTE_MG_POINT::iterator &it)
Definition: mg_geometrie.cpp:241
MG_GEOMETRIE::get_mg_volume
MG_VOLUME * get_mg_volume(unsigned int num)
Definition: mg_geometrie.cpp:1683
MG_GEOMETRIE::get_suivant_arete
MG_ARETE * get_suivant_arete(LISTE_MG_ARETE::iterator &it)
Definition: mg_geometrie.cpp:915
MG_GEOMETRIE::supprimer_tout_mg_face
virtual void supprimer_tout_mg_face(void)
Definition: mg_geometrie.cpp:1320
MG_GEOMETRIE::get_occ_fonction
class OCC_FONCTION & get_occ_fonction(void)
Definition: mg_geometrie.cpp:2701
MG_GEOMETRIE::get_suivant_surface
MG_SURFACE * get_suivant_surface(LISTE_MG_SURFACE::iterator &it)
Definition: mg_geometrie.cpp:470
MG_ELEMENT_GEOMETRIQUE::get_type
virtual int get_type(void)=0
MG_GEOMETRIE::get_nb_mg_sommet
unsigned int get_nb_mg_sommet(void)
Definition: mg_geometrie.cpp:552
MG_GEOMETRIE::supprimer_tout_mg_coquille
virtual void supprimer_tout_mg_coquille(void)
Definition: mg_geometrie.cpp:1618
MG_GEOMETRIE::supprimer_tout_mg_poutre
virtual void supprimer_tout_mg_poutre(void)
Definition: mg_geometrie.cpp:2015