ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mtu/src/mg_cg.cpp
Revision: 1158
Committed: Thu Jun 13 22:18:49 2024 UTC (11 months, 1 week ago) by francois
File size: 21532 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_cg.cpp
15     //####//
16     //####//------------------------------------------------------------
17     //####//------------------------------------------------------------
18     //####// COPYRIGHT 2000-2024
19     //####// jeu 13 jun 2024 11:58:55 EDT
20     //####//------------------------------------------------------------
21     //####//------------------------------------------------------------
22 couturad 907 #include "mg_cg.h"
23     #include "mg_gestionnaire.h"
24     #include "mg_geometrie.h"
25     #include "mg_sous_geometrie.h"
26     #include "mg_cg_modele.h"
27     #include "mg_cg_assemblage.h"
28 couturad 926 #include "mg_cg_groupe_forme.h"
29     #include "mg_cg_info.h"
30 couturad 907 #include "mg_arete.h"
31     #include "mg_volume.h"
32     #include "mg_cg_forme.h"
33    
34     #include "mg_cg_forme_arete.h"
35     #include "mg_cg_forme_arete_droite.h"
36    
37     #include "mg_cg_forme_volume.h"
38     #include "mg_cg_forme_volume_boite.h"
39     #include "mg_cg_forme_volume_sphere.h"
40     #include "mg_cg_forme_volume_ellipsoide.h"
41     #include "mg_cg_forme_volume_cylindre.h"
42     #include "mg_cg_forme_volume_cone.h"
43     #include "mg_cg_forme_volume_tore.h"
44     #include "mg_cg_forme_multiple.h"
45     #include "mg_cg_forme_multi_volume.h"
46     #include "mg_cg_op_bool_union.h"
47     #include "mg_cg_op_bool_difference.h"
48     #include "mg_cg_op_bool_intersection.h"
49     #include "mg_cg_op_bool_fragment.h"
50     #include "mg_cg_op_inclusion_matrice.h"
51     #include "mg_cg_op_transf_rotation.h"
52     #include "mg_cg_op_transf_translation.h"
53     #include "mg_cg_op_transf_echelle.h"
54     #ifdef ALL_OCC
55     #include "occ_fonction.h"
56     #include "occ_fonction_v2017.h"
57     #include "occ_cg_forme_arete_droite.h"
58     #include "occ_cg_forme_volume_boite.h"
59     #include "occ_cg_forme_volume_sphere.h"
60     #include "occ_cg_forme_volume_ellipsoide.h"
61     #include "occ_cg_forme_volume_cylindre.h"
62     #include "occ_cg_forme_volume_cone.h"
63     #include "occ_cg_forme_volume_tore.h"
64     #include "occ_cg_op_bool_union.h"
65     #include "occ_cg_op_bool_difference.h"
66     #include "occ_cg_op_bool_intersection.h"
67     #include "occ_cg_op_bool_fragment.h"
68     #include "occ_cg_op_inclusion_matrice.h"
69     #include "occ_cg_op_transf_rotation.h"
70     #include "occ_cg_op_transf_translation.h"
71     #include "occ_cg_op_transf_echelle.h"
72 couturad 951 #include "occ_cg_op_transf_decallage.h"
73 couturad 907 #endif
74    
75 couturad 951 MG_CG_MODELE* MG_CG::creer_MG_CG_MODELE(MG_GESTIONNAIRE* mg_gestionnaire, std::string nom_mgcg_modele,double unite,double eps)
76 couturad 907 {
77     #ifdef ALL_OCC
78 couturad 919 std::string nom_fichier_ocaf = nom_mgcg_modele;
79     nom_fichier_ocaf.append((char*)".ocaf");
80     MG_GEOMETRIE* mg_construction = new MG_GEOMETRIE((char*)"OCCV2017",(char*)nom_fichier_ocaf.c_str(),unite,eps);
81     mg_construction->change_est_construction(true);
82     mg_gestionnaire->ajouter_mg_construction(mg_construction);
83     return new MG_CG_MODELE(mg_gestionnaire,nom_mgcg_modele,mg_construction);
84 couturad 907 #endif
85     }
86    
87 couturad 951 MG_CG_MODELE* MG_CG::creer_MG_CG_MODELE(MG_GESTIONNAIRE* mg_gestionnaire, std::string nom_mgcg_modele, MG_GEOMETRIE* mg_geometrie)
88 couturad 907 {
89     return new MG_CG_MODELE(mg_gestionnaire,nom_mgcg_modele,mg_geometrie);
90     }
91    
92 couturad 951 MG_CG_MODELE* MG_CG::creer_MG_CG_MODELE(MG_GESTIONNAIRE* mg_gestionnaire, std::string nom_mgcg_modele, MG_GEOMETRIE* mg_geometrie, long unsigned int num)
93 couturad 907 {
94     return new MG_CG_MODELE(mg_gestionnaire,nom_mgcg_modele,mg_geometrie,num);
95     }
96    
97 couturad 951 MG_CG_ASSEMBLAGE* MG_CG::creer_MG_CG_ASSEMBLAGE(MG_CG_MODELE* mgcg_modele, std::string nom_mgcg_assemblage)
98 couturad 907 {
99     return new MG_CG_ASSEMBLAGE(mgcg_modele,nom_mgcg_assemblage);
100     }
101    
102 couturad 951 MG_CG_ASSEMBLAGE* MG_CG::creer_MG_CG_ASSEMBLAGE(MG_CG_MODELE* mgcg_modele, long unsigned int num, std::string nom_mgcg_assemblage, MG_SOUS_GEOMETRIE* mg_sous_geometrie)
103 couturad 907 {
104     return new MG_CG_ASSEMBLAGE(mgcg_modele,num,nom_mgcg_assemblage,mg_sous_geometrie);
105     }
106    
107 couturad 951 MG_CG_GROUPE_FORME* MG_CG::creer_MG_CG_GROUPE_FORME(MG_CG_MODELE* mgcg_modele, std::string nom)
108 couturad 926 {
109     return new MG_CG_GROUPE_FORME(mgcg_modele,nom);
110     }
111    
112 couturad 951 MG_CG_GROUPE_FORME* MG_CG::creer_MG_CG_GROUPE_FORME(MG_CG_MODELE* mgcg_modele, long unsigned int num, std::string nom)
113 couturad 926 {
114     return new MG_CG_GROUPE_FORME(mgcg_modele,num,nom);
115     }
116    
117 couturad 951 MG_CG_INFO_STRING* MG_CG::creer_MG_CG_INFO_STRING(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique, std::string identifiant, std::string valeur)
118 couturad 926 {
119     return new MG_CG_INFO_STRING(mg_construction_geometrique,identifiant,valeur);
120     }
121    
122 couturad 951 MG_CG_INFO_STRING* MG_CG::creer_MG_CG_INFO_STRING(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique, long int num, std::string identifiant, std::string valeur)
123 couturad 926 {
124     return new MG_CG_INFO_STRING(mg_construction_geometrique,num,identifiant,valeur);
125     }
126    
127 couturad 951 MG_CG_INFO_DOUBLE* MG_CG::creer_MG_CG_INFO_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique, std::string identifiant, double valeur)
128 couturad 926 {
129     return new MG_CG_INFO_DOUBLE(mg_construction_geometrique,identifiant,valeur);
130     }
131    
132 couturad 951 MG_CG_INFO_DOUBLE* MG_CG::creer_MG_CG_INFO_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique, long int num, std::string identifiant, double valeur)
133 couturad 926 {
134     return new MG_CG_INFO_DOUBLE(mg_construction_geometrique,num,identifiant,valeur);
135     }
136    
137 couturad 951 MG_CG_INFO_VCT_DOUBLE* MG_CG::creer_MG_CG_INFO_VCT_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique, std::string identifiant, std::vector< double >& valeur)
138 couturad 926 {
139     return new MG_CG_INFO_VCT_DOUBLE(mg_construction_geometrique,identifiant,valeur);
140     }
141    
142 couturad 951 MG_CG_INFO_VCT_DOUBLE* MG_CG::creer_MG_CG_INFO_VCT_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique, long int num, std::string identifiant, std::vector< double >& valeur)
143 couturad 926 {
144     return new MG_CG_INFO_VCT_DOUBLE(mg_construction_geometrique,num,identifiant,valeur);
145     }
146    
147 couturad 951 MG_CG_INFO_VCT_DOUBLE* MG_CG::creer_MG_CG_INFO_VCT_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique, std::string identifiant, long int nb, double* tab)
148 couturad 926 {
149     std::vector<double> vct_double;
150     for(long i=0;i<nb;i++)
151     {
152     vct_double.push_back(tab[i]);
153     }
154     return new MG_CG_INFO_VCT_DOUBLE(mg_construction_geometrique,identifiant,vct_double);
155     }
156    
157 couturad 951 MG_CG_INFO_VCT_DOUBLE* MG_CG::creer_MG_CG_INFO_VCT_DOUBLE(MG_CONSTRUCTION_GEOMETRIQUE* mg_construction_geometrique, long int num, std::string identifiant, long int nb, double* tab)
158 couturad 926 {
159     std::vector<double> vct_double;
160     for(long i=0;i<nb;i++)
161     {
162     vct_double.push_back(tab[i]);
163     }
164     return new MG_CG_INFO_VCT_DOUBLE(mg_construction_geometrique,num,identifiant,vct_double);
165     }
166    
167 couturad 911 MG_CG_FORME_ARETE* MG_CG::creer_MG_CG_FORME_ARETE(MG_CG_MODELE* mgcg_modele,int provenance, MG_ARETE* mg_arete)
168 couturad 907 {
169 couturad 911 return new MG_CG_FORME_ARETE(mgcg_modele,provenance,mg_arete);
170 couturad 907 }
171    
172 couturad 911 MG_CG_FORME_ARETE* MG_CG::creer_MG_CG_FORME_ARETE(MG_CG_MODELE* mgcg_modele,int provenance, int etat, long unsigned int num, MG_ARETE* mg_arete)
173 couturad 907 {
174 couturad 911 return new MG_CG_FORME_ARETE(mgcg_modele,provenance,etat,num,mg_arete);
175 couturad 907 }
176    
177 couturad 911 MG_CG_FORME_ARETE_DROITE* MG_CG::creer_MG_CG_FORME_ARETE_DROITE(MG_CG_MODELE* mgcg_modele,double x1, double y1, double z1, double x2, double y2, double z2)
178 couturad 907 {
179     #ifdef ALL_OCC
180 couturad 911 return new OCC_CG_FORME_ARETE_DROITE(mgcg_modele,x1,y1,z1,x2,y2,z2);
181 couturad 907 #endif
182     }
183    
184 couturad 911 MG_CG_FORME_ARETE_DROITE* MG_CG::creer_MG_CG_FORME_ARETE_DROITE(MG_CG_MODELE* mgcg_modele,int etat, long unsigned int num, MG_ARETE* mg_arete, double x1, double y1, double z1, double x2, double y2, double z2)
185 couturad 907 {
186     #ifdef ALL_OCC
187 couturad 911 return new OCC_CG_FORME_ARETE_DROITE(mgcg_modele,etat,num,mg_arete,x1,y1,z1,x2,y2,z2);
188 couturad 907 #endif
189     }
190    
191 couturad 911 MG_CG_FORME_VOLUME* MG_CG::creer_MG_CG_FORME_VOLUME(MG_CG_MODELE* mgcg_modele,int provenance, MG_VOLUME* mg_volume)
192 couturad 907 {
193 couturad 911 return new MG_CG_FORME_VOLUME(mgcg_modele,provenance,mg_volume);
194 couturad 907 }
195    
196 couturad 911 MG_CG_FORME_VOLUME* MG_CG::creer_MG_CG_FORME_VOLUME(MG_CG_MODELE* mgcg_modele,int provenance, int etat, long unsigned int num, MG_VOLUME* mg_volume)
197 couturad 907 {
198 couturad 911 return new MG_CG_FORME_VOLUME(mgcg_modele,provenance,etat,num,mg_volume);
199 couturad 907 }
200    
201 couturad 911 MG_CG_FORME_VOLUME_BOITE* MG_CG::creer_MG_CG_FORME_VOLUME_BOITE(MG_CG_MODELE* mgcg_modele,double x1, double y1, double z1, double x2, double y2, double z2)
202 couturad 907 {
203     #ifdef ALL_OCC
204 couturad 911 return new OCC_CG_FORME_VOLUME_BOITE(mgcg_modele,x1,y1,z1,x2,y2,z2);
205 couturad 907 #endif
206     }
207    
208 couturad 911 MG_CG_FORME_VOLUME_BOITE* MG_CG::creer_MG_CG_FORME_VOLUME_BOITE(MG_CG_MODELE* mgcg_modele,int etat, long unsigned int num, MG_VOLUME* mg_volume, double x1, double y1, double z1, double x2, double y2, double z2)
209 couturad 907 {
210     #ifdef ALL_OCC
211 couturad 911 return new OCC_CG_FORME_VOLUME_BOITE(mgcg_modele,etat,num,mg_volume,x1,y1,z1,x2,y2,z2);
212 couturad 907 #endif
213     }
214    
215 couturad 911 MG_CG_FORME_VOLUME_SPHERE* MG_CG::creer_MG_CG_FORME_VOLUME_SPHERE(MG_CG_MODELE* mgcg_modele,double centre_x, double centre_y, double centre_z, double rayon)
216 couturad 907 {
217     #ifdef ALL_OCC
218 couturad 911 return new OCC_CG_FORME_VOLUME_SPHERE(mgcg_modele,centre_x,centre_y,centre_z,rayon);
219 couturad 907 #endif
220     }
221    
222 couturad 911 MG_CG_FORME_VOLUME_SPHERE* MG_CG::creer_MG_CG_FORME_VOLUME_SPHERE(MG_CG_MODELE* mgcg_modele,int etat, long unsigned int num, MG_VOLUME* mg_volume, double centre_x, double centre_y, double centre_z, double rayon)
223 couturad 907 {
224     #ifdef ALL_OCC
225 couturad 911 return new OCC_CG_FORME_VOLUME_SPHERE(mgcg_modele,etat,num,mg_volume,centre_x,centre_y,centre_z,rayon);
226 couturad 907 #endif
227     }
228    
229 couturad 911 MG_CG_FORME_VOLUME_ELLIPSOIDE* MG_CG::creer_MG_CG_FORME_VOLUME_ELLIPSOIDE(MG_CG_MODELE* mgcg_modele,double centre_x, double centre_y, double centre_z, double direction_x, double direction_y, double direction_z, double rayon_majeur, double rayon_mineur)
230 couturad 907 {
231     #ifdef ALL_OCC
232 couturad 911 return new OCC_CG_FORME_VOLUME_ELLIPSOIDE(mgcg_modele,centre_x,centre_y,centre_z,direction_x,direction_y,direction_z,rayon_majeur,rayon_mineur);
233 couturad 907 #endif
234     }
235    
236 couturad 911 MG_CG_FORME_VOLUME_ELLIPSOIDE* MG_CG::creer_MG_CG_FORME_VOLUME_ELLIPSOIDE(MG_CG_MODELE* mgcg_modele,int etat, long unsigned int num, MG_VOLUME* mg_volume, double centre_x, double centre_y, double centre_z, double direction_x, double direction_y, double direction_z, double rayon_majeur, double rayon_mineur)
237 couturad 907 {
238     #ifdef ALL_OCC
239 couturad 911 return new OCC_CG_FORME_VOLUME_ELLIPSOIDE(mgcg_modele,etat,num,mg_volume,centre_x,centre_y,centre_z,direction_x,direction_y,direction_z,rayon_majeur,rayon_mineur);
240 couturad 907 #endif
241     }
242    
243 couturad 911 MG_CG_FORME_VOLUME_CYLINDRE* MG_CG::creer_MG_CG_FORME_VOLUME_CYLINDRE(MG_CG_MODELE* mgcg_modele,double extremite_x, double extremite_y, double extremite_z, double direction_x, double direction_y, double direction_z, double rayon, double longueur)
244 couturad 907 {
245     #ifdef ALL_OCC
246 couturad 911 return new OCC_CG_FORME_VOLUME_CYLINDRE(mgcg_modele,extremite_x,extremite_y,extremite_z,direction_x,direction_y,direction_z,rayon,longueur);
247 couturad 907 #endif
248     }
249    
250 couturad 911 MG_CG_FORME_VOLUME_CYLINDRE* MG_CG::creer_MG_CG_FORME_VOLUME_CYLINDRE(MG_CG_MODELE* mgcg_modele,int etat, long unsigned int num, MG_VOLUME* mg_volume, double extremite_x, double extremite_y, double extremite_z, double direction_x, double direction_y, double direction_z, double rayon, double longueur)
251 couturad 907 {
252     #ifdef ALL_OCC
253 couturad 911 return new OCC_CG_FORME_VOLUME_CYLINDRE(mgcg_modele,etat,num,mg_volume,extremite_x,extremite_y,extremite_z,direction_x,direction_y,direction_z,rayon,longueur);
254 couturad 907 #endif
255     }
256    
257 couturad 911 MG_CG_FORME_VOLUME_CONE* MG_CG::creer_MG_CG_FORME_VOLUME_CONE(MG_CG_MODELE* mgcg_modele,double extremite_x, double extremite_y, double extremite_z, double direction_x, double direction_y, double direction_z, double rayon, double longueur)
258 couturad 907 {
259     #ifdef ALL_OCC
260 couturad 911 return new OCC_CG_FORME_VOLUME_CONE(mgcg_modele,extremite_x,extremite_y,extremite_z,direction_x,direction_y,direction_z,rayon,longueur);
261 couturad 907 #endif
262     }
263    
264 couturad 911 MG_CG_FORME_VOLUME_CONE* MG_CG::creer_MG_CG_FORME_VOLUME_CONE(MG_CG_MODELE* mgcg_modele,int etat, long unsigned int num, MG_VOLUME* mg_volume, double extremite_x, double extremite_y, double extremite_z, double direction_x, double direction_y, double direction_z, double rayon, double longueur)
265 couturad 907 {
266     #ifdef ALL_OCC
267 couturad 911 return new OCC_CG_FORME_VOLUME_CONE(mgcg_modele,etat,num,mg_volume,extremite_x,extremite_y,extremite_z,direction_x,direction_y,direction_z,rayon,longueur);
268 couturad 907 #endif
269     }
270    
271 ghazal 1092 MG_CG_FORME_VOLUME_TORE* MG_CG::creer_MG_CG_FORME_VOLUME_TORE(MG_CG_MODELE* mgcg_modele,double centre_x, double centre_y, double centre_z, double direction_x, double direction_y, double direction_z, double rayon_cercle, double rayon_tore, double angle_seg, double angle_rotation)
272 couturad 907 {
273     #ifdef ALL_OCC
274 ghazal 1092 return new OCC_CG_FORME_VOLUME_TORE(mgcg_modele,centre_x,centre_y,centre_z,direction_x,direction_y,direction_z,rayon_cercle,rayon_tore,angle_seg,angle_rotation);
275 couturad 907 #endif
276     }
277    
278 ghazal 1092 MG_CG_FORME_VOLUME_TORE* MG_CG::creer_MG_CG_FORME_VOLUME_TORE(MG_CG_MODELE* mgcg_modele,int etat, long unsigned int num, MG_VOLUME* mg_volume, double centre_x, double centre_y, double centre_z, double direction_x, double direction_y, double direction_z, double rayon_cercle, double rayon_tore, double angle_seg, double angle_rotation)
279 couturad 907 {
280     #ifdef ALL_OCC
281 ghazal 1092 return new OCC_CG_FORME_VOLUME_TORE(mgcg_modele,etat,num,mg_volume,centre_x,centre_y,centre_z,direction_x,direction_y,direction_z,rayon_cercle,rayon_tore,angle_seg,angle_rotation);
282 couturad 907 #endif
283     }
284    
285 couturad 911 MG_CG_FORME_MULTIPLE* MG_CG::creer_MG_CG_FORME_MULTIPLE(MG_CG_MODELE* mgcg_modele,int provenance, std::vector< MG_ELEMENT_TOPOLOGIQUE* >& vector_mg_element_topologique, std::vector< MG_ELEMENT_COTOPOLOGIQUE* >& vector_mg_element_cotopologique)
286 couturad 907 {
287 couturad 911 return new MG_CG_FORME_MULTIPLE(mgcg_modele,provenance,vector_mg_element_topologique,vector_mg_element_cotopologique);
288 couturad 907 }
289    
290 couturad 911 MG_CG_FORME_MULTIPLE* MG_CG::creer_MG_CG_FORME_MULTIPLE(MG_CG_MODELE* mgcg_modele,int provenance, int etat, long unsigned int num, std::vector< MG_ELEMENT_TOPOLOGIQUE* >& vector_mg_element_topologique, std::vector< MG_ELEMENT_COTOPOLOGIQUE* >& vector_mg_element_cotopologique)
291 couturad 907 {
292 couturad 911 return new MG_CG_FORME_MULTIPLE(mgcg_modele,provenance,etat,num,vector_mg_element_topologique,vector_mg_element_cotopologique);
293 couturad 907 }
294    
295 couturad 911 MG_CG_FORME_MULTI_VOLUME* MG_CG::creer_MG_CG_FORME_MULTI_VOLUME(MG_CG_MODELE* mgcg_modele,int provenance, std::vector< MG_VOLUME* >& vector_mg_volume)
296 couturad 907 {
297 couturad 911 return new MG_CG_FORME_MULTI_VOLUME(mgcg_modele,provenance,vector_mg_volume);
298 couturad 907 }
299    
300 couturad 911 MG_CG_FORME_MULTI_VOLUME* MG_CG::creer_MG_CG_FORME_MULTI_VOLUME(MG_CG_MODELE* mgcg_modele,int provenance, int etat, long unsigned int num, std::vector< MG_VOLUME* >& vector_mg_volume)
301 couturad 907 {
302 couturad 911 return new MG_CG_FORME_MULTI_VOLUME(mgcg_modele,provenance,etat,num,vector_mg_volume);
303 couturad 907 }
304    
305 couturad 911 MG_CG_OP_BOOL_UNION* MG_CG::creer_MG_CG_OP_BOOL_UNION(MG_CG_MODELE* mgcg_modele,int semantique, MG_CG_FORME* mgcg_forme_entree_1, MG_CG_FORME* mgcg_forme_entree_2)
306 couturad 907 {
307     #ifdef ALL_OCC
308 couturad 911 return new OCC_CG_OP_BOOL_UNION(mgcg_modele,semantique,mgcg_forme_entree_1,mgcg_forme_entree_2);
309 couturad 907 #endif
310     }
311    
312 couturad 911 MG_CG_OP_BOOL_UNION* MG_CG::creer_MG_CG_OP_BOOL_UNION(MG_CG_MODELE* mgcg_modele,int semantique, int etat, long unsigned int num, MG_CG_FORME* mgcg_forme_entree_1, MG_CG_FORME* mgcg_forme_entree_2, long int id_mgcg_forme_sortie)
313 couturad 907 {
314     #ifdef ALL_OCC
315 couturad 911 return new OCC_CG_OP_BOOL_UNION(mgcg_modele,semantique,etat,num,mgcg_forme_entree_1,mgcg_forme_entree_2,id_mgcg_forme_sortie);
316 couturad 907 #endif
317     }
318    
319 couturad 911 MG_CG_OP_BOOL_DIFFERENCE* MG_CG::creer_MG_CG_OP_BOOL_DIFFERENCE(MG_CG_MODELE* mgcg_modele,int semantique, MG_CG_FORME* mgcg_forme_entree_1, MG_CG_FORME* mgcg_forme_entree_2)
320 couturad 907 {
321     #ifdef ALL_OCC
322 couturad 911 return new OCC_CG_OP_BOOL_DIFFERENCE(mgcg_modele,semantique,mgcg_forme_entree_1,mgcg_forme_entree_2);
323 couturad 907 #endif
324     }
325    
326 couturad 911 MG_CG_OP_BOOL_DIFFERENCE* MG_CG::creer_MG_CG_OP_BOOL_DIFFERENCE(MG_CG_MODELE* mgcg_modele,int semantique, int etat, long unsigned int num, MG_CG_FORME* mgcg_forme_entree_1, MG_CG_FORME* mgcg_forme_entree_2, long int id_mgcg_forme_sortie)
327 couturad 907 {
328     #ifdef ALL_OCC
329 couturad 911 return new OCC_CG_OP_BOOL_DIFFERENCE(mgcg_modele,semantique,etat,num,mgcg_forme_entree_1,mgcg_forme_entree_2,id_mgcg_forme_sortie);
330 couturad 907 #endif
331     }
332    
333 couturad 911 MG_CG_OP_BOOL_INTERSECTION* MG_CG::creer_MG_CG_OP_BOOL_INTERSECTION(MG_CG_MODELE* mgcg_modele,int semantique, MG_CG_FORME* mgcg_forme_entree_1, MG_CG_FORME* mgcg_forme_entree_2)
334 couturad 907 {
335     #ifdef ALL_OCC
336 couturad 911 return new OCC_CG_OP_BOOL_INTERSECTION(mgcg_modele,semantique,mgcg_forme_entree_1,mgcg_forme_entree_2);
337 couturad 907 #endif
338     }
339    
340 couturad 911 MG_CG_OP_BOOL_INTERSECTION* MG_CG::creer_MG_CG_OP_BOOL_INTERSECTION(MG_CG_MODELE* mgcg_modele,int semantique, int etat, long unsigned int num, MG_CG_FORME* mgcg_forme_entree_1, MG_CG_FORME* mgcg_forme_entree_2, long int id_mgcg_forme_sortie)
341 couturad 907 {
342     #ifdef ALL_OCC
343 couturad 911 return new OCC_CG_OP_BOOL_INTERSECTION(mgcg_modele,semantique,etat,num,mgcg_forme_entree_1,mgcg_forme_entree_2,id_mgcg_forme_sortie);
344 couturad 907 #endif
345     }
346    
347 couturad 911 MG_CG_OP_BOOL_FRAGMENT* MG_CG::creer_MG_CG_OP_BOOL_FRAGMENT(MG_CG_MODELE* mgcg_modele,int semantique, MG_CG_FORME* mgcg_forme_entree_1, MG_CG_FORME* mgcg_forme_entree_2)
348 couturad 907 {
349     #ifdef ALL_OCC
350 couturad 911 return new OCC_CG_OP_BOOL_FRAGMENT(mgcg_modele,semantique,mgcg_forme_entree_1,mgcg_forme_entree_2);
351 couturad 907 #endif
352     }
353    
354 couturad 911 MG_CG_OP_BOOL_FRAGMENT* MG_CG::creer_MG_CG_OP_BOOL_FRAGMENT(MG_CG_MODELE* mgcg_modele,int semantique, int etat, long unsigned int num, MG_CG_FORME* mgcg_forme_entree_1, MG_CG_FORME* mgcg_forme_entree_2, long int id_mgcg_forme_sortie)
355 couturad 907 {
356     #ifdef ALL_OCC
357 couturad 911 return new OCC_CG_OP_BOOL_FRAGMENT(mgcg_modele,semantique,etat,num,mgcg_forme_entree_1,mgcg_forme_entree_2,id_mgcg_forme_sortie);
358 couturad 907 #endif
359     }
360    
361 couturad 911 MG_CG_OP_INCLUSION_MATRICE* MG_CG::creer_MG_CG_OP_INCLUSION_MATRICE(MG_CG_MODELE* mgcg_modele,int semantique, MG_CG_FORME* mgcg_forme_inclusion_entree, MG_CG_FORME* mgcg_forme_matrice_entree)
362 couturad 907 {
363     #ifdef ALL_OCC
364 couturad 911 return new OCC_CG_OP_INCLUSION_MATRICE(mgcg_modele,semantique,mgcg_forme_inclusion_entree,mgcg_forme_matrice_entree);
365 couturad 907 #endif
366     }
367    
368 couturad 911 MG_CG_OP_INCLUSION_MATRICE* MG_CG::creer_MG_CG_OP_INCLUSION_MATRICE(MG_CG_MODELE* mgcg_modele,int semantique, int etat, long unsigned int num, MG_CG_FORME* mgcg_forme_inclusion_entree, MG_CG_FORME* mgcg_forme_matrice_entree, long int id_mgcg_forme_inclusion_sortie, long int id_mgcg_forme_matrice_sortie)
369 couturad 907 {
370     #ifdef ALL_OCC
371 couturad 911 return new OCC_CG_OP_INCLUSION_MATRICE(mgcg_modele,semantique,etat,num,mgcg_forme_inclusion_entree,mgcg_forme_matrice_entree,id_mgcg_forme_inclusion_sortie,id_mgcg_forme_matrice_sortie);
372 couturad 907 #endif
373     }
374    
375 couturad 911 MG_CG_OP_TRANSF_ROTATION* MG_CG::creer_MG_CG_OP_TRANSF_ROTATION(MG_CG_MODELE* mgcg_modele,int semantique, MG_CG_FORME* mgcg_forme_entree)
376 couturad 907 {
377     #ifdef ALL_OCC
378 couturad 911 return new OCC_CG_OP_TRANSF_ROTATION(mgcg_modele,semantique,mgcg_forme_entree);
379 couturad 907 #endif
380     }
381    
382 couturad 911 MG_CG_OP_TRANSF_ROTATION* MG_CG::creer_MG_CG_OP_TRANSF_ROTATION(MG_CG_MODELE* mgcg_modele,int semantique, int etat, long unsigned int num, MG_CG_FORME* mgcg_forme_entree, long int id_mgcg_forme_sortie)
383 couturad 907 {
384     #ifdef ALL_OCC
385 couturad 911 return new OCC_CG_OP_TRANSF_ROTATION(mgcg_modele,semantique,etat,num,mgcg_forme_entree,id_mgcg_forme_sortie);
386 couturad 907 #endif
387     }
388    
389 couturad 911 MG_CG_OP_TRANSF_TRANSLATION* MG_CG::creer_MG_CG_OP_TRANSF_TRANSLATION(MG_CG_MODELE* mgcg_modele,int semantique, MG_CG_FORME* mgcg_forme_entree)
390 couturad 907 {
391     #ifdef ALL_OCC
392 couturad 911 return new OCC_CG_OP_TRANSF_TRANSLATION(mgcg_modele,semantique,mgcg_forme_entree);
393 couturad 907 #endif
394     }
395    
396 couturad 911 MG_CG_OP_TRANSF_TRANSLATION* MG_CG::creer_MG_CG_OP_TRANSF_TRANSLATION(MG_CG_MODELE* mgcg_modele,int semantique, int etat, long unsigned int num, MG_CG_FORME* mgcg_forme_entree, long int id_mgcg_forme_sortie)
397 couturad 907 {
398     #ifdef ALL_OCC
399 couturad 911 return new OCC_CG_OP_TRANSF_TRANSLATION(mgcg_modele,semantique,etat,num,mgcg_forme_entree,id_mgcg_forme_sortie);
400 couturad 907 #endif
401     }
402    
403 couturad 911 MG_CG_OP_TRANSF_ECHELLE* MG_CG::creer_MG_CG_OP_TRANSF_ECHELLE(MG_CG_MODELE* mgcg_modele,int semantique, MG_CG_FORME* mgcg_forme_entree)
404 couturad 907 {
405     #ifdef ALL_OCC
406 couturad 911 return new OCC_CG_OP_TRANSF_ECHELLE(mgcg_modele,semantique,mgcg_forme_entree);
407 couturad 907 #endif
408     }
409    
410 couturad 911 MG_CG_OP_TRANSF_ECHELLE* MG_CG::creer_MG_CG_OP_TRANSF_ECHELLE(MG_CG_MODELE* mgcg_modele,int semantique, int etat, long unsigned int num, MG_CG_FORME* mgcg_forme_entree, long int id_mgcg_forme_sortie)
411 couturad 907 {
412     #ifdef ALL_OCC
413 couturad 911 return new OCC_CG_OP_TRANSF_ECHELLE(mgcg_modele,semantique,etat,num,mgcg_forme_entree,id_mgcg_forme_sortie);
414 couturad 907 #endif
415     }
416    
417 couturad 951 MG_CG_OP_TRANSF_DECALLAGE * MG_CG::creer_MG_CG_OP_TRANSF_DECALLAGE(MG_CG_MODELE* mgcg_modele, int semantique, MG_CG_FORME* mgcg_forme_entree)
418     {
419     #ifdef ALL_OCC
420     return new OCC_CG_OP_TRANSF_DECALLAGE(mgcg_modele,semantique,mgcg_forme_entree);
421     #endif
422     }
423    
424     MG_CG_OP_TRANSF_DECALLAGE * MG_CG::creer_MG_CG_OP_TRANSF_DECALLAGE(MG_CG_MODELE* mgcg_modele, int semantique, int etat, unsigned long num, MG_CG_FORME* mgcg_forme_entree, long id_mgcg_forme_sortie)
425     {
426     #ifdef ALL_OCC
427     return new OCC_CG_OP_TRANSF_DECALLAGE(mgcg_modele,semantique,etat,num,mgcg_forme_entree,id_mgcg_forme_sortie);
428     #endif
429     }
430    
431    
432 couturad 907 int MG_CG::exporter_fichier_brep(char* nom, MG_CG_MODELE* mgcg_modele)
433     {
434     MG_GEOMETRIE* mg_geometrie = mgcg_modele->get_mg_geometrie();
435     #ifdef ALL_OCC
436     OCC_FONCTION* occ_fonction = &mg_geometrie->get_occ_fonction();
437     if(occ_fonction->get_version()=="OCCV2017")
438     {
439     OCC_FONCTION_V2017* occ_fonction_v2017 = (OCC_FONCTION_V2017*)occ_fonction;
440     return occ_fonction_v2017->exporter_fichier_brep(nom,mg_geometrie);
441     }
442     #endif
443     return 0;
444     }
445    
446     int MG_CG::exporter_fichier_brep(char* nom, MG_CG_ASSEMBLAGE* mgcg_assemblage)
447     {
448     MG_GEOMETRIE* mg_geometrie_modele = mgcg_assemblage->get_mgcg_modele()->get_mg_geometrie();
449     MG_GEOMETRIE* mg_geometrie_assemblage = (MG_GEOMETRIE*)mgcg_assemblage->get_mg_sous_geometrie();
450     #ifdef ALL_OCC
451     OCC_FONCTION* occ_fonction = &mg_geometrie_modele->get_occ_fonction();
452     if(occ_fonction->get_version()=="OCCV2017")
453     {
454     OCC_FONCTION_V2017* occ_fonction_v2017 = (OCC_FONCTION_V2017*)occ_fonction;
455     return occ_fonction_v2017->exporter_fichier_brep(nom,mgcg_assemblage->get_mg_sous_geometrie());
456     }
457     #endif
458     return 0;
459     }
460    
461    
462    
463    
464    
465    
466    
467    
468    
469