MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mg_arbre.h
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_arbre.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:53 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifdef CSG_OCC
23 
24 
25 #ifndef __MGARBRE_
26 #define __MGARBRE_
27 
28 
29 #include <map>
30 #include <set>
31 #include "mg_identificateur.h"
32 #include "mg_definition.h"
33 class MG_PRIMITIVE;
34 class MG_ASSEMBLAGE;
35 class MG_OPERATEUR_BOOLEAN;
36 class MG_GESTIONNAIRE;
37 class MG_GEOMETRIE;
38 
39 
40 typedef std::set<MG_IDENTIFICATEUR*,inf<MG_IDENTIFICATEUR*> > LISTE_ENTITE;
41 typedef std::map<unsigned long,MG_PRIMITIVE*,std::less<unsigned long> > LISTE_MG_PRIMITIVE;
42 typedef std::map<unsigned long,MG_OPERATEUR_BOOLEAN*,std::less<unsigned long> > LISTE_MG_OPERATEUR_BOOLEAN;
43 typedef std::map<unsigned long,MG_ASSEMBLAGE*,std::less<unsigned long> > LISTE_MG_ASSEMBLAGE;
44 
45 
46 std::ostream& operator << (std::ostream& o,class MG_ARBRE& arbre);
47 
48 
49 
50 class MG_ARBRE : public MG_IDENTIFICATEUR
51 {
52 public:
53  MG_ARBRE(std::string nm);
54  MG_ARBRE(unsigned long num,std::string nm);
55  MG_ARBRE(MG_ARBRE &mdd);
56  virtual ~MG_ARBRE();
57 
58 
59  int ajouter_mg_primitive(MG_PRIMITIVE *mgprim);
60  MG_PRIMITIVE* get_mg_primitiveid(unsigned long num);
61  MG_PRIMITIVE* get_mg_primitive(unsigned int num);
62  MG_PRIMITIVE* get_premier_primitive(LISTE_MG_PRIMITIVE::iterator & it);
63  MG_PRIMITIVE* get_suivant_primitive(LISTE_MG_PRIMITIVE::iterator & it);
64  unsigned int get_nb_mg_primitive(void);
65  int supprimer_mg_primitiveid(unsigned long num);
66  int supprimer_mg_primitive(unsigned int num);
67  void supprimer_tout_mg_primitive(void);
68 
69 
70  int ajouter_mg_operateur_boolean(MG_OPERATEUR_BOOLEAN *mgop);
71  MG_OPERATEUR_BOOLEAN* get_mg_operateur_booleanid(unsigned long num);
72  MG_OPERATEUR_BOOLEAN* get_mg_operateur_boolean(unsigned int num);
73  MG_OPERATEUR_BOOLEAN* get_premier_operateur_boolean(LISTE_MG_OPERATEUR_BOOLEAN::iterator & it);
74  MG_OPERATEUR_BOOLEAN* get_suivant_operateur_boolean(LISTE_MG_OPERATEUR_BOOLEAN::iterator & it);
75  unsigned int get_nb_mg_operateur_boolean(void);
76  int supprimer_mg_operateur_booleanid(unsigned long num);
77  int supprimer_mg_operateur_boolean(unsigned int num);
78  void supprimer_tout_mg_operateur_boolean(void);
79 
80 
81  int ajouter_mg_assemblage(MG_ASSEMBLAGE *mgassembl);
82  MG_ASSEMBLAGE* get_mg_assemblageid(unsigned long num);
83  MG_ASSEMBLAGE* get_mg_assemblage(unsigned int num);
84  MG_ASSEMBLAGE* get_premier_assemblage(LISTE_MG_ASSEMBLAGE::iterator & it);
85  MG_ASSEMBLAGE* get_suivant_assemblage(LISTE_MG_ASSEMBLAGE::iterator & it);
86  unsigned int get_nb_mg_assemblage(void);
87  int supprimer_mg_assemblageid(unsigned long num);
88  int supprimer_mg_assemblage(unsigned int num);
89  void supprimer_tout_mg_assemblage(void);
90 
91 
92  virtual void enregistrer(std::ostream& o,double version);
93  virtual void get_fichier_dependant(std::vector<std::string> &liste_fichier);
94 
95 
96  void change_gestionnaire(class MG_GESTIONNAIRE* mggest);
97  MG_GESTIONNAIRE* get_gestionnaire(void);
98 
99  virtual MG_GEOMETRIE* evaluer_geometrie(char *nom_fichier,bool export_step,bool import_stl,double precision=1e-6,double eps=1);
100  virtual MG_GEOMETRIE* evaluer_geometrie(MG_ASSEMBLAGE *mgassembl,char *nom_fichier,bool avecfusion,bool export_step,bool import_stl,double precision=1e-6,double eps=1);
101 
102 private:
103  MG_GESTIONNAIRE *gest;
104  LISTE_ENTITE lst_entite;
105  LISTE_MG_PRIMITIVE lst_mg_primitive;
106  LISTE_MG_OPERATEUR_BOOLEAN lst_mg_operateur_boolean;
107  LISTE_MG_ASSEMBLAGE lst_mg_assemblage;
108  std::string nom;
109 
110 };
111 
112 
113 
114 #endif
115 #endif
116 
117 
LISTE_ENTITE
std::set< MG_IDENTIFICATEUR *, inf< MG_IDENTIFICATEUR * > > LISTE_ENTITE
Definition: fem_maillage.h:52
MG_GESTIONNAIRE
Definition: mg_gestionnaire.h:57
operator<<
std::ostream & operator<<(std::ostream &os, const double2 &m)
Definition: ot_doubleprecision.cpp:200
mg_definition.h
MG_GEOMETRIE
Definition: mg_geometrie.h:84
mg_identificateur.h
MG_IDENTIFICATEUR
Definition: mg_identificateur.h:34
MG_IDENTIFICATEUR::enregistrer
virtual void enregistrer(std::ostream &o, double version)=0
MG_IDENTIFICATEUR::get_fichier_dependant
virtual void get_fichier_dependant(std::vector< std::string > &liste_fichier)
Definition: mg_identificateur.cpp:66