ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mtu/src/mg_arbre.h
Revision: 1158
Committed: Thu Jun 13 22:18:49 2024 UTC (11 months, 1 week ago) by francois
Content type: text/plain
File size: 4477 byte(s)
Log Message:
compatibilité Ubuntu 22.04
Suppression des refeences à Windows
Ajout d'une banière

File Contents

# User Rev Content
1 francois 1158 //####//------------------------------------------------------------
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 francois 686 #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 couturad 740 class MG_ASSEMBLAGE;
35 francois 686 class MG_OPERATEUR_BOOLEAN;
36     class MG_GESTIONNAIRE;
37 francois 690 class MG_GEOMETRIE;
38 francois 686
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 couturad 740 typedef std::map<unsigned long,MG_ASSEMBLAGE*,std::less<unsigned long> > LISTE_MG_ASSEMBLAGE;
44 francois 686
45 couturad 740
46 francois 686 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 couturad 740
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 francois 686
92 francois 763 virtual void enregistrer(std::ostream& o,double version);
93 francois 910 virtual void get_fichier_dependant(std::vector<std::string> &liste_fichier);
94    
95    
96 francois 686 void change_gestionnaire(class MG_GESTIONNAIRE* mggest);
97     MG_GESTIONNAIRE* get_gestionnaire(void);
98    
99 francois 731 virtual MG_GEOMETRIE* evaluer_geometrie(char *nom_fichier,bool export_step,bool import_stl,double precision=1e-6,double eps=1);
100 francois 747 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 francois 686
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 couturad 740 LISTE_MG_ASSEMBLAGE lst_mg_assemblage;
108 francois 686 std::string nom;
109    
110     };
111    
112    
113    
114     #endif
115     #endif
116    
117