ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/mg_geometrie.h
Revision: 711
Committed: Thu Sep 3 16:12:21 2015 UTC (9 years, 8 months ago) by francois
Content type: text/plain
File size: 13090 byte(s)
Log Message:
ajout d'une fonction de geometrie pour saisir une courbe de traction pour un materiau

File Contents

# User Rev Content
1 francois 283 //------------------------------------------------------------
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_geometrie.h
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 � 11H22
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23     #ifndef __MGGEOMETRIE_
24     #define __MGGEOMETRIE_
25    
26     #ifdef WINDOWS_VERSION
27     #ifdef BUILT_DLL_GEOMETRIE
28     #define DLLPORTGEOMETRIE __declspec(dllexport)
29     #else
30     #define DLLPORTGEOMETRIE __declspec(dllimport)
31     #endif
32     #else
33     #define DLLPORTGEOMETRIE
34     #endif
35    
36    
37     #ifdef BORLANDCPP
38     #include <map.h>
39     #include <set.h>
40     #else
41     #include <map>
42     #include <set>
43     #endif
44    
45    
46     #include "mg_identificateur.h"
47     #include "mg_point.h"
48     #include "mg_courbe.h"
49     #include "mg_surface.h"
50     #include "mg_sommet.h"
51     #include "mg_cosommet.h"
52     #include "mg_arete.h"
53     #include "mg_coarete.h"
54     #include "mg_boucle.h"
55     #include "mg_coface.h"
56     #include "mg_face.h"
57     #include "mg_coquille.h"
58     #include "mg_volume.h"
59     #include "mg_poutre.h"
60     #include "mg_coque.h"
61     #include "mg_visu_courbe.h"
62     #include "mg_groupe_topologique.h"
63 francois 711 #include "mg_geom_fonction.h"
64 francois 283
65    
66 francois 375 #include "mg_definition.h"
67 francois 283
68    
69     typedef std::set<MG_IDENTIFICATEUR*,inf<MG_IDENTIFICATEUR*> > LISTE_ENTITE;
70     typedef std::map<unsigned long,MG_POINT*,std::less<unsigned long> > LISTE_MG_POINT;
71     typedef std::map<unsigned long,MG_COURBE*,std::less<unsigned long> > LISTE_MG_COURBE;
72     typedef std::map<unsigned long,MG_SURFACE*,std::less<unsigned long> > LISTE_MG_SURFACE;
73     typedef std::map<unsigned long,MG_SOMMET*,std::less<unsigned long> > LISTE_MG_SOMMET;
74     typedef std::map<unsigned long,MG_COSOMMET*,std::less<unsigned long> > LISTE_MG_COSOMMET;
75     typedef std::map<unsigned long,MG_ARETE*,std::less<unsigned long> > LISTE_MG_ARETE;
76     typedef std::map<unsigned long,MG_COARETE*,std::less<unsigned long> > LISTE_MG_COARETE;
77     typedef std::map<unsigned long,MG_BOUCLE*,std::less<unsigned long> > LISTE_MG_BOUCLE;
78     typedef std::map<unsigned long,MG_FACE*,std::less<unsigned long> > LISTE_MG_FACE;
79     typedef std::map<unsigned long,MG_COFACE*,std::less<unsigned long> > LISTE_MG_COFACE;
80     typedef std::map<unsigned long,MG_COQUILLE*,std::less<unsigned long> > LISTE_MG_COQUILLE;
81     typedef std::map<unsigned long,MG_VOLUME*,std::less<unsigned long> > LISTE_MG_VOLUME;
82     typedef std::map<unsigned long,MG_COQUE*,std::less<unsigned long> > LISTE_MG_COQUE;
83     typedef std::map<unsigned long,MG_POUTRE*,std::less<unsigned long> > LISTE_MG_POUTRE;
84     typedef std::map<unsigned long,MG_VISU_COURBE*,std::less<unsigned long> > LISTE_MG_VISU_COURBE;
85     typedef std::map<unsigned long,MG_GROUPE_TOPOLOGIQUE*,std::less<unsigned long> > LISTE_MG_GROUPE_TOPOLOGIQUE;
86 francois 711 typedef std::map<unsigned long,MG_GEOM_FONCTION*,std::less<unsigned long> > LISTE_MG_GEOM_FONCTION;
87 francois 283
88    
89    
90     DLLPORTGEOMETRIE std::ostream& operator << (std::ostream& o,class MG_GEOMETRIE& geo);
91    
92     class DLLPORTGEOMETRIE MG_GEOMETRIE : public MG_IDENTIFICATEUR
93     {
94     public:
95     MG_GEOMETRIE(char *type,const char *nom=NULL,double unite=1.0,double eps=1e-6);
96     MG_GEOMETRIE(char *type,unsigned long num,const char *nom=NULL,double unite=1.0,double eps=1e-6);
97     virtual ~MG_GEOMETRIE();
98    
99     int ajouter_mg_point(MG_POINT *mgpt);
100     MG_POINT* get_mg_pointid(unsigned long num);
101     MG_POINT* get_mg_point(unsigned int num);
102     MG_POINT* get_premier_point(LISTE_MG_POINT::iterator & it);
103     MG_POINT* get_suivant_point(LISTE_MG_POINT::iterator & it);
104     unsigned int get_nb_mg_point(void);
105     int supprimer_mg_pointid(unsigned long num);
106     int supprimer_mg_point(unsigned int num);
107     void supprimer_tout_mg_point(void);
108    
109     int ajouter_mg_courbe(MG_COURBE *mgcrb);
110     MG_COURBE* get_mg_courbeid(unsigned long num);
111     MG_COURBE* get_mg_courbe(unsigned int num);
112     MG_COURBE* get_premier_courbe(LISTE_MG_COURBE::iterator & it) ;
113     MG_COURBE* get_suivant_courbe(LISTE_MG_COURBE::iterator & it) ;
114     unsigned int get_nb_mg_courbe(void);
115     int supprimer_mg_courbeid(unsigned long num);
116     int supprimer_mg_courbe(unsigned int num);
117     void supprimer_tout_mg_courbe(void);
118    
119    
120     int ajouter_mg_surface(MG_SURFACE *mgsrf);
121     MG_SURFACE* get_mg_surfaceid(unsigned long num);
122     MG_SURFACE* get_mg_surface(unsigned int num);
123     MG_SURFACE* get_premier_surface(LISTE_MG_SURFACE::iterator & it);
124     MG_SURFACE* get_suivant_surface(LISTE_MG_SURFACE::iterator & it);
125     unsigned int get_nb_mg_surface(void);
126     int supprimer_mg_surfaceid(unsigned long num);
127     int supprimer_mg_surface(unsigned int num);
128     void supprimer_tout_mg_surface(void);
129    
130    
131     int ajouter_mg_sommet(MG_SOMMET *mgsom);
132 francois 526 class MG_SOMMET_NOEUD* ajouter_mg_sommet_noeud(MG_NOEUD *noeud);
133 francois 283 MG_SOMMET* get_mg_sommetid(unsigned long num);
134     MG_SOMMET* get_mg_sommetid(std::string id);
135     MG_SOMMET* get_mg_sommet(unsigned int num);
136     MG_SOMMET* get_premier_sommet(LISTE_MG_SOMMET::iterator & it) ;
137     MG_SOMMET* get_suivant_sommet(LISTE_MG_SOMMET::iterator & it) ;
138     unsigned int get_nb_mg_sommet(void);
139     int supprimer_mg_sommetid(unsigned long num);
140     int supprimer_mg_sommet(unsigned int num);
141     void supprimer_tout_mg_sommet(void);
142    
143     int ajouter_mg_arete(MG_ARETE *mgarete);
144     MG_ARETE* get_mg_areteid(unsigned long num);
145     MG_ARETE* get_mg_areteid(std::string id);
146     MG_ARETE* get_mg_arete(unsigned int num);
147     MG_ARETE* get_premier_arete(LISTE_MG_ARETE::iterator & it);
148     MG_ARETE* get_suivant_arete(LISTE_MG_ARETE::iterator & it);
149     unsigned int get_nb_mg_arete(void);
150     int supprimer_mg_areteid(unsigned long num);
151     int supprimer_mg_arete(unsigned int num);
152     void supprimer_tout_mg_arete(void);
153    
154     int ajouter_mg_boucle(MG_BOUCLE *mgboucle,MG_FACE* mgface);
155     int ajouter_mg_boucle(MG_BOUCLE *mgboucle,MG_POUTRE* mgpoutre);
156     MG_BOUCLE* get_mg_boucleid(unsigned long num);
157     MG_BOUCLE* get_mg_boucle(unsigned int num);
158     MG_BOUCLE* get_premier_boucle(LISTE_MG_BOUCLE::iterator & it);
159     MG_BOUCLE* get_suivant_boucle(LISTE_MG_BOUCLE::iterator & it);
160     unsigned int get_nb_mg_boucle(void);
161     int supprimer_mg_boucleid(unsigned long num);
162     int supprimer_mg_boucle(unsigned int num);
163     void supprimer_tout_mg_boucle(void);
164    
165    
166     int ajouter_mg_face(MG_FACE *mgface);
167     MG_FACE* get_mg_faceid(unsigned long num);
168     MG_FACE* get_mg_faceid(std::string num);
169     MG_FACE* get_mg_face(unsigned int num);
170     MG_FACE* get_premier_face(LISTE_MG_FACE::iterator & it);
171     MG_FACE* get_suivant_face(LISTE_MG_FACE::iterator & it);
172     unsigned int get_nb_mg_face(void);
173     int supprimer_mg_faceid(unsigned long num);
174     int supprimer_mg_face(unsigned int num);
175     void supprimer_tout_mg_face(void);
176    
177     int ajouter_mg_coquille(MG_COQUILLE *mgcoq,MG_VOLUME *mgvol);
178     int ajouter_mg_coquille(MG_COQUILLE *mgcoq,MG_COQUE *mgcoque);
179     MG_COQUILLE* get_mg_coquilleid(unsigned long num);
180     MG_COQUILLE* get_mg_coquille(unsigned int num);
181     MG_COQUILLE* get_premier_coquille(LISTE_MG_COQUILLE::iterator & it);
182     MG_COQUILLE* get_suivant_coquille(LISTE_MG_COQUILLE::iterator & it) ;
183     unsigned int get_nb_mg_coquille(void);
184     int supprimer_mg_coquilleid(unsigned long num);
185     int supprimer_mg_coquille(unsigned int num);
186     void supprimer_tout_mg_coquille(void);
187    
188     int ajouter_mg_volume(MG_VOLUME *mgvol);
189     MG_VOLUME* get_mg_volumeid(unsigned long num);
190     MG_VOLUME* get_mg_volumeid(std::string id);
191     MG_VOLUME* get_mg_volume(unsigned int num);
192     MG_VOLUME* get_premier_volume(LISTE_MG_VOLUME::iterator & it) ;
193     MG_VOLUME* get_suivant_volume(LISTE_MG_VOLUME::iterator & it) ;
194     unsigned int get_nb_mg_volume(void);
195     int supprimer_mg_volumeid(unsigned long num);
196     int supprimer_mg_volume(unsigned int num);
197     void supprimer_tout_mg_volume(void);
198    
199    
200     int ajouter_mg_coque(MG_COQUE *mgvol);
201     MG_COQUE* get_mg_coqueid(unsigned long num);
202     MG_COQUE* get_mg_coqueid(std::string id);
203     MG_COQUE* get_mg_coque(unsigned int num);
204     MG_COQUE* get_premier_coque(LISTE_MG_COQUE::iterator & it);
205     MG_COQUE* get_suivant_coque(LISTE_MG_COQUE::iterator & it) ;
206     unsigned int get_nb_mg_coque(void);
207     int supprimer_mg_coqueid(unsigned long num);
208     int supprimer_mg_coque(unsigned int num);
209     void supprimer_tout_mg_coque(void);
210    
211    
212     int ajouter_mg_poutre(MG_POUTRE *mgvol);
213     MG_POUTRE* get_mg_poutreid(unsigned long num);
214     MG_POUTRE* get_mg_poutreid(std::string id);
215     MG_POUTRE* get_mg_poutre(unsigned int num);
216     MG_POUTRE* get_premier_poutre(LISTE_MG_POUTRE::iterator & it) ;
217     MG_POUTRE* get_suivant_poutre(LISTE_MG_POUTRE::iterator & it) ;
218     unsigned int get_nb_mg_poutre(void);
219     int supprimer_mg_poutreid(unsigned long num);
220     int supprimer_mg_poutre(unsigned int num);
221     void supprimer_tout_mg_poutre(void);
222    
223     int ajouter_mg_groupe_topologique(MG_GROUPE_TOPOLOGIQUE *mgvol);
224     MG_GROUPE_TOPOLOGIQUE* get_mg_groupe_topologiqueid(unsigned long num);
225     MG_GROUPE_TOPOLOGIQUE* get_mg_groupe_topologique(unsigned int num);
226     MG_GROUPE_TOPOLOGIQUE* get_premier_groupe_topologique(LISTE_MG_GROUPE_TOPOLOGIQUE::iterator & it) ;
227     MG_GROUPE_TOPOLOGIQUE* get_suivant_groupe_topologique(LISTE_MG_GROUPE_TOPOLOGIQUE::iterator & it) ;
228     unsigned int get_nb_mg_groupe_topologique(void);
229     int supprimer_mg_groupe_topologiqueid(unsigned long num);
230     int supprimer_mg_groupe_topologique(unsigned int num);
231     void supprimer_tout_mg_groupe_topologique(void);
232    
233 francois 711
234     int ajouter_mg_geom_fonction(MG_GEOM_FONCTION *mggeofon);
235     MG_GEOM_FONCTION* get_mg_geom_fonctionid(unsigned long num);
236     MG_GEOM_FONCTION* get_mg_geom_fonction(unsigned int num);
237     MG_GEOM_FONCTION* get_premier_geom_fonction(LISTE_MG_GEOM_FONCTION::iterator & it) ;
238     MG_GEOM_FONCTION* get_suivant_geom_fonction(LISTE_MG_GEOM_FONCTION::iterator & it) ;
239     unsigned int get_nb_mg_geom_fonction(void);
240     int supprimer_mg_geom_fonctionid(unsigned long num);
241     int supprimer_mg_geom_fonction(unsigned int num);
242     void supprimer_tout_mg_geom_fonction(void);
243 francois 283
244    
245 francois 711
246 francois 283 MG_COSOMMET* ajouter_mg_cosommet(MG_ARETE *mgarete,MG_SOMMET *mgsom);
247     MG_COSOMMET* ajouter_mg_cosommet(unsigned long num,MG_ARETE *mgarete,MG_SOMMET *mgsom);
248     int supprimer_mg_cosommet(MG_COSOMMET* mgcosom);
249    
250    
251     MG_COARETE* ajouter_mg_coarete(MG_ARETE *mgarete,MG_BOUCLE *mgboucle,int sens);
252     MG_COARETE* ajouter_mg_coarete(unsigned long num,MG_ARETE *mgarete,MG_BOUCLE *mgboucle,int sens);
253     int supprimer_mg_coarete(MG_COARETE* mgcoarete);
254    
255    
256     MG_COFACE* ajouter_mg_coface(MG_FACE *mgface,MG_COQUILLE *mgcoq,int sens);
257     MG_COFACE* ajouter_mg_coface(unsigned long num,MG_FACE *mgface,MG_COQUILLE *mgcoq,int sens);
258     int supprimer_mg_coface(MG_COFACE* mgcoface);
259    
260    
261     int ajouter_mg_visu_courbe(MG_VISU_COURBE *mgvcrb);
262     MG_VISU_COURBE* get_mg_visu_courbeid(unsigned long num);
263     MG_VISU_COURBE* get_mg_visu_courbe(unsigned int num);
264     unsigned int get_nb_mg_visu_courbe(void);
265     int supprimer_mg_visu_courbeid(unsigned long num);
266     int supprimer_mg_visu_courbe(unsigned int num);
267     void supprimer_tout_mg_visu_courbe(void);
268    
269     void change_gest_materiau(char* nom);
270     char* get_gest_materiau(void);
271    
272    
273     virtual void enregistrer(std::ostream& o);
274     friend std::ostream& operator << (std::ostream& o,MG_GEOMETRIE& geo);
275    
276     char* get_nom_du_fichier(void);
277     char* get_type_geometrie(void);
278    
279     void cree_entite_visuel(double facteur=1.);
280    
281    
282     void change_gestionnaire(class MG_GESTIONNAIRE* mggest);
283     double get_valeur_unite(void);
284     void change_valeur_unite(double val);
285     double get_valeur_precision(void);
286     void change_valeur_precision(double val);
287    
288     void construit_vectorisation(void);
289     private:
290     char *nom_du_fichier;
291     char type_geo[8];
292    
293     double precision;
294    
295     std::string gest_materiau;
296    
297    
298     LISTE_ENTITE lst_entite;
299     LISTE_MG_POINT lst_mg_point;
300     LISTE_MG_COURBE lst_mg_courbe;
301     LISTE_MG_SURFACE lst_mg_surface;
302     LISTE_MG_SOMMET lst_mg_sommet;
303     LISTE_MG_COSOMMET lst_mg_cosommet;
304     LISTE_MG_ARETE lst_mg_arete;
305     LISTE_MG_COARETE lst_mg_coarete;
306     LISTE_MG_BOUCLE lst_mg_boucle;
307     LISTE_MG_FACE lst_mg_face;
308     LISTE_MG_COFACE lst_mg_coface;
309     LISTE_MG_COQUILLE lst_mg_coquille;
310     LISTE_MG_VOLUME lst_mg_volume;
311     LISTE_MG_COQUE lst_mg_coque;
312     LISTE_MG_POUTRE lst_mg_poutre;
313     LISTE_MG_GROUPE_TOPOLOGIQUE lst_mg_groupe_topologique;
314 francois 711 LISTE_MG_GEOM_FONCTION lst_mg_geom_fonction;
315 francois 283 LISTE_MG_VISU_COURBE lst_mg_visu_courbe;
316     MG_GESTIONNAIRE *gest;
317     double valeur_unite;
318     };
319    
320    
321    
322     #endif
323    
324    
325    
326