ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/mg_cg.cpp
Revision: 951
Committed: Fri Aug 10 15:17:17 2018 UTC (6 years, 9 months ago) by couturad
File size: 20330 byte(s)
Log Message:
-> Ajout de Project Chrono (voir CMakeLists.txt).
-> Ajout d'un générateur de microstructure basé sur la dynamique des corps rigides (MSTRUCT_GENERATEUR_DCR).
-> Ajout d'un opérateur de décallage de la topologie (MG_CG_OP_TRANSF_DECALLAGE).
-> Retrait de «using namespace std»  (conflit avec namespace chrono) et modification des fichiers affectés.
-> Modification de mailleur2d.cpp afin d'enregistrer un fichier MAGiC (void.magic) lorsque le nombre d'itération dépasse la valeur maximale.

File Contents

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