ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/mailleur/src/main.cpp
Revision: 5
Committed: Tue Jun 12 20:26:34 2007 UTC (18 years ago)
Original Path: magic/app/mailleur/mailleur/src/main.cpp
File size: 5041 byte(s)
Log Message:

File Contents

# User Rev Content
1 5 //------------------------------------------------------------
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    
30     #include "main.h"
31     #include "mg_file.h"
32     #include "fct_taille.h"
33     #include "mailleur0d.h"
34     #include "mailleur1d.h"
35     #include "mailleur2d.h"
36     #include "mailleur3d.h"
37     #include "mailleur3d_dia.h"
38     #include "fct_generateur_3D.h"
39    
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) return 1;
60     char fichier[1000],fichiercarte[1000];
61     int typecarte,niveau=3,numgeometrie=0;
62     double eps,dg,prioritemetrique=0.65;
63     for (int i=0;i<argc;i++)
64     {
65     if (strcmp(argv[i],"-magic")==0) strcpy(fichier,argv[i+1]);
66     if (strcmp(argv[i],"-typecarte")==0) typecarte=atoi(argv[i+1]);
67     if (strcmp(argv[i],"-carte")==0) strcpy(fichiercarte,argv[i+1]);
68     if (strcmp(argv[i],"-eng")==0) dg=atof(argv[i+1]);
69     if (strcmp(argv[i],"-eps")==0) eps=atof(argv[i+1]);
70     if (strcmp(argv[i],"-niveau")==0) niveau=atoi(argv[i+1]);
71     if (strcmp(argv[i],"-prioritemetrique")==0) prioritemetrique=atof(argv[i+1]);
72     if (strcmp(argv[i],"-numgeo")==0) numgeometrie=atoi(argv[i+1]);
73     }
74     char message[500];
75     char nomtypecarte[9][9]={"Standard","Fichier"};
76     affiche("Param�re d'�ude");
77     sprintf(message," Fichier magic : %s",fichier);affiche(message);
78     sprintf(message," Numero de g�metrie : %d",numgeometrie);affiche(message);
79     sprintf(message," Type de carte : %s",nomtypecarte[typecarte-1]);affiche(message);
80     if (typecarte==1)
81     {
82     sprintf(message," Eng : %f",dg);affiche(message);
83     sprintf(message," eps : %f",eps);affiche(message);
84     }
85     if (typecarte==2)
86     {
87     sprintf(message," Fichier carte : %s",fichiercarte);affiche(message);
88     }
89     sprintf(message," Parametre de metrique : %2.2f%",prioritemetrique*100);affiche(message);
90     affiche("Lecture du fichier M.A.G.i.C");
91     MG_FILE gest(fichier);
92     MG_GEOMETRIE* mggeo=gest.get_mg_geometrie(numgeometrie);
93     MG_MAILLAGE* mgmai=new MG_MAILLAGE(mggeo);
94     gest.ajouter_mg_maillage(mgmai);
95     FCT_GENERATEUR_3D<4> carte;
96     FCT_TAILLE* metrique;
97     MAILLEUR2D::priorite_metrique=prioritemetrique;
98     if (typecarte==1)
99     {
100     metrique=NULL;
101     MAILLEUR::epsilon=eps;
102     MAILLEUR::distance_maximale=dg;
103     }
104     if (typecarte==2)
105     {
106     affiche("Lecture carte de taille");
107     carte.lire(fichiercarte);
108     metrique=&carte;
109     }
110     if (niveau>-1)
111     {
112     affiche("MAILLAGE 0D");
113     MAILLEUR0D m0d(mgmai,mggeo);
114     m0d.maille();
115     }
116     if (niveau>0)
117     {
118     affiche("MAILLAGE 1D");
119     int nb=mggeo->get_nb_mg_arete();
120     for (int i=0;i<nb;i++)
121     {
122     MG_ARETE* arete=mggeo->get_mg_arete(i);
123     MAILLEUR1D m1d(mgmai,mggeo,arete,metrique);
124     m1d.maille();
125     }
126     }
127     if (niveau>1)
128     {
129     affiche("MAILLAGE 2D");
130     int nb=mggeo->get_nb_mg_face();
131     for (int i=0;i<nb;i++)
132     {
133     char mess[100];
134     sprintf(mess," face %d",i);
135     affiche(mess);
136     MG_FACE* mgface=mggeo->get_mg_face(i);
137     MAILLEUR2D m2d(mgmai,mggeo,mgface,metrique);
138     m2d.maille();
139     }
140     }
141     if (niveau==3)
142     {
143     affiche("MAILLAGE 3D");
144     MAILLEUR3D m3d(mgmai,mggeo);
145     //if (form->CheckBox2->Checked==true) m3d.active_log(form->Caption.c_str());
146     m3d.maille();
147     }
148     affiche("Enregistrement");
149     gest.enregistrer(fichier);
150     affiche("Fin");
151     return 0;
152     }
153    
154    
155    
156     #pragma package(smart_init)