ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/carte/src/main.cpp
Revision: 283
Committed: Tue Sep 13 21:11:20 2011 UTC (13 years, 11 months ago) by francois
File size: 6743 byte(s)
Log Message:
structure de l'écriture

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    
87     for (int i=0;i<argc;i++)
88     {
89     if (strcmp(argv[i],"-fichier")==0) strcpy(nomfichier,argv[i+1]);
90     if (strcmp(argv[i],"-fichout")==0) strcpy(nomfichiersortie,argv[i+1]);
91     if (strcmp(argv[i],"-point")==0) strcpy(nomfichierpoint,argv[i+1]);
92     if (strcmp(argv[i],"-dg")==0) eng=atof(argv[i+1]);
93     if (strcmp(argv[i],"-eps")==0) eps=atof(argv[i+1]);
94     if (strcmp(argv[i],"-taillezone")==0) ind1=atoi(argv[i+1]);
95     if (strcmp(argv[i],"-tauxtransfert")==0) ind2=atof(argv[i+1]);
96     if (strcmp(argv[i],"-typecarte")==0) typecarte=atoi(argv[i+1]);
97     if (strcmp(argv[i],"-fechantillonage")==0) fechan=atoi(argv[i+1]);
98     if (strcmp(argv[i],"-festimation")==0) festim=atoi(argv[i+1]);
99     if (strcmp(argv[i],"-exportgmsh")==0) exportgmsh=1;;
100     if (strcmp(argv[i],"-groupe")==0) numgroupe=atoi(argv[i+1]);
101     if (strcmp(argv[i],"-geo")==0) numgeo=atoi(argv[i+1]);
102     }
103    
104     if (typecarte==1)
105     {
106     affiche((char*)"Generation de carte de taille");
107     affiche((char*)"Lecture du fichier");
108     MG_FILE gest(nomfichier);
109     int nbptctl=0;
110     double *ptctl=NULL;
111     char mess[255];
112     FILE* in=fopen(nomfichierpoint,"rt");
113     if (in!=NULL)
114     {
115     affiche((char*)"Lecture du fichier de points de controles");
116     char mess[255];
117     char* res=fgets(mess,255,in);
118     sscanf(mess,"%d",&nbptctl);
119     ptctl=new double[4*nbptctl];
120     for (int i=0;i<nbptctl;i++)
121     {
122     char* res=fgets(mess,255,in);
123     sscanf(mess,"%lf %lf %lf %lf",ptctl+4*i,ptctl+4*i+1,ptctl+4*i+2,ptctl+4*i+3);
124     }
125     fclose(in);
126     }
127     FCT_GENERATEUR_FRONTIERE carte(gest,eng,eps,ind1,ind2,ptctl,nbptctl);
128     affiche((char*)"Construction de la carte");
129     MG_GROUPE_TOPOLOGIQUE* mggt=NULL;
130     if (numgroupe!=0)
131     {
132     MG_GEOMETRIE* geo=gest.get_mg_geometrieid(numgeo);
133     mggt=geo->get_mg_groupe_topologiqueid(numgroupe);
134     }
135     carte.construit(fechan,festim,mggt);
136     affiche((char*)"Enregistrement de la carte");
137     carte.enregistrer(nomfichiersortie);
138     if (nbptctl!=0) delete [] ptctl;
139     if (exportgmsh)
140     {
141     affiche((char*)"Exportation GMSH");
142     MG_EXPORT exp;
143     exp.gmsh(&carte,nomfichiersortie);
144     }
145     affiche((char*)"Fin");
146     }
147     if (typecarte==0)
148     {
149     affiche((char*)"Generation de carte de taille");
150     affiche((char*)"Lecture du fichier");
151     MG_FILE gest(nomfichier);
152     FCT_GENERATEUR_CONSTANTE carte(gest,eng);
153     affiche((char*)"Construction de la carte");
154     MG_GROUPE_TOPOLOGIQUE* mggt=NULL;
155     if (numgroupe!=0)
156     {
157     MG_GEOMETRIE* geo=gest.get_mg_geometrieid(numgeo);
158     mggt=geo->get_mg_groupe_topologiqueid(numgroupe);
159     }
160     carte.construit(fechan,festim,mggt);
161     affiche((char*)"Enregistrement de la carte");
162     carte.enregistrer(nomfichiersortie);
163     if (exportgmsh)
164     {
165     affiche((char*)"Exportation GMSH");
166     MG_EXPORT exp;
167     exp.gmsh(&carte,nomfichiersortie);
168     }
169     affiche((char*)"Fin");
170     }
171     if (typecarte==2)
172     {
173     affiche((char*)"Generation de carte de taille");
174     affiche((char*)" a partir du fichier d'estimation");
175     FCT_GENERATEUR_FICHIER carte(nomfichier,eng,ind1,ind2);
176     affiche((char*)"Construction de la carte");
177     carte.construit(fechan,festim);
178     affiche((char*)"Enregistrement de la carte");
179     carte.enregistrer(nomfichiersortie);
180     if (exportgmsh)
181     {
182     affiche((char*)"Exportation GMSH");
183     MG_EXPORT exp;
184     exp.gmsh(&carte,nomfichiersortie);
185     }
186     affiche((char*)"Fin");
187     }
188    
189     return 0;
190     }
191    
192    
193    
194     #pragma package(smart_init)