ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/outil/src/ot_parametres.cpp
Revision: 632
Committed: Thu Jan 15 18:40:00 2015 UTC (10 years, 4 months ago) by francois
File size: 4616 byte(s)
Log Message:
Changement de l'espace de voisinage dans le mailleur 2D et 3D. On utilise un ntree (octree "anisotrope" qui ne se divise pas necessairement en 8). En 2D l'espace de voisinage est maintenant sur l'espace reelle au lieu d'être sur l'espace parametrique.
+Mise sous forme de parametres de certains choix stratégiques du mailleur

File Contents

# User Rev Content
1 francois 258 #include "gestionversion.h"
2 francois 265 #include <stdio.h>
3 francois 258 #include "ot_parametres.h"
4    
5    
6    
7    
8    
9    
10    
11    
12    
13    
14    
15    
16    
17    
18     OT_PARAMETRES::OT_PARAMETRES()
19     {
20     }
21    
22     OT_PARAMETRES::OT_PARAMETRES(OT_PARAMETRES &mdd)
23     {
24 francois 283 int taille=nom_param.size();
25     for (int i=0;i<taille;i++)
26     {
27     nom_param.insert(nom_param.end(),mdd.nom_param[i]);
28     valeur_param.insert(valeur_param.end(),mdd.valeur_param[i]);
29 francois 396 aide_param.insert(aide_param.end(),mdd.aide_param[i]);
30     type_param.insert(type_param.end(),mdd.type_param[i]);
31 francois 283 }
32 francois 258 }
33    
34    
35     OT_PARAMETRES::~OT_PARAMETRES()
36     {
37     }
38    
39    
40 francois 396 void OT_PARAMETRES::ajouter(std::string chaine,double valeur,int typep,std::string aide)
41 francois 258 {
42 francois 603 int res=get_num_param(chaine);
43     if (res==-1)
44     {
45     nom_param.insert(nom_param.end(),chaine);
46     char mess[255];
47     sprintf(mess,"%lf",valeur);
48     valeur_param.insert(valeur_param.end(),mess);
49     aide_param.insert(aide_param.end(),aide);
50     type_param.insert(type_param.end(),typep);
51     }
52     else
53     {
54     char mess[255];
55     sprintf(mess,"%lf",valeur);
56     valeur_param[res]=mess;
57     if (aide.length()>aide_param[res].length()) aide_param[res]=aide;
58     }
59 francois 258 }
60    
61 francois 396 void OT_PARAMETRES::ajouter(std::string chaine,std::string valeurstring,int typep,std::string aide)
62 francois 258 {
63 francois 603 int res=get_num_param(chaine);
64     if (res==-1)
65     {
66     nom_param.insert(nom_param.end(),chaine);
67     valeur_param.insert(valeur_param.end(),valeurstring);
68     aide_param.insert(aide_param.end(),aide);
69     type_param.insert(type_param.end(),typep);
70     }
71     else
72     {
73     valeur_param[res]=valeurstring;
74     if (aide.length()>aide_param[res].length()) aide_param[res]=aide;
75     }
76    
77 francois 258 }
78    
79     void OT_PARAMETRES::enregistrer(char *nom)
80     {
81 francois 283 FILE* in=fopen(nom,"wt");
82     int taille=nom_param.size();
83     for (int i=0;i<taille;i++)
84     fprintf(in,"%s = %s //%s\n",nom_param[i].c_str(),valeur_param[i].c_str(),aide_param[i].c_str());
85     fclose(in);
86 francois 258 }
87    
88     void OT_PARAMETRES::lire(char *nom)
89     {
90 francois 283 FILE* in=fopen(nom,"rt");
91 francois 632 if (in==NULL) return;
92 francois 283 while (!feof(in))
93     {
94     char chaine[4000];
95     char* res=fgets(chaine,4000,in);
96     if (!feof(in))
97     {
98     char nom[255],c;
99     char nom2[255];
100     nom2[0]=0;
101     int nb=sscanf(chaine,"%s %c %s",nom,&c,nom2);
102 francois 396 double val;
103     int num=sscanf(nom2,"%lf",&val);
104     if (num==1) ajouter(nom,nom2,DOUBLE);
105     else ajouter(nom,nom2,STRING);
106 francois 283 }
107     }
108     fclose(in);
109 francois 258 }
110    
111    
112    
113     double OT_PARAMETRES::get_valeur(std::string chaine)
114     {
115 francois 283 int taille=nom_param.size();
116     for (int i=0;i<taille;i++)
117     {
118     std::string valtmp=nom_param[i];
119     if (valtmp==chaine)
120     {
121     double val;
122     sscanf(valeur_param[i].c_str(),"%lf",&val);
123     return val;
124     }
125    
126     }
127     return 0.;
128 francois 258 }
129    
130 francois 512 void OT_PARAMETRES::change_valeur(std::string chaine,double val)
131     {
132     int taille=nom_param.size();
133     for (int i=0;i<taille;i++)
134     {
135     std::string valtmp=nom_param[i];
136     if (valtmp==chaine)
137     {
138     char mess[255];
139     sprintf(mess,"%lf",val);
140     valeur_param[i]=mess;
141     }
142    
143     }
144     }
145    
146     void OT_PARAMETRES::change_valeur(std::string chaine,std::string val)
147     {
148     int taille=nom_param.size();
149     for (int i=0;i<taille;i++)
150     {
151     std::string valtmp=nom_param[i];
152     if (valtmp==chaine)
153     {
154     valeur_param[i]=val;
155     }
156    
157     }
158     }
159    
160 francois 603 int OT_PARAMETRES::get_num_param(std::string chaine)
161     {
162     int taille=nom_param.size();
163     for (int i=0;i<taille;i++)
164     {
165     std::string valtmp=nom_param[i];
166     if (valtmp==chaine)
167     {
168     return i;
169     }
170    
171     }
172     return -1;
173     }
174    
175    
176 francois 258 std::string OT_PARAMETRES::get_nom(std::string chaine)
177     {
178 francois 283 int taille=nom_param.size();
179     for (int i=0;i<taille;i++)
180     {
181     std::string valtmp=nom_param[i];
182     if (valtmp==chaine)
183     {
184 cuillier 338 return valeur_param[i];
185 francois 283 }
186    
187     }
188     return "";
189 francois 258 }
190    
191 francois 396 int OT_PARAMETRES::get_type(std::string chaine)
192     {
193     int taille=nom_param.size();
194     for (int i=0;i<taille;i++)
195     {
196     std::string valtmp=nom_param[i];
197     if (valtmp==chaine)
198     {
199     return type_param[i];
200     }
201    
202     }
203     return 0;
204     }
205 francois 271 double OT_PARAMETRES::get_valeur(int num)
206     {
207 francois 283 double val;
208     sscanf(valeur_param[num].c_str(),"%lf",&val);
209     return val;
210 francois 271 }
211    
212     std::string OT_PARAMETRES::get_nom(int num)
213     {
214 francois 283 return nom_param[num];
215 francois 271 }
216    
217 francois 396 int OT_PARAMETRES::get_type(int num)
218     {
219     return type_param[num];
220     }
221 francois 271 int OT_PARAMETRES::get_nb(void)
222     {
223 francois 283 return nom_param.size();
224 francois 271 }
225    
226    
227 francois 258 void OT_PARAMETRES::vide(void)
228     {
229 francois 283 nom_param.clear();
230     valeur_param.clear();
231     aide_param.clear();
232 francois 396 type_param.clear();
233 francois 258 }
234