ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/compare/src/main.cpp
Revision: 432
Committed: Thu Oct 17 14:01:20 2013 UTC (11 years, 6 months ago) by francois
File size: 7059 byte(s)
Log Message:
Magic V4. Nouvelle approche pour les exe. 

File Contents

# User Rev Content
1 francois 283 //------------------------------------------------------------
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     #include <string.h>
30     #include "vct_comparaison_resultat.h"
31     #include "vct_comparaison.h"
32     #include "mg_file.h"
33     #include <iostream>
34     #include "ot_cpu.h"
35 francois 432 #include "magic_application.h"
36 francois 283 //---------------------------------------------------------------------------
37 francois 363 #ifdef _COMPARESTEP_
38 francois 283
39 francois 363 #include "occ_import.h"
40    
41     #endif
42 francois 432
43    
44     int main(int argc,char **argv)
45 francois 283 {
46 francois 432 std::vector<MAGIC_PARAMETRE_APPLICATION> lst;
47     #ifndef USE_ENGLISH
48     MAGIC_PARAMETRE_APPLICATION p1(2,(char*)"-inA",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier d'entrée A");
49     MAGIC_PARAMETRE_APPLICATION p2(3,(char*)"-inB",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier d'entrée B");
50     MAGIC_PARAMETRE_APPLICATION p3(4,(char*)"-numgeoA",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Numéro de la geometrie A - Defaut 0");
51     MAGIC_PARAMETRE_APPLICATION p4(5,(char*)"-numgeoB",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Numéro de la geometrie B - Defaut 0");
52     MAGIC_PARAMETRE_APPLICATION p5(6,(char*)"-numvolA",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Numéro du volume A - Defaut 0");
53     MAGIC_PARAMETRE_APPLICATION p6(7,(char*)"-numvolB",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Numéro de volume B - Defaut 0");
54 francois 283 #else
55 francois 432 MAGIC_PARAMETRE_APPLICATION p1(2,(char*)"-inA",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Data file A");
56     MAGIC_PARAMETRE_APPLICATION p2(3,(char*)"-inB",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Data file B");
57     MAGIC_PARAMETRE_APPLICATION p3(4,(char*)"-numgeoA",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Number of geometry A - Default 0");
58     MAGIC_PARAMETRE_APPLICATION p4(5,(char*)"-numgeoB",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Number of geometry B - Default 0");
59     MAGIC_PARAMETRE_APPLICATION p5(6,(char*)"-numvolA",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Number of volume A - Default 0");
60     MAGIC_PARAMETRE_APPLICATION p6(7,(char*)"-numvolB",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Number of volume B - Default 0");
61 francois 283 #endif
62 francois 432 lst.push_back(p1);
63     lst.push_back(p2);
64     lst.push_back(p3);
65     lst.push_back(p4);
66     lst.push_back(p5);
67     lst.push_back(p6);
68    
69    
70     #ifdef USE_ENGLISH
71     #ifdef _COMPARESTEP_
72     MAGIC_APPLICATION app((char*)"STEP Geometry comparison",argc,argv,lst,false,true);
73     #else
74     MAGIC_APPLICATION app((char*)"MAGIC Geometry comparison",argc,argv,lst,false,true);
75     #endif
76     #else
77     #ifdef _COMPARESTEP_
78     MAGIC_APPLICATION app((char*)"Comparateur de géometrie STEP",argc,argv,lst,false,true);
79     #else
80     MAGIC_APPLICATION app((char*)"Comparateur de géometrie MAGIC",argc,argv,lst,false,true);
81     #endif
82     #endif
83     if (app.get_erreur()==true) return 0;
84 francois 283
85 francois 432 char fichier[1000],fichier2[1000],fichierout[1000];
86     int numgeo1,numgeo2;
87     int numvol1,numvol2;
88     #ifndef USE_ENGLISH
89     app.recupere_parametre_string(2,fichier,(char*)"Fichier A manquant");
90     app.recupere_parametre_string(3,fichier2,(char*)"Fichier B manquant");
91     app.recupere_parametre_string(1,fichierout,(char*)"Fichier resultat manquant");
92 francois 283 #else
93 francois 432 app.recupere_parametre_string(2,fichier,(char*)"File A missing");
94     app.recupere_parametre_string(3,fichier2,(char*)"File B missing");
95     app.recupere_parametre_string(1,fichierout,(char*)"Result file missing");
96 francois 283 #endif
97 francois 432 app.recupere_parametre_int_avec_defaut(4,numgeo1,0);
98     app.recupere_parametre_int_avec_defaut(5,numgeo2,0);
99     app.recupere_parametre_int_avec_defaut(6,numvol1,0);
100     app.recupere_parametre_int_avec_defaut(7,numvol2,0);
101    
102    
103     if (app.get_erreur()==true) return 0;
104 francois 283 OT_CPU compteur;
105 francois 366 #ifndef USE_ENGLISH
106 francois 432 app.affiche((char*)"Lecture fichier 1");
107 francois 366 #else
108 francois 432 app.affiche((char*)"Reading file A");
109 francois 366 #endif
110 francois 363 #ifdef _COMPARESTEP_
111     OCC_IMPORT occimport;
112     MG_GESTIONNAIRE gest_1;
113     MG_GESTIONNAIRE* gest1=&gest_1;
114     MG_GEOMETRIE* geo1=occimport.importer(*gest1,fichier,FICHIERSTEP,1.,1e-6);
115     MG_VOLUME* vol1=geo1->get_mg_volume(numvol1);
116     #else
117     MG_FILE *gest1=new MG_FILE(fichier);
118     MG_GEOMETRIE* geo1=gest1->get_mg_geometrie(numgeo1);
119     MG_VOLUME* vol1=geo1->get_mg_volume(numvol1);
120     #endif
121 francois 283 geo1->construit_vectorisation();
122 francois 366 #ifndef USE_ENGLISH
123 francois 283 compteur.ajouter_etape("Lecture fichier 1");
124 francois 432 app.affiche((char*)"Lecture fichier 2");
125 francois 366 #else
126     compteur.ajouter_etape("Reading file A");
127 francois 432 app.affiche((char*)"Reading file B");
128 francois 366 #endif
129 francois 363 #ifdef _COMPARESTEP_
130     MG_GESTIONNAIRE gest_2;
131     MG_GESTIONNAIRE* gest2=&gest_2;
132     MG_GEOMETRIE* geo2=occimport.importer(*gest2,fichier2,FICHIERSTEP,1.,1e-6);
133     MG_VOLUME* vol2=geo2->get_mg_volume(numvol2);
134     #else
135     MG_FILE *gest2=new MG_FILE(fichier2);
136     MG_GEOMETRIE* geo2=gest2->get_mg_geometrie(numgeo2);
137     MG_VOLUME* vol2=geo2->get_mg_volume(numvol2);
138     #endif
139    
140 francois 283 geo2->construit_vectorisation();
141 francois 366 #ifndef USE_ENGLISH
142 francois 283 int etapelf2=compteur.ajouter_etape("Lecture fichier 2");
143 francois 432 app.affiche((char*)"Comparaison");
144 francois 366 #else
145     int etapelf2=compteur.ajouter_etape("Reading file B");
146 francois 432 app.affiche((char*)"Comparison");
147 francois 366 #endif
148 francois 283 VCT_COMPARAISON compare(gest1,geo1,gest2,geo2);
149     VCT_COMPARAISON_RESULTAT cmp(gest1,gest2,geo1,geo2);
150 francois 432 compare.active_affichage(app.affiche);
151 francois 283 compare.compare(cmp,vol1,vol2,&compteur);
152 francois 432 app.affiche((char*)" CPU : ");
153 francois 283 std::vector<std::string> tab;
154     compteur.get_tabfinal(tab);
155     for (int i=0;i<tab.size();i++)
156 francois 432 app.affiche((char*)tab[i].c_str());
157 francois 283 double temps;
158 francois 366 std::string nom;
159 francois 283 compteur.get_etape(etapelf2,compteur.get_nb_etape(),nom,temps);
160     char message[255];
161 francois 366 #ifndef USE_ENGLISH
162     sprintf(message," Temps CPU %.2lf s",temps);
163 francois 432 app.affiche((char*)message);
164     app.affiche((char*)"Enregistrement resultat comparaison");
165 francois 366 #else
166     sprintf(message," CPU time %.2lf s",temps);
167 francois 432 app.affiche((char*)message);
168     app.affiche((char*)"Saving results");
169 francois 366 #endif
170 francois 351 cmp.compare_enregistrement(fichierout,fichier,fichier2);
171 francois 363
172    
173     #ifndef _COMPARESTEP_
174     delete gest1;
175     delete gest2;
176     #endif
177 francois 283
178    
179    
180    
181    
182     return 0;
183     }
184    
185    
186    
187     #pragma package(smart_init)