ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/carte/src/main.cpp
Revision: 195
Committed: Thu Jul 16 22:05:49 2009 UTC (16 years, 1 month ago) by francois
Original Path: magic/app/carte/carte/src/main.cpp
File size: 6794 byte(s)
Log Message:
Ajout de groupe de topologie pour appliquer des algos sur une partie du fichier magic seulement
Ajout de methode qui permette de connaitre la topologie sous jacente a une topologie donnee
Gestion des maillages FEM qui ne sont attaches a une geometrie

File Contents

# User Rev Content
1 5 //------------------------------------------------------------
2     //------------------------------------------------------------
3     // MAGiC
4 francois 195 // Jean Christophe Cuilli�re et Vincent FRANCOIS
5     // D�partement de G�nie M�canique - UQTR
6 5 //------------------------------------------------------------
7 francois 195 // 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 5 // des auteurs (contact : francois@uqtr.ca)
12     //------------------------------------------------------------
13     //------------------------------------------------------------
14     //
15     // main.cpp
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20 francois 195 // Version du 02/03/2006 � 11H25
21 5 //------------------------------------------------------------
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 francois 56 #include "mg_export.h"
35 5 #include "main.h"
36     #include "fct_generateur_frontiere.h"
37     #include "fct_generateur_constante.h"
38     #include "fct_generateur_fichier.h"
39 francois 169 #include <string.h>
40 5 //---------------------------------------------------------------------------
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 francois 195 if (argc<3)
60     {
61     affiche(" \
62 francois 103 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 francois 195 if (strcmp(argv[i],\"-exportgmsh\")==0) exportgmsh=1;\n\
73 francois 103 ");
74 francois 195 return 1;
75     }
76 francois 103
77 5 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 francois 56 int exportgmsh=0;
84 francois 195 int numgroupe=0;
85     int numgeo;
86 5
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 francois 56 if (strcmp(argv[i],"-exportgmsh")==0) exportgmsh=1;;
100 francois 195 if (strcmp(argv[i],"-groupe")==0) numgroupe=atoi(argv[i+1]);
101     if (strcmp(argv[i],"-geo")==0) numgeo=atoi(argv[i+1]);
102 5 }
103    
104     if (typecarte==1)
105     {
106 francois 129 affiche("Generation de carte de taille");
107 5 affiche("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("Lecture du fichier de points de controles");
116     char mess[255];
117     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     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("Construction de la carte");
129 francois 195 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 5 affiche("Enregistrement de la carte");
137     carte.enregistrer(nomfichiersortie);
138     if (nbptctl!=0) delete [] ptctl;
139 francois 56 if (exportgmsh)
140     {
141     affiche("Exportation GMSH");
142     MG_EXPORT exp;
143     exp.gmsh(&carte,nomfichiersortie);
144     }
145 5 affiche("Fin");
146     }
147     if (typecarte==0)
148     {
149 francois 129 affiche("Generation de carte de taille");
150 5 affiche("Lecture du fichier");
151     MG_FILE gest(nomfichier);
152     FCT_GENERATEUR_CONSTANTE carte(gest,eng);
153     affiche("Construction de la carte");
154 francois 195 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 5 affiche("Enregistrement de la carte");
162     carte.enregistrer(nomfichiersortie);
163 francois 56 if (exportgmsh)
164     {
165     affiche("Exportation GMSH");
166     MG_EXPORT exp;
167     exp.gmsh(&carte,nomfichiersortie);
168     }
169 5 affiche("Fin");
170     }
171     if (typecarte==2)
172     {
173 francois 129 affiche("Generation de carte de taille");
174     affiche(" a partir du fichier d'estimation");
175 5 FCT_GENERATEUR_FICHIER carte(nomfichier,eng,ind1,ind2);
176     affiche("Construction de la carte");
177     carte.construit(fechan,festim);
178     affiche("Enregistrement de la carte");
179     carte.enregistrer(nomfichiersortie);
180 francois 56 if (exportgmsh)
181     {
182     affiche("Exportation GMSH");
183     MG_EXPORT exp;
184     exp.gmsh(&carte,nomfichiersortie);
185     }
186 5 affiche("Fin");
187     }
188 francois 56
189 5 return 0;
190     }
191    
192    
193    
194     #pragma package(smart_init)