ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/mg_cg.cpp
Revision: 926
Committed: Tue May 1 20:38:42 2018 UTC (7 years ago) by couturad
File size: 19600 byte(s)
Log Message:
Ajout de nouvelles fonctionnalités de representation et d'analyse des VES
*Modification du CMakeLists.txt de microstructure

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