ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/carte/src/main.cpp
Revision: 394
Committed: Thu Apr 11 19:30:11 2013 UTC (12 years, 4 months ago) by francois
File size: 6957 byte(s)
Log Message:
Correction bug de nom de fichier pour les cartes basées sur un echantillonnage exterieur

File Contents

# User Rev Content
1 francois 283 //------------------------------------------------------------
2     //------------------------------------------------------------
3     // MAGiC
4     // Jean Christophe Cuilli�re et Vincent FRANCOIS
5     // D�partement de G�nie M�canique - UQTR
6     //------------------------------------------------------------
7     // Le projet MAGIC est un projet de recherche du d�partement
8     // de g�nie m�canique de l'Universit� du Qu�bec �
9     // Trois Rivi�res
10     // Les librairies ne peuvent �tre utilis�es 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    
24    
25    
26    
27     #include "gestionversion.h"
28     #ifdef WINDOWS_VERSION
29     #include "fenetre.h"
30     #endif
31    
32     #pragma hdrstop
33     #include "mg_file.h"
34     #include "mg_export.h"
35     #include "main.h"
36     #include "fct_generateur_frontiere.h"
37     #include "fct_generateur_constante.h"
38     #include "fct_generateur_fichier.h"
39     #include <string.h>
40     //---------------------------------------------------------------------------
41    
42     void affiche(char* message)
43     {
44     #ifdef WINDOWS_VERSION
45     Form1->Memo1->Lines->Add(message);
46     #else
47     std::cout << message << std::endl;
48     #endif
49     }
50    
51    
52    
53     #ifdef WINDOWS_VERSION
54     int amain(int argc,char **argv)
55     #else
56     int main(int argc,char **argv)
57     #endif
58     {
59     if (argc<3)
60     {
61     affiche((char*)" \
62     if (strcmp(argv[i],\"-fichier\")==0) strcpy(nomfichier,argv[i+1]);\n\
63     if (strcmp(argv[i],\"-fichout\")==0) strcpy(nomfichiersortie,argv[i+1]);\n\
64     if (strcmp(argv[i],\"-point\")==0) strcpy(nomfichierpoint,argv[i+1]);\n\
65     if (strcmp(argv[i],\"-dg\")==0) eng=atof(argv[i+1]);\n\
66     if (strcmp(argv[i],\"-eps\")==0) eps=atof(argv[i+1]);\n\
67     if (strcmp(argv[i],\"-taillezone\")==0) ind1=atoi(argv[i+1]);\n\
68     if (strcmp(argv[i],\"-tauxtransfert\")==0) ind2=atof(argv[i+1]);\n\
69     if (strcmp(argv[i],\"-typecarte\")==0) typecarte=atoi(argv[i+1]); 0 constante 1 frontiere 2 fichier\n\
70     if (strcmp(argv[i],\"-fechantillonage\")==0) fechan=atoi(argv[i+1]);\n\
71     if (strcmp(argv[i],\"-festimation\")==0) festim=atoi(argv[i+1]);\n\
72     if (strcmp(argv[i],\"-exportgmsh\")==0) exportgmsh=1;\n\
73     ");
74     return 1;
75     }
76    
77     char nomfichier[500];
78     char nomfichiersortie[500];
79     char nomfichierpoint[500]={""};;
80     double eng,eps,ind2;
81     int ind1,typecarte=-1;
82     int fechan,festim;
83     int exportgmsh=0;
84     int numgroupe=0;
85     int numgeo;
86 francois 375 bool versioncompilee=false;
87 francois 283
88     for (int i=0;i<argc;i++)
89     {
90     if (strcmp(argv[i],"-fichier")==0) strcpy(nomfichier,argv[i+1]);
91     if (strcmp(argv[i],"-fichout")==0) strcpy(nomfichiersortie,argv[i+1]);
92     if (strcmp(argv[i],"-point")==0) strcpy(nomfichierpoint,argv[i+1]);
93     if (strcmp(argv[i],"-dg")==0) eng=atof(argv[i+1]);
94     if (strcmp(argv[i],"-eps")==0) eps=atof(argv[i+1]);
95     if (strcmp(argv[i],"-taillezone")==0) ind1=atoi(argv[i+1]);
96     if (strcmp(argv[i],"-tauxtransfert")==0) ind2=atof(argv[i+1]);
97     if (strcmp(argv[i],"-typecarte")==0) typecarte=atoi(argv[i+1]);
98     if (strcmp(argv[i],"-fechantillonage")==0) fechan=atoi(argv[i+1]);
99     if (strcmp(argv[i],"-festimation")==0) festim=atoi(argv[i+1]);
100     if (strcmp(argv[i],"-exportgmsh")==0) exportgmsh=1;;
101     if (strcmp(argv[i],"-groupe")==0) numgroupe=atoi(argv[i+1]);
102     if (strcmp(argv[i],"-geo")==0) numgeo=atoi(argv[i+1]);
103 francois 375 if (strcmp(argv[i],"-version")==0) versioncompilee=true;
104 francois 283 }
105 francois 375 if (versioncompilee)
106     {
107     GESTIONVERSION v;
108     char version[500];
109     v.print(version);
110     affiche(version);
111     }
112 francois 283 if (typecarte==1)
113     {
114     affiche((char*)"Generation de carte de taille");
115     affiche((char*)"Lecture du fichier");
116     MG_FILE gest(nomfichier);
117     int nbptctl=0;
118     double *ptctl=NULL;
119     char mess[255];
120     FILE* in=fopen(nomfichierpoint,"rt");
121     if (in!=NULL)
122     {
123     affiche((char*)"Lecture du fichier de points de controles");
124     char mess[255];
125     char* res=fgets(mess,255,in);
126     sscanf(mess,"%d",&nbptctl);
127     ptctl=new double[4*nbptctl];
128     for (int i=0;i<nbptctl;i++)
129     {
130     char* res=fgets(mess,255,in);
131     sscanf(mess,"%lf %lf %lf %lf",ptctl+4*i,ptctl+4*i+1,ptctl+4*i+2,ptctl+4*i+3);
132     }
133     fclose(in);
134     }
135     FCT_GENERATEUR_FRONTIERE carte(gest,eng,eps,ind1,ind2,ptctl,nbptctl);
136     affiche((char*)"Construction de la carte");
137     MG_GROUPE_TOPOLOGIQUE* mggt=NULL;
138     if (numgroupe!=0)
139     {
140     MG_GEOMETRIE* geo=gest.get_mg_geometrieid(numgeo);
141     mggt=geo->get_mg_groupe_topologiqueid(numgroupe);
142     }
143     carte.construit(fechan,festim,mggt);
144     affiche((char*)"Enregistrement de la carte");
145     carte.enregistrer(nomfichiersortie);
146     if (nbptctl!=0) delete [] ptctl;
147     if (exportgmsh)
148     {
149     affiche((char*)"Exportation GMSH");
150     MG_EXPORT exp;
151     exp.gmsh(&carte,nomfichiersortie);
152     }
153     affiche((char*)"Fin");
154     }
155     if (typecarte==0)
156     {
157     affiche((char*)"Generation de carte de taille");
158     affiche((char*)"Lecture du fichier");
159     MG_FILE gest(nomfichier);
160     FCT_GENERATEUR_CONSTANTE carte(gest,eng);
161     affiche((char*)"Construction de la carte");
162     MG_GROUPE_TOPOLOGIQUE* mggt=NULL;
163     if (numgroupe!=0)
164     {
165     MG_GEOMETRIE* geo=gest.get_mg_geometrieid(numgeo);
166     mggt=geo->get_mg_groupe_topologiqueid(numgroupe);
167     }
168     carte.construit(fechan,festim,mggt);
169     affiche((char*)"Enregistrement de la carte");
170     carte.enregistrer(nomfichiersortie);
171     if (exportgmsh)
172     {
173     affiche((char*)"Exportation GMSH");
174     MG_EXPORT exp;
175     exp.gmsh(&carte,nomfichiersortie);
176     }
177     affiche((char*)"Fin");
178     }
179     if (typecarte==2)
180     {
181     affiche((char*)"Generation de carte de taille");
182     affiche((char*)" a partir du fichier d'estimation");
183 francois 394 FCT_GENERATEUR_FICHIER carte(nomfichierpoint,eng,ind1,ind2);
184 francois 283 affiche((char*)"Construction de la carte");
185     carte.construit(fechan,festim);
186     affiche((char*)"Enregistrement de la carte");
187     carte.enregistrer(nomfichiersortie);
188     if (exportgmsh)
189     {
190     affiche((char*)"Exportation GMSH");
191     MG_EXPORT exp;
192     exp.gmsh(&carte,nomfichiersortie);
193     }
194     affiche((char*)"Fin");
195     }
196    
197     return 0;
198     }
199    
200    
201    
202     #pragma package(smart_init)