ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/compare/src/main.cpp
Revision: 1157
Committed: Thu Jun 13 22:18:27 2024 UTC (12 months ago) by francois
File size: 7138 byte(s)
Log Message:
compatibilité Ubuntu 22.04
Suppression des refeences à Windows
Ajout d'une banière

File Contents

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