ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/mailleur/src/main.cpp
Revision: 670
Committed: Fri May 29 20:57:31 2015 UTC (10 years, 3 months ago) by francois
File size: 20176 byte(s)
Log Message:
bug d'impression dans option -examine + ajout d'information pour le mailleur

File Contents

# Content
1 //------------------------------------------------------------
2 //------------------------------------------------------------
3 // MAGiC
4 // Jean Christophe Cuilli�e et Vincent FRANCOIS
5 // D�artement de G�ie M�anique - UQTR
6 //------------------------------------------------------------
7 // Le projet MAGIC est un projet de recherche du d�artement
8 // de g�ie m�anique de l'Universit�du Qu�ec �
9 // Trois Rivi�es
10 // Les librairies ne peuvent �re utilis�s sans l'accord
11 // des auteurs (contact : francois@uqtr.ca)
12 //------------------------------------------------------------
13 //------------------------------------------------------------
14 //
15 // main.cpp
16 //
17 //------------------------------------------------------------
18 //------------------------------------------------------------
19 // COPYRIGHT 2000
20 // Version du 02/03/2006 �11H25
21 //------------------------------------------------------------
22 //------------------------------------------------------------
23 #include "gestionversion.h"
24 #ifdef WINDOWS_VERSION
25 #include "fenetre.h"
26 #endif
27
28 #pragma hdrstop
29
30 #include "magic_application.h"
31 #include <string.h>
32 #include "mg_file.h"
33 #include "fct_taille.h"
34 #include "mailleur0d.h"
35 #include "mailleur1d.h"
36 #include "mailleur2d.h"
37 #include "mailleur3d.h"
38 #include "mailleur3d_maillage_partiel.h"
39 #include "mailleur_adaptatif.h"
40 #include "fct_generateur_3d.h"
41 #include "fct_taille_fem_solution.h"
42 #include "mg_export.h"
43 #include "step_import.h"
44 #include "acis_import.h"
45
46 //---------------------------------------------------------------------------
47
48 int main(int argc,char **argv)
49 {
50 std::vector<MAGIC_PARAMETRE_APPLICATION> lst;
51 MAGIC_PARAMETRE_APPLICATION p1(3,(char*)"-carte",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier de carte de taille");
52 MAGIC_PARAMETRE_APPLICATION p2(4,(char*)"-niveauopt3d",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Limite supérieure des mailles à optimiser - Défaut 2");
53 MAGIC_PARAMETRE_APPLICATION p3(5,(char*)"-niveau",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Dimension limite des entités à mailler - Défaut 3");
54 MAGIC_PARAMETRE_APPLICATION p5(6,(char*)"-front",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Maillage d'une géométrie par la méthode frontale - Defaut");
55 MAGIC_PARAMETRE_APPLICATION p6(7,(char*)"-adapt",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Maillage adaptatif d'une géométrie maillée");
56 MAGIC_PARAMETRE_APPLICATION p4(8,(char*)"-prioritemetrique",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Valeur de la prise en compte de la métrique versus la qualité - Défaut 0.65");
57 MAGIC_PARAMETRE_APPLICATION p7(9,(char*)"-numgeo",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Numero de géometrie à mailler - Défaut la première");
58 MAGIC_PARAMETRE_APPLICATION p8(10,(char*)"-groupe",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Groupe topologique à mailler - Défaut pas de groupe");
59 MAGIC_PARAMETRE_APPLICATION p9(11,(char*)"-analyse",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"Analyse de la qualité du maillage après le maillage");
60 MAGIC_PARAMETRE_APPLICATION p10(12,(char*)"-visufront",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"Activation de la visalisation dynamique du front");
61 MAGIC_PARAMETRE_APPLICATION p11(13,(char*)"-nummai",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Numéro du maillage à adapter - Défaut le premier");
62 MAGIC_PARAMETRE_APPLICATION p12(14,(char*)"-limitadapt",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Limite inférieure en %d'erreur pour conserver les mailles");
63 MAGIC_PARAMETRE_APPLICATION p13(15,(char*)"-niveauopt2d",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Limite supérieure des mailles à optimiser - Défaut 5");
64 MAGIC_PARAMETRE_APPLICATION p14(16,(char*)"-front2",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Maillage d'une géométrie par la méthode frontale avec une carte de taille sous forme de fichier magic");
65 MAGIC_PARAMETRE_APPLICATION p15(17,(char*)"-adapt2",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Maillage adaptatif d'une géométrie maillée avec une carte de taille sous forme de fichier magic");
66 MAGIC_PARAMETRE_APPLICATION p16(18,(char*)"-enregistrer",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"Enregistrement de la dernière étape (pour debbugage) - Defaut false");
67 MAGIC_PARAMETRE_APPLICATION p17(19,(char*)"-pas",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Valeur du pas d'integration - Defaut 32");
68 MAGIC_PARAMETRE_APPLICATION p18(20,(char*)"-refront",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Réparation d'un maillage 3D échoué d'une géométrie par la méthode frontale");
69 MAGIC_PARAMETRE_APPLICATION p19(21,(char*)"-refront2",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Réparation d'un maillage 3D échoué d'une géométrie par la méthode frontale avec une carte de taille sous forme de fichier magic");
70 MAGIC_PARAMETRE_APPLICATION p20(22,(char*)"-numvol",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Numero de volume à terminer de mailler - Défaut le premier");
71
72
73
74 //MAGIC_PARAMETRE_APPLICATION p7(8,(char*)"-tailleoctree",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Taille des octants par rapport à la taille souhaitée - Défaut 2.");
75 //MAGIC_PARAMETRE_APPLICATION p8(9,(char*)"-fem",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"Création du maillage fem");
76 //MAGIC_PARAMETRE_APPLICATION p9(10,(char*)"-degre",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Degre du maillage fem - Défaut 1");
77 p5.ajouter_dependance(1);p5.ajouter_dependance(2);p5.ajouter_dependance(3);p5.ajouter_dependance(4);p5.ajouter_dependance(5);p5.ajouter_dependance(8);p5.ajouter_dependance(9);p5.ajouter_dependance(10);p5.ajouter_dependance(11);p5.ajouter_dependance(12);p5.ajouter_dependance(15);p5.ajouter_dependance(18);p5.ajouter_dependance(19);
78 p6.ajouter_dependance(1);p6.ajouter_dependance(2);p6.ajouter_dependance(3);p6.ajouter_dependance(11);p6.ajouter_dependance(12);p6.ajouter_dependance(13);p6.ajouter_dependance(14);p6.ajouter_dependance(18);
79 p14.ajouter_dependance(1);p14.ajouter_dependance(2);p14.ajouter_dependance(3);p14.ajouter_dependance(4);p14.ajouter_dependance(5);p14.ajouter_dependance(8);p14.ajouter_dependance(9);p14.ajouter_dependance(10);p14.ajouter_dependance(11);p14.ajouter_dependance(12);p14.ajouter_dependance(15);p14.ajouter_dependance(18);p14.ajouter_dependance(18);
80 p15.ajouter_dependance(1);p15.ajouter_dependance(2);p15.ajouter_dependance(3);p15.ajouter_dependance(11);p15.ajouter_dependance(12);p15.ajouter_dependance(13);p15.ajouter_dependance(14);p15.ajouter_dependance(18);
81 p18.ajouter_dependance(1);p18.ajouter_dependance(2);p18.ajouter_dependance(3);p18.ajouter_dependance(22);p18.ajouter_dependance(13);p18.ajouter_dependance(4);p18.ajouter_dependance(8);p18.ajouter_dependance(18);p18.ajouter_dependance(19);
82 p19.ajouter_dependance(1);p19.ajouter_dependance(2);p19.ajouter_dependance(3);p19.ajouter_dependance(22);p19.ajouter_dependance(13);p19.ajouter_dependance(4);p19.ajouter_dependance(8);p19.ajouter_dependance(18);p19.ajouter_dependance(19);
83 lst.push_back(p1);
84 lst.push_back(p2);
85 lst.push_back(p3);
86 lst.push_back(p5);
87 lst.push_back(p6);
88 lst.push_back(p4);
89 lst.push_back(p7);
90 lst.push_back(p8);
91 lst.push_back(p9);
92 lst.push_back(p10);
93 lst.push_back(p11);
94 lst.push_back(p12);
95 lst.push_back(p13);
96 lst.push_back(p14);
97 lst.push_back(p15);
98 lst.push_back(p16);
99 lst.push_back(p17);
100 lst.push_back(p18);
101 lst.push_back(p19);
102 lst.push_back(p20);
103
104 MAGIC_APPLICATION app((char*)"Mailleur d'une géometrie par la méthode frontale",argc,argv,lst,true,true);
105 if (app.get_erreur()==true) return 0;
106
107 if (app.get_action()==-1) app.change_action(6);
108
109 if ((app.get_action()==6) || (app.get_action()==16))
110 {
111 char fichier[500];
112 char fichiersortie[500];
113 char fichiersortie2[500];
114 char fichiercarte[500];
115 int numgeometrie;
116 double prioritemetrique;
117 int numgroupe;
118 int niveau;
119 bool analyse;
120 bool visufront;
121 int niveauopt3d;
122 int niveauopt2d;
123 int numsol,numchamp;
124 bool save;
125 int pas;
126 app.recupere_parametre_string(1,fichier,(char*)"Fichier d'entrée manquant");
127 app.recupere_parametre_string_avec_defaut(2,fichiersortie,fichier);
128 app.recupere_parametre_string(3,fichiercarte,(char*)"Fichier carte manquant");
129 app.recupere_parametre_double_avec_defaut(8,prioritemetrique,0.65);
130 app.recupere_parametre_int_avec_defaut(9,numgeometrie,0);
131 app.recupere_parametre_int_avec_defaut(10,numgroupe,0);
132 app.recupere_parametre_int_avec_defaut(5,niveau,3);
133 app.recupere_parametre_bool_avec_defaut(11,analyse,false);
134 app.recupere_parametre_bool_avec_defaut(12,visufront,false);
135 app.recupere_parametre_int_avec_defaut(4,niveauopt3d,2);
136 app.recupere_parametre_int_avec_defaut(15,niveauopt2d,5);
137 app.recupere_parametre_bool_avec_defaut(18,save,false);
138 app.recupere_parametre_int_avec_defaut(19,pas,32);
139 if (app.get_erreur()==true) return 0;
140 char message[500];
141 strcpy(fichiersortie2,fichiersortie);
142 strcat(fichiersortie2,"dbg");
143 app.affiche((char*)"Parametre d'etude du mailleur");
144 sprintf(message," Fichier magic : %s",fichier);
145 app.affiche(message);
146 sprintf(message," Numero de geometrie : %d",numgeometrie);
147 sprintf(message," Fichier carte : %s",fichiercarte);
148 app.affiche(message);
149 sprintf(message," Parametre de metrique : %2.2f",prioritemetrique*100);
150 app.affiche(message);
151 app.affiche((char*)"Lecture du fichier M.A.G.i.C");
152 MG_FILE gest(fichier);
153 MG_GEOMETRIE* mggeo;
154 if (numgeometrie==0) mggeo=gest.get_mg_geometrie(numgeometrie); else mggeo=gest.get_mg_geometrieid(numgeometrie);
155 MG_MAILLAGE* mgmai=new MG_MAILLAGE(mggeo);
156 gest.ajouter_mg_maillage(mgmai);
157 app.affiche((char*)"Lecture carte de taille");
158 FCT_TAILLE* metrique;
159 if (app.get_action()==6)
160 {
161 FCT_GENERATEUR_3D<4> *carte=new FCT_GENERATEUR_3D<4>;
162 carte->lire(fichiercarte);
163 metrique=carte;
164 }
165 MG_FILE *gestcarte;
166 if (app.get_action()==16)
167 {
168 FCT_TAILLE_FEM_SOLUTION *carte=new FCT_TAILLE_FEM_SOLUTION(fichiercarte);
169 metrique=carte;
170 }
171 MG_GROUPE_TOPOLOGIQUE* mggt=NULL;
172 if (numgroupe!=0)
173 mggt=mggeo->get_mg_groupe_topologiqueid(numgroupe);
174 if (niveau>-1)
175 {
176 app.affiche((char*)"MAILLAGE 0D");
177 MAILLEUR0D m0d(mgmai,mggeo);
178 m0d.maille(mggt);
179 if (save==true) gest.enregistrer(fichiersortie2);
180 }
181 TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> lst;
182 if (mggt!=NULL)
183 {
184 int nb=mggt->get_nb();
185 for (int i=0;i<nb;i++)
186 {
187 lst.ajouter(mggt->get(i));
188 mggt->get(i)->get_topologie_sousjacente(&lst);
189 }
190 }
191 if (niveau>0)
192 {
193 app.affiche((char*)"MAILLAGE 1D");
194 int nb=mggeo->get_nb_mg_arete();
195 for (int i=0;i<nb;i++)
196 {
197 MG_ARETE* arete=mggeo->get_mg_arete(i);
198 if (mggt!=NULL)
199 if (lst.existe(arete)==0) continue;
200 char mess[100];
201 sprintf(mess," arete %d d'identificateur %lu",i,arete->get_id());
202 app.affiche(mess);
203 MAILLEUR1D m1d(mgmai,mggeo,metrique,arete);
204 m1d.change_pas_integration(pas);
205 m1d.maille(mggt);
206 if (save==true) gest.enregistrer(fichiersortie2);
207 }
208 }
209 if (niveau>1)
210 {
211 app.affiche((char*)"MAILLAGE 2D");
212 int nb=mggeo->get_nb_mg_face();
213 for (int i=0;i<nb;i++)
214 {
215 MG_FACE* mgface=mggeo->get_mg_face(i);
216 if (mggt!=NULL)
217 if (lst.existe(mgface)==0) continue;
218 char mess[100];
219 sprintf(mess," face %d d'identificateur %lu",i,mgface->get_id());
220 app.affiche(mess);
221 MAILLEUR2D m2d(mgmai,mggeo,metrique,mgface);
222 m2d.change_pas_integration(pas);
223 m2d.change_niveau_optimisation(niveauopt2d);
224 m2d.change_priorite_metrique(prioritemetrique);
225 m2d.maille(mggt);
226 if (save==true) gest.enregistrer(fichiersortie2);
227 }
228 }
229 if (niveau==3)
230 {
231 app.affiche((char*)"MAILLAGE 3D");
232 int nb=mggeo->get_nb_mg_volume();
233 for (int i=0;i<nb;i++)
234 {
235 MG_VOLUME* mgvol=mggeo->get_mg_volume(i);
236 if (mggt!=NULL)
237 if (lst.existe(mgvol)==0) continue;
238 MAILLEUR3D m3d(mgmai,mggeo,metrique,save,mgvol);
239 m3d.active_affichage(app.affiche);
240 m3d.change_niveau_optimisation(niveauopt3d);
241 m3d.change_priorite_metrique(prioritemetrique);
242 if (visufront) m3d.active_log(fichiersortie);
243 if (save==true) m3d.change_nom_fichierdbg(fichiersortie2);
244 m3d.change_pas_integration(pas);
245 m3d.maille(mgvol);
246 if (save==true) gest.enregistrer(fichiersortie2);
247 if (analyse)
248 {
249 app.affiche((char*)"Analyse maillage");
250 double vol;int tab[4];
251 m3d.analyse_maillage_obtenu(vol,tab);
252 char mess[100];
253 sprintf(mess," 1) Respect de la carte de taille");
254 app.affiche(mess);
255 sprintf(mess," nombre de tetra theorique %f, nombre de tetra pratique %d ",vol,mgmai->get_nb_mg_tetra());
256 app.affiche(mess);
257 sprintf(mess," erreur : %.2f%%",(mgmai->get_nb_mg_tetra()-vol)*100./vol);
258 app.affiche(mess);
259 sprintf(mess," 2) Qualite du maillage");
260 app.affiche(mess);
261 sprintf(mess," nombre de tetra bon (qualite>0.5) : %d (%.2f%%)",tab[3],tab[3]*100./mgmai->get_nb_mg_tetra());
262 app.affiche(mess);
263 sprintf(mess," nombre de tetra acceptable (qualite>0.2) : %d (%.2f%%) ",tab[2],tab[2]*100./mgmai->get_nb_mg_tetra());
264 app.affiche(mess);
265 sprintf(mess," nombre de tetra moyen (qualite>0.1) : %d (%.2f%%) ",tab[1],tab[1]*100./mgmai->get_nb_mg_tetra());
266 app.affiche(mess);
267 sprintf(mess," nombre de tetra mauvais (qualite>0.) : %d (%.2f%%) ",tab[0],tab[0]*100./mgmai->get_nb_mg_tetra());
268 app.affiche(mess);
269 }
270 }
271 }
272 app.affiche((char*)"Enregistrement");
273 gest.enregistrer(fichiersortie);
274 if (app.get_action()==6)
275 delete metrique;
276 if (app.get_action()==16)
277 {
278 delete metrique;
279 delete gestcarte;
280 }
281 //app.affiche((char*)"Fin");
282
283 }
284
285 if ((app.get_action()==7)||(app.get_action()==17))
286 {
287 char fichier[500];
288 char fichiersortie[500];
289 char fichiercarte[500];
290 int nummaillage;
291 double prioritemetrique;
292 bool analyse;
293 bool visufront;
294 double limiteadapt;
295 int numsol,numchamp;
296 int pas;
297 app.recupere_parametre_string(1,fichier,(char*)"Fichier d'entrée manquant");
298 app.recupere_parametre_string_avec_defaut(2,fichiersortie,fichier);
299 app.recupere_parametre_string(3,fichiercarte,(char*)"Fichier carte manquant");
300 app.recupere_parametre_double_avec_defaut(8,prioritemetrique,0.65);
301 app.recupere_parametre_int_avec_defaut(13,nummaillage,0);
302 app.recupere_parametre_bool_avec_defaut(11,analyse,false);
303 app.recupere_parametre_bool_avec_defaut(12,visufront,false);
304 app.recupere_parametre_double(14,limiteadapt,(char*)"Valeur limite d'adaptation manquante");
305 app.recupere_parametre_int_avec_defaut(19,pas,32);
306 if (app.get_action()==17)
307 {
308 app.recupere_parametre_int_avec_defaut(18,numsol,0);
309 app.recupere_parametre_int_avec_defaut(19,numchamp,0);
310 }
311 if (app.get_erreur()==true) return 0;
312 char message[500];
313 app.affiche((char*)"Adaptation de maillage");
314 sprintf(message," Fichier magic : %s",fichier);
315 app.affiche(message);
316 printf(message," Numero de maillage : %d",nummaillage);
317 app.affiche(message);
318 sprintf(message," Carte : %s",fichiercarte);
319 app.affiche(message);
320 MG_FILE gest(fichier);
321 MG_MAILLAGE* mai;
322 if (nummaillage==0) mai=gest.get_mg_maillage(nummaillage); else mai=gest.get_mg_maillageid(nummaillage);
323 FCT_TAILLE* metrique;
324 if (app.get_action()==7)
325 {
326 FCT_GENERATEUR_3D<4> *carte=new FCT_GENERATEUR_3D<4>;
327 carte->lire(fichiercarte);
328 metrique=carte;
329 }
330 MG_FILE *gestcarte;
331 if (app.get_action()==17)
332 {
333 FCT_TAILLE_FEM_SOLUTION *carte=new FCT_TAILLE_FEM_SOLUTION(fichiercarte);
334 metrique=carte;
335 }
336 MG_MAILLAGE* nvmai=new MG_MAILLAGE(mai->get_mg_geometrie());
337 gest.ajouter_mg_maillage(nvmai);
338 MAILLEUR_ADAPTATIF mesh(mai,nvmai,metrique,limiteadapt);
339 mesh.change_pas_integration(pas);
340 mesh.active_affichage(app.affiche);
341 if (visufront) mesh.active_log(fichier);
342 mesh.maille();
343 if (analyse)
344 {
345 MAILLEUR3D m3d(nvmai,nvmai->get_mg_geometrie(),metrique,false);
346 app.affiche((char*)"Analyse maillage");
347 double vol;int tab[4];
348 m3d.analyse_maillage_obtenu(vol,tab);
349 char mess[100];
350 sprintf(mess," 1) Respect de la carte de taille");
351 app.affiche(mess);
352 sprintf(mess," nombre de tetra theorique %f, nombre de tetra pratique %d ",vol,nvmai->get_nb_mg_tetra());
353 app.affiche(mess);
354 sprintf(mess," erreur : %.2f%%",(nvmai->get_nb_mg_tetra()-vol)*100./vol);
355 app.affiche(mess);
356 sprintf(mess," 2) Qualite du maillage");
357 app.affiche(mess);
358 sprintf(mess," nombre de tetra bon (qualite>0.5) : %d (%.2f%%)",tab[3],tab[3]*100./nvmai->get_nb_mg_tetra());
359 app.affiche(mess);
360 sprintf(mess," nombre de tetra acceptable (qualite>0.2) : %d (%.2f%%) ",tab[2],tab[2]*100./nvmai->get_nb_mg_tetra());
361 app.affiche(mess);
362 sprintf(mess," nombre de tetra moyen (qualite>0.1) : %d (%.2f%%) ",tab[1],tab[1]*100./nvmai->get_nb_mg_tetra());
363 app.affiche(mess);
364 sprintf(mess," nombre de tetra mauvais (qualite>0.) : %d (%.2f%%) ",tab[0],tab[0]*100./nvmai->get_nb_mg_tetra());
365 app.affiche(mess);
366 }
367 app.affiche((char*)"Enregistrement");
368 gest.enregistrer(fichiersortie);
369 if (app.get_action()==7)
370 delete metrique;
371 if (app.get_action()==17)
372 {
373 delete metrique;
374 delete gestcarte;
375 }
376 //app.affiche((char*)"Fin");
377 }
378
379 if ((app.get_action()==20) || (app.get_action()==21))
380 {
381 app.affiche((char*)"\nRecuperation d'un maillage non terminé\n\n");
382 char fichier[500];
383 char fichiersortie[500];
384 char fichiersortie2[500];
385 char fichiercarte[500];
386 int numvol;
387 double prioritemetrique;
388 int niveauopt3d;
389 bool save;
390 int pas;
391 int nummai;
392 app.recupere_parametre_string(1,fichier,(char*)"Fichier d'entrée manquant");
393 app.recupere_parametre_string_avec_defaut(2,fichiersortie,fichier);
394 app.recupere_parametre_string(3,fichiercarte,(char*)"Fichier carte manquant");
395 app.recupere_parametre_double_avec_defaut(8,prioritemetrique,0.65);
396 app.recupere_parametre_int_avec_defaut(22,numvol,0);
397 app.recupere_parametre_int_avec_defaut(13,nummai,0);
398 app.recupere_parametre_int_avec_defaut(4,niveauopt3d,2);
399 app.recupere_parametre_bool_avec_defaut(18,save,false);
400 app.recupere_parametre_int_avec_defaut(19,pas,32);
401 if (app.get_erreur()==true) return 0;
402 strcpy(fichiersortie2,fichiersortie);
403 strcat(fichiersortie2,"dbg");
404 char message[500];
405 if (app.get_action()==20)
406 {
407 MAILLEUR3D_MAILLAGE_PARTIEL m3d(fichier,fichiersortie,fichiercarte,MAGIC::VERSION_CARTE_TAILLE::ANCIENNE,nummai,numvol,save);
408 m3d.active_affichage(app.affiche);
409 m3d.change_niveau_optimisation(niveauopt3d);
410 m3d.change_pas_integration(pas);
411 m3d.change_priorite_metrique(prioritemetrique);
412 if (save==true) m3d.change_nom_fichierdbg(fichiersortie2);
413 m3d.maille();
414 }
415 if (app.get_action()==21)
416 {
417 MAILLEUR3D_MAILLAGE_PARTIEL m3d(fichier,fichiersortie,fichiercarte,MAGIC::VERSION_CARTE_TAILLE::NOUVELLE,nummai,numvol,save);
418 m3d.active_affichage(app.affiche);
419 m3d.change_niveau_optimisation(niveauopt3d);
420 m3d.change_pas_integration(pas);
421 m3d.change_priorite_metrique(prioritemetrique);
422 if (save==true) m3d.change_nom_fichierdbg(fichiersortie2);
423 m3d.maille();
424 }
425 }
426 app.affiche((char*)"Fin");
427 return 0;
428 }
429
430
431
432 #pragma package(smart_init)