ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/mg_arbre.h
Revision: 747
Committed: Tue Oct 6 19:53:22 2015 UTC (9 years, 10 months ago) by francois
Content type: text/plain
File size: 4319 byte(s)
Log Message:
gestion du multivolume a l'importation des fichiers OCC avec triangulation associée

File Contents

# Content
1 //------------------------------------------------------------
2 //------------------------------------------------------------
3 // MAGiC
4 // Jean Christophe Cuilli�re et Vincent FRANCOIS
5 // D�partement de G�nie M�canique - UQTR
6 //------------------------------------------------------------
7 // Le projet MAGIC est un projet de recherche du d�partement
8 // de g�nie m�canique de l'Universit� du Qu�bec �
9 // Trois Rivi�res
10 // Les librairies ne peuvent �tre utilis�es sans l'accord
11 // des auteurs (contact : francois@uqtr.ca)
12 //------------------------------------------------------------
13 //------------------------------------------------------------
14 //
15 // mg_maillage.h
16 //
17 //------------------------------------------------------------
18 //------------------------------------------------------------
19 // COPYRIGHT 2000
20 // Version du 02/03/2006 � 11H22
21 //------------------------------------------------------------
22 //------------------------------------------------------------
23 #ifdef CSG_OCC
24
25
26 #ifndef __MGARBRE_
27 #define __MGARBRE_
28
29
30 #include <map>
31 #include <set>
32 #include "mg_identificateur.h"
33 #include "mg_definition.h"
34 class MG_PRIMITIVE;
35 class MG_ASSEMBLAGE;
36 class MG_OPERATEUR_BOOLEAN;
37 class MG_GESTIONNAIRE;
38 class MG_GEOMETRIE;
39
40
41 typedef std::set<MG_IDENTIFICATEUR*,inf<MG_IDENTIFICATEUR*> > LISTE_ENTITE;
42 typedef std::map<unsigned long,MG_PRIMITIVE*,std::less<unsigned long> > LISTE_MG_PRIMITIVE;
43 typedef std::map<unsigned long,MG_OPERATEUR_BOOLEAN*,std::less<unsigned long> > LISTE_MG_OPERATEUR_BOOLEAN;
44 typedef std::map<unsigned long,MG_ASSEMBLAGE*,std::less<unsigned long> > LISTE_MG_ASSEMBLAGE;
45
46
47 std::ostream& operator << (std::ostream& o,class MG_ARBRE& arbre);
48
49
50
51 class MG_ARBRE : public MG_IDENTIFICATEUR
52 {
53 public:
54 MG_ARBRE(std::string nm);
55 MG_ARBRE(unsigned long num,std::string nm);
56 MG_ARBRE(MG_ARBRE &mdd);
57 virtual ~MG_ARBRE();
58
59
60 int ajouter_mg_primitive(MG_PRIMITIVE *mgprim);
61 MG_PRIMITIVE* get_mg_primitiveid(unsigned long num);
62 MG_PRIMITIVE* get_mg_primitive(unsigned int num);
63 MG_PRIMITIVE* get_premier_primitive(LISTE_MG_PRIMITIVE::iterator & it);
64 MG_PRIMITIVE* get_suivant_primitive(LISTE_MG_PRIMITIVE::iterator & it);
65 unsigned int get_nb_mg_primitive(void);
66 int supprimer_mg_primitiveid(unsigned long num);
67 int supprimer_mg_primitive(unsigned int num);
68 void supprimer_tout_mg_primitive(void);
69
70
71 int ajouter_mg_operateur_boolean(MG_OPERATEUR_BOOLEAN *mgop);
72 MG_OPERATEUR_BOOLEAN* get_mg_operateur_booleanid(unsigned long num);
73 MG_OPERATEUR_BOOLEAN* get_mg_operateur_boolean(unsigned int num);
74 MG_OPERATEUR_BOOLEAN* get_premier_operateur_boolean(LISTE_MG_OPERATEUR_BOOLEAN::iterator & it);
75 MG_OPERATEUR_BOOLEAN* get_suivant_operateur_boolean(LISTE_MG_OPERATEUR_BOOLEAN::iterator & it);
76 unsigned int get_nb_mg_operateur_boolean(void);
77 int supprimer_mg_operateur_booleanid(unsigned long num);
78 int supprimer_mg_operateur_boolean(unsigned int num);
79 void supprimer_tout_mg_operateur_boolean(void);
80
81
82 int ajouter_mg_assemblage(MG_ASSEMBLAGE *mgassembl);
83 MG_ASSEMBLAGE* get_mg_assemblageid(unsigned long num);
84 MG_ASSEMBLAGE* get_mg_assemblage(unsigned int num);
85 MG_ASSEMBLAGE* get_premier_assemblage(LISTE_MG_ASSEMBLAGE::iterator & it);
86 MG_ASSEMBLAGE* get_suivant_assemblage(LISTE_MG_ASSEMBLAGE::iterator & it);
87 unsigned int get_nb_mg_assemblage(void);
88 int supprimer_mg_assemblageid(unsigned long num);
89 int supprimer_mg_assemblage(unsigned int num);
90 void supprimer_tout_mg_assemblage(void);
91
92
93 virtual void enregistrer(std::ostream& o);
94 void change_gestionnaire(class MG_GESTIONNAIRE* mggest);
95 MG_GESTIONNAIRE* get_gestionnaire(void);
96
97 virtual MG_GEOMETRIE* evaluer_geometrie(char *nom_fichier,bool export_step,bool import_stl,double precision=1e-6,double eps=1);
98 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);
99
100 private:
101 MG_GESTIONNAIRE *gest;
102 LISTE_ENTITE lst_entite;
103 LISTE_MG_PRIMITIVE lst_mg_primitive;
104 LISTE_MG_OPERATEUR_BOOLEAN lst_mg_operateur_boolean;
105 LISTE_MG_ASSEMBLAGE lst_mg_assemblage;
106 std::string nom;
107
108 };
109
110
111
112 #endif
113 #endif
114
115