ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/ot_geometrie.h
Revision: 966
Committed: Thu Sep 6 16:46:34 2018 UTC (6 years, 8 months ago) by couturad
Content type: text/plain
File size: 8708 byte(s)
Log Message:
Ajout de l'histogramme a MAGIC_PLOT
Ajout d'une sortie OK ou FAIL (int) au MAILLEUR afin de gerer certaines exceptions
Ajout d'une phase RSA a la fin du generateur DCR

File Contents

# User Rev Content
1 couturad 907 //------------------------------------------------------------
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_element_geometrique.h
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 � 11H22
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23    
24    
25    
26     #ifndef _OT_GEOMETRIE_
27     #define _OT_GEOMETRIE_
28    
29     #ifdef WINDOWS_VERSION
30     #ifdef BUILT_DLL_GEOMETRIE
31     #define DLLPORTGEOMETRIE __declspec(dllexport)
32     #else
33     #define DLLPORTGEOMETRIE __declspec(dllimport)
34     #endif
35     #else
36     #define DLLPORTGEOMETRIE
37     #endif
38    
39     #include <vector>
40    
41     #include "mg_point.h"
42     #include "mg_sommet.h"
43     #include "mg_arete.h"
44     #include "mg_face.h"
45     #include "mg_volume.h"
46    
47     #ifdef ALL_OCC
48     #include "occ_point.h"
49     #include "occ_courbe.h"
50     #include "occ_surface.h"
51     #include "occ_sommet.h"
52     #include "occ_arete.h"
53     #include "occ_boucle.h"
54     #include "occ_face.h"
55     #include "occ_coquille.h"
56     #include "occ_volume.h"
57     //#include "occ_volume.h"
58     #endif
59    
60     class DLLPORTGEOMETRIE OT_GEOMETRIE
61     {
62     public:
63     OT_GEOMETRIE();
64     ~OT_GEOMETRIE();
65 couturad 951 enum TYPE_LIEN_TOPOLOGIQUE{AUCUN=0,SOMMET=1,ARETE=2,FACE=3,VOLUME=4};
66     static int get_lien_topologique(MG_ELEMENT_TOPOLOGIQUE *mgeletopo1,MG_ELEMENT_TOPOLOGIQUE *mgeletopo2);
67 couturad 934
68     static int declage_mg_face_mg_face(MG_FACE* mgface1,MG_FACE* mgface2,double &moyenne_distance,double &ecart_type_distance,int nb_pas=32,double eps=0.000001);
69 couturad 907 static int projection_orthogonale_sur_mg_arete(double *xyz,MG_ARETE* mgarete,double &t);
70     static int projection_orthogonale_sur_mg_face(double *xyz,MG_FACE* mgface,double* xyz2);
71 couturad 911 static int projection_au_plus_pres_sur_mg_face(double *xyz1,MG_FACE* mgface1,MG_FACE* mgface2,double* xyz2);
72     static int projection_au_plus_pres_sur_mg_arete(double *xyz,MG_ARETE* mgarete,double* xyz2);
73 couturad 907 static void get_param_face(MG_FACE* mgface,double &umin,double &umax,double &vmin,double &vmax);
74    
75 couturad 951 static int get_distance_min_mg_eletopo_mg_eletopo(MG_ELEMENT_TOPOLOGIQUE *mgeletopo1,MG_ELEMENT_TOPOLOGIQUE *mgeletopo2,double &distance);
76 couturad 907 static int get_distance_min_mg_volume_mg_volume(MG_VOLUME* mgvolume1,MG_VOLUME* mgvolume2,double &distance);
77     static int get_distance_min_mg_face_mg_volume(MG_FACE* mgface,MG_VOLUME* mgvolume,double &distance);
78 couturad 911 static int get_distance_min_mg_face_mg_face(MG_FACE* mgface1,MG_FACE* mgface2,double &distance);
79 couturad 966 static int get_distance_min_mg_face_mg_face_echantillonnage(MG_FACE* mgface1,MG_FACE* mgface2,double &distance,int nb_pas=32);
80 couturad 911 static int get_distance_min_liste_mg_face_mg_volume(TPL_MAP_ENTITE<MG_FACE*> &map_face,MG_VOLUME* mgvolume,double &distance);
81     static int get_distance_min_mg_arete_mg_arete(MG_ARETE* mgarete1,MG_ARETE* mgarete2,double &distance);
82 couturad 907
83 couturad 951 static double get_volume_intersection(MG_VOLUME* mgvolume1,MG_VOLUME* mgvolume2,double eps=0.001);
84 couturad 919 static double get_volume(MG_VOLUME* mgvolume,double eps=0.001);
85 couturad 911 static double get_longueur(MG_ARETE* mgarete);
86 couturad 919 static double get_aire(MG_FACE* mgface,double eps=0.001);
87 couturad 911
88 couturad 951 static int est_dans_mg_face(double *xyz,MG_FACE* mgface);
89     static void get_map_mg_ele_topo_sous_jacent(MG_ELEMENT_TOPOLOGIQUE *mgeletopo,TPL_MAP_ENTITE<MG_SOMMET*> &map_sommet,TPL_MAP_ENTITE<MG_ARETE*> &map_arete,TPL_MAP_ENTITE<MG_FACE*> &map_face);
90 couturad 907 static void get_map_mg_sommet_sous_jacent(MG_ELEMENT_TOPOLOGIQUE *mgeletopo,TPL_MAP_ENTITE<MG_SOMMET*> &map_sommet);
91     static void get_map_mg_arete_sous_jacent(MG_ELEMENT_TOPOLOGIQUE *mgeletopo,TPL_MAP_ENTITE<MG_ARETE*> &map_arete);
92     static void get_map_mg_face_sous_jacent(MG_ELEMENT_TOPOLOGIQUE *mgeletopo,TPL_MAP_ENTITE<MG_FACE*> &map_face);
93    
94     static void get_map_mg_point_sous_jacent(MG_ELEMENT_TOPOLOGIQUE *mgeletopo,TPL_MAP_ENTITE<MG_POINT*> &map_point);
95     static void get_map_mg_courbe_sous_jacent(MG_ELEMENT_TOPOLOGIQUE *mgeletopo,TPL_MAP_ENTITE<MG_COURBE*> &map_courbe);
96     static void get_map_mg_surface_sous_jacent(MG_ELEMENT_TOPOLOGIQUE *mgeletopo,TPL_MAP_ENTITE<MG_SURFACE*> &map_surface);
97    
98     static void get_map_mg_element_sous_jacent(MG_SOMMET* sommet,
99     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
100     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
101     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
102     static void get_map_mg_element_sous_jacent(MG_COSOMMET* cosommet,
103     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
104     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
105     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
106     static void get_map_mg_element_sous_jacent(MG_ARETE* arete,
107     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
108     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
109     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
110     static void get_map_mg_element_sous_jacent(MG_COARETE* coarete,
111     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
112     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
113     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
114     static void get_map_mg_element_sous_jacent(MG_BOUCLE* boucle,
115     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
116     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
117     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
118     static void get_map_mg_element_sous_jacent(MG_POUTRE* poutre,
119     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
120     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
121     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
122     static void get_map_mg_element_sous_jacent(MG_FACE* face,
123     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
124     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
125     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
126     static void get_map_mg_element_sous_jacent(MG_COFACE* coface,
127     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
128     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
129     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
130     static void get_map_mg_element_sous_jacent(MG_COQUILLE* coquille,
131     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
132     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
133     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
134     static void get_map_mg_element_sous_jacent(MG_VOLUME* volume,
135     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
136     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
137     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
138     static void get_map_mg_element_sous_jacent(MG_COQUE* coque,
139     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
140     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
141     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
142     static void get_map_mg_element_sous_jacent(MG_ELEMENT_TOPOLOGIQUE* mg_element_topologique,
143     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
144     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
145     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
146     static void get_map_mg_element_sous_jacent(MG_ELEMENT_COTOPOLOGIQUE* mg_element_cotopologique,
147     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
148     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
149     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
150    
151    
152     private:
153     };
154    
155     #endif