ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/acismesh/const.h
Revision: 1
Committed: Mon Jun 11 22:53:07 2007 UTC (17 years, 11 months ago)
Content type: text/plain
File size: 22721 byte(s)
Log Message:

File Contents

# Content
1 /*****************************************************************
2
3 const.h Type:Inc
4
5 Quelque fonction utile
6
7 Date de creation : Thu Jan 25 15:51:38 1996
8
9 Derniere version : Wed Jul 16 11:35:36 1997
10
11
12
13
14
15
16
17
18 Vincent FRANCOIS
19
20 *****************************************************************/
21 #include <malloc.h>
22
23 /* definition de fonctions mathematiques */
24
25 #define EGAL(x,y,eps) (float)fabs((double)(x-y))<eps
26
27 #define EGAL2(x,y) (float)fabs((double)(x-y))<0.0002*x*x+0.00014
28 #define VEC(ab,a,b)\
29 {\
30 ab[0]=b->x-a->x;\
31 ab[1]=b->y-a->y;\
32 ab[2]=b->z-a->z;\
33 }
34
35
36 #define PSCA(a,b) (a[0]*b[0]+a[1]*b[1]+a[2]*b[2])
37
38
39 #define PVEC(res,u,v)\
40 {\
41 res[0]=u[1]*v[2]-u[2]*v[1];\
42 res[1]=u[2]*v[0]-u[0]*v[2];\
43 res[2]=u[0]*v[1]-u[1]*v[0];\
44 }
45
46
47 #define DETER(a,b,c,d) (a*d-b*c)
48
49
50 #define NORME(vec)\
51 {\
52 vec[3]=(float)sqrt((double)(vec[0]*vec[0]+vec[1]*vec[1]+vec[2]*vec[2]));\
53 if (!(EGAL(vec[3],0.,0.0001)))\
54 {\
55 vec[0]=vec[0]/vec[3];\
56 vec[1]=vec[1]/vec[3];\
57 vec[2]=vec[2]/vec[3];\
58 }\
59 }
60
61 #define MINI(res,a,b) if ( (a)>(b) ) res=(b); else res=(a);
62
63 #define MAXI(res,a,b) if ( (a)>(b) ) res=(a); else res=(b);
64
65 #define True 1
66 #define False 0
67
68
69 /* definition de constante pour le logiciel */
70 #define PI 3.141592654
71 #define PAS 1
72 #define PAS2 10
73
74 #define SINGLE 1
75 #define DOUBLE 2
76
77 #define FORWARD 0
78 #define REVERSED 1
79
80 #define IS_OUT 0
81 #define IS_IN 1
82
83 #define DETRUIT 0
84 #define GARDE 1
85
86 #define LIBRE 0
87 #define ATTACHE 1
88 #define U 4
89 #define V 5
90
91 #define OLD 0
92 #define NEW 1
93 #define VERIFICATION 2
94 #define LIAISON 3
95
96 #define CONSTRUIT 0
97 #define RECUPERER 1
98
99 #define RETARDE1 0
100 #define RETARDE2 1
101 #define RETARDE3 2
102 #define ORIGINAL 3
103
104 #define TOUS 85
105
106 #define TOTAL 0
107 #define LIMITE 1
108
109
110 #define NONFORCE 159
111
112 /* geometrie */
113 #define VERTEX 60
114 #define EDGE 61
115 #define FACE 62
116 #define STRAIGHT 63
117 #define ELLIPSE 64
118 #define PLANE 65
119 #define CONE 66
120 #define POINT 67
121 #define BODY 68
122
123
124 /* maillage */
125 #define NOEUD 75
126 #define SEGMENT 76
127 #define TRIANGLE 77
128 #define FRONTIERE 78
129 #define FRONT 79
130 #define TETRA 80
131 #define MNOEUD 81
132 #define MSEGMENT 82
133 #define MTRIANGLE 83
134 #define MTETRA 84
135 #define FRONTIERE3D 85
136 #define FRONT3D 86
137 #define ADJACENT 200
138 #define LIE 201
139 #define AUTRE 202
140
141
142 /* maths */
143 #define FONCTION 100
144 #define DERIVE 101
145 #define DERIVE_SECONDE 102
146 #define INVERSE 103
147 #define E 104
148 #define F 105
149 #define G 106
150 #define NORMAL 107
151 #define DU 108
152 #define DV 109
153 #define DUU 110
154 #define DUV 111
155 #define DVV 112
156 #define ZERO_DERIVE 113
157 #define EU 114
158 #define GV 115
159
160
161
162 /* string constante */
163 #ifndef anglais
164 #define francais
165 #endif
166
167 #ifdef francais
168 #define FENETRE_FIN "Fin"
169 #define FENETRE_ANNULER "Annuler"
170 #define FENETRE_MESSAGE "Voulez vous vraiment quitter ACISMESH ?"
171 #define ACIS_ERREUR "ERREUR....ouverture de fichier impossible"
172 #define ACIS_LECTURE "LECTURE....ouverture du fichier ACIS %d : %s\n"
173 #define ACIS_LEC_RES " LECTURE....il y a %d entites\n"
174 #define ACIS_WARNING " WARNING....entite %s ligne %d non prise en compte\n"
175 #define M0D_VERTEX "MAILLAGE....maillage des vertex\n"
176 #define M1D_EDGE "MAILLAGE....maillage des edge\n"
177 #define M1D_PARA " PARAMETRISATION....mise en equation des edge\n"
178 #define M1D_GEO " DISCRETISATION....visualisation de la geometrie\n"
179 #define M1D_DIS " DISCRETISATION....discretisation des edge\n"
180 #define M1D_LISS " LISSAGE....calcul du gradient minimun de densite\n"
181 #define M2D_FACE "MAILLAGE....maillage des face\n"
182 #define M2D_FA_DI " FACE....face courante %d associe a l entite %d\n"
183 #define M2D_FA_IN " FACE INVERSE....face courante %d associe a l entite %d\n"
184 #define M2D_AC1 " Maillage\n"
185 #define M2D_AC2 " Optimisation %d\n"
186 #define M2D_AC3 " Analyse \n"
187 #define M2D_ANA_RES1 " Nombre theorique d element : %d ; Nombre pratique : %d \n"
188 #define M2D_ANA_RES2 " Erreur : %f\n"
189 #define M2D_ANA_RES3 " Epsilon max : %f\n"
190 #define M2D_ANA_RES4 " Epsilon max maille type 1: %f\n"
191 #define M2D_ANA_RES5 " Epsilon max maille type 2: %f\n"
192 #define M3D_PREP "PREPARATION....preparation pour le maillage 3D\n"
193 #define M3D_OC " PREPARATION....creation d un arbre octal\n"
194 #define M3D_OC_CR " %d octree creees\n"
195 #define M3D_FE_CR " %d feuilles creees\n"
196 #define M3D_FRONT " PREPARATION....initialisation du front\n"
197 #define M3D_BODY "MAILLAGE....maillage des body\n"
198 #define M3D_OPTI "MAILLAGE....optimisation de maillage des body\n"
199 #define M3D_OPTI1 " OPTIMISATION....phase croissante\n"
200 #define M3D_OPTI2 " OPTIMISATION....phase decroissante\n"
201 #define M3D_PREP1 "PREPARATION....preparation pour le remaillage\n"
202 #define M3D_PREP2 " PREPARATION....enregistrement de l'arbre octal\n"
203 #define MAIN_ERREUR " ERREUR....pas de densite globale!\n"
204 #define R3D_C_OC "REMAILLAGE....Reconstruction de l octree\n"
205 #define R3D_C_OC_RE " RESULTAT....%d octree recreees\n"
206 #define R3D_C_OC_FE " %d feuilles\n"
207 #define R3D_C_OC_ME "REMAILLAGE....Recuperation de l ancien maillage\n"
208 #define R3D_C_OC_WA1 "WARNING....pas de fichier maillage 3D present\n"
209 #define R3D_C_OC_WA2 "ERREUR....pas de fichier maillage 2D present\n"
210 #define R3D_C_OC_WA3 "ERREUR....pas de fichier maillage 1D present\n"
211 #define R3D_C_OC_RES1 " RESULTAT....%d noeuds\n"
212 #define R3D_C_OC_RES2 " %d segments\n"
213 #define R3D_C_OC_RES3 " %d triangles\n"
214 #define R3D_C_OC_RES4 " %d tetras\n"
215 #define R3D_COMP "REMAILLAGE....comparaison des octree\n"
216 #define R3D_FILE "ERREUR....pas de fichier historique present\n"
217 #define R3D_GENE1 "REMAILLAGE....generation du nouveau maillage\n"
218 #define R3D_GENE2 " REMAILLAGE....Recuperation des mailles 1D non detruites\n"
219 #define R3D_GENE3 " REMAILLAGE....Discretisation des edge non maillees\n"
220 #define R3D_GENE4 " REMAILLAGE....Lissage du maillage lineique\n"
221 #define R3D_GENE5 " REMAILLAGE....Recuperation des mailles 2D non detruites\n"
222 #define R3D_GENE6 " REMAILLAGE....Discretisation des face non maillees\n"
223 #define R3D_GENE7 " REMAILLAGE....Recuperation des mailles 3D non detruites\n"
224 #define R3D_GENE8 " REMAILLAGE....Discretisation du reste du volume\n"
225 #define R3D_INS_TRI_NEW " Nouvelle face\n"
226 #define R3D_INS_TRI_OLD " Face contenant %d facette\n"
227 #define R3D_INS_TRI_REC " Face entierement recuperee\n"
228 #define R3D_M2D_FACE " FACE....face courante %d associe a l entite %d\n"
229 #define R3D_M2D_RES " Facette recuperee : %d Facette rattachee : %d\n"
230 #define R3D_M3D_BODY " Bodyette recuperee : %d Bodyette rattachee : %d\n"
231 #define R3D_M3D_RES " RESULTAT....Nombre de front volumique : %d\n"
232 #define RESULTAT1 " *****************************************************\n"
233 #define RESULTAT2 " * *\n"
234 #define RESULTAT3 " * MAILLAGE REUSSI *\n"
235 #define RESULTAT4 " * *\n"
236 #define RESULTAT5 " *****************************************************\n"
237 #define RESULTAT6 " * *\n"
238 #define RESULTAT7 " * nomdre de noeuds : %6d *\n"
239 #define RESULTAT8 " * nomdre de mailles : %6d *\n"
240 #define RESULTAT9 " * ecart nodal : %6.2f *\n"
241 #define RESULTAT10 " * epsilon : %6.2f *\n"
242 #define RESULTAT11 " * *\n"
243 #define RESULTAT12 " * critere minimum : %6f *\n"
244 #define RESULTAT13 " * critere maximum : %6f *\n"
245 #define RESULTAT14 " * critere moyen : %6f *\n"
246 #define RESULTAT15 " * *\n"
247 #define RESULTAT16 " * maille de bonne qualite : %6d soit %6.2f%% *\n"
248 #define RESULTAT17 " * maille de qualite moyenne : %6d soit %6.2f%% *\n"
249 #define RESULTAT18 " * maille de qualite passable : %6d soit %6.2f%% *\n"
250 #define RESULTAT19 " * maille de qualite mediocre : %6d soit %6.2f%% *\n"
251 #define RESULTAT20 " * *\n"
252 #define RESULTAT21 " *****************************************************\n"
253 #define RESULTAT22 " *****************************************************\n"
254 #define RESULTAT23 " * *\n"
255 #define RESULTAT24 " * MAILLAGE DE PEAU *\n"
256 #define RESULTAT25 " * *\n"
257 #define RESULTAT26 " *****************************************************\n"
258 #define RESULTAT27 " * *\n"
259 #define RESULTAT28 " * nomdre de noeuds : %6d *\n"
260 #define RESULTAT29 " * nomdre de mailles : %6d *\n"
261 #define RESULTAT30 " * ecart nodal : %6.2f *\n"
262 #define RESULTAT31 " * epsilon : %6.2f *\n"
263 #define RESULTAT32 " * epsilon : %6.2f% *\n"
264 #define RESULTAT33 " * *\n"
265 #define RESULTAT34 " * optimisation : %6d *\n"
266 #define RESULTAT35 " * *\n"
267 #define RESULTAT36 " * critere minimum : %6f *\n"
268 #define RESULTAT37 " * critere maximum : %6f *\n"
269 #define RESULTAT38 " * critere moyen : %6f *\n"
270 #define RESULTAT39 " * *\n"
271 #define RESULTAT40 " * maille de bonne qualite : %6d soit %6.2f%% *\n"
272 #define RESULTAT41 " * maille de qualite moyenne : %6d soit %6.2f%% *\n"
273 #define RESULTAT42 " * maille de qualite passable : %6d soit %6.2f%% *\n"
274 #define RESULTAT43 " * maille de qualite mediocre : %6d soit %6.2f%% *\n"
275 #define RESULTAT44 " * *\n"
276 #define RESULTAT45 " * Epsilon max : %6.6f *\n"
277 #define RESULTAT46 " * Epsilon max maille type 1 : %6.6f *\n"
278 #define RESULTAT47 " * Epsilon max maille type 2 : %6.6f *\n"
279 #define RESULTAT48 " * Nombre theorique de maille : %6d *\n"
280 #define RESULTAT49 " * Erreur : %6.2f%% *\n"
281 #define RESULTAT50 " * *\n"
282 #define RESULTAT51 " *****************************************************\n"
283 #define RESULTAT52 " * *\n"
284 #define RESULTAT53 " * MAILLAGE VOLUMIQUE *\n"
285 #define RESULTAT54 " * *\n"
286 #define RESULTAT55 " *****************************************************\n"
287 #define RESULTAT56 " * *\n"
288 #define RESULTAT57 " * nomdre de noeuds : %6d *\n"
289 #define RESULTAT58 " * nomdre de mailles : %6d *\n"
290 #define RESULTAT59 " * *\n"
291 #define RESULTAT60 " * critere minimum : %6f *\n"
292 #define RESULTAT61 " * critere maximum : %6f *\n"
293 #define RESULTAT62 " * critere moyen : %6f *\n"
294 #define RESULTAT63 " * *\n"
295 #define RESULTAT64 " * maille de bonne qualite : %6d soit %6.2f%% *\n"
296 #define RESULTAT65 " * maille de qualite moyenne : %6d soit %6.2f%% *\n"
297 #define RESULTAT66 " * maille de qualite passable : %6d soit %6.2f%% *\n"
298 #define RESULTAT67 " * maille de qualite mediocre : %6d soit %6.2f%% *\n"
299 #define RESULTAT68 " * *\n"
300 #define RESULTAT69 " * CPU : %9.2f *\n"
301 #define RESULTAT70 " * *\n"
302 #define RESULTAT71 " *****************************************************\n"
303 #define ETATFR3D " Nombre de faces du front *****> %d\n"
304
305 #endif
306
307
308
309 #ifdef anglais
310 #define FENETRE_FIN "End"
311 #define FENETRE_ANNULER "Cancel"
312 #define FENETRE_MESSAGE "do you want to quit ACISMESH ?"
313 #define ACIS_ERREUR "ERROR....file open impossible"
314 #define ACIS_LECTURE "READING....ACIS %d file open : %s\n"
315 #define ACIS_LEC_RES " READIND....there are %d entities\n"
316 #define ACIS_WARNING " WARNING....entity %s line %d unknown\n"
317 #define M0D_VERTEX "MESH....vertex mesh\n"
318 #define M1D_EDGE "MESH....edge mesh\n"
319 #define M1D_PARA " PARAMETRIZATION....edge equation calculation\n"
320 #define M1D_GEO " DISCRETIZATION....geometry visualization\n"
321 #define M1D_DIS " DISCRETIZATION....edge discretization\n"
322 #define M1D_LISS " SMOTHING....minimum variation density calculation\n"
323 #define M2D_FACE "MESH....face mesh\n"
324 #define M2D_FA_DI " FACE....current face %d associed with entity %d\n"
325 #define M2D_FA_IN " FACE INVERSE....current face %d associed with entity %d\n"
326 #define M2D_AC1 " Mesh\n"
327 #define M2D_AC2 " Optimization %d\n"
328 #define M2D_AC3 " Analysis \n"
329 #define M2D_ANA_RES1 " Theorical element number : %d ; Real number : %d \n"
330 #define M2D_ANA_RES2 " Error : %f\n"
331 #define M2D_ANA_RES3 " Epsilon max : %f\n"
332 #define M2D_ANA_RES4 " Epsilon max triangle type 1: %f\n"
333 #define M2D_ANA_RES5 " Epsilon max triangle type 2: %f\n"
334 #define M3D_PREP "PREPARATION....3D mesh preparation\n"
335 #define M3D_OC " PREPARATION....octree creation\n"
336 #define M3D_OC_CR " %d created cells\n"
337 #define M3D_FE_CR " %d created leafs\n"
338 #define M3D_FRONT " PREPARATION....front inititialization\n"
339 #define M3D_BODY "MESH....body mesh\n"
340 #define M3D_OPTI "MESH....body mesh optimization\n"
341 #define M3D_OPTI1 " OPTIMIZATION....first loop\n"
342 #define M3D_OPTI2 " OPTIMIZATION....second loop\n"
343 #define M3D_PREP1 "PREPARATION....remeshing preparation\n"
344 #define M3D_PREP2 " PREPARATION....octree save\n"
345 #define MAIN_ERREUR " ERROR....no global spacing nodal!\n"
346 #define R3D_C_OC "REMESHING....octree reconstruction\n"
347 #define R3D_C_OC_RE " RESULT....%d recreated octree\n"
348 #define R3D_C_OC_FE " %d leafs\n"
349 #define R3D_C_OC_ME "REMESHING....old mesh loading\n"
350 #define R3D_C_OC_WA1 "WARNING....no 3D mesh file\n"
351 #define R3D_C_OC_WA2 "ERROR....no 2D mesh file\n"
352 #define R3D_C_OC_WA3 "ERROR....no 1D mesh file\n"
353 #define R3D_C_OC_RES1 " RESULT....%d nodes\n"
354 #define R3D_C_OC_RES2 " %d segments\n"
355 #define R3D_C_OC_RES3 " %d triangles\n"
356 #define R3D_C_OC_RES4 " %d tetrahedronss\n"
357 #define R3D_COMP "REMESHING....octree comparaison\n"
358 #define R3D_FILE "ERROR....no historic file\n"
359 #define R3D_GENE1 "REMESHING....new mesh generation\n"
360 #define R3D_GENE2 " REMESHING....saved segment\n"
361 #define R3D_GENE3 " REMESHING....edge meshing\n"
362 #define R3D_GENE4 " REMESHING....edge smothing\n"
363 #define R3D_GENE5 " REMESHING....saved triangle\n"
364 #define R3D_GENE6 " REMESHING....face meshing\n"
365 #define R3D_GENE7 " REMESHING....saved tetra\n"
366 #define R3D_GENE8 " REMESHING....body meshing\n"
367 #define R3D_INS_TRI_NEW " New face\n"
368 #define R3D_INS_TRI_OLD " Face with %d triangle blocks\n"
369 #define R3D_INS_TRI_REC " Entierely saved face\n"
370 #define R3D_M2D_FACE " FACE....current face %d associed with entity %d\n"
371 #define R3D_M2D_RES " Saved triangle block : %d Attached triangle block : %d\n"
372 #define R3D_M3D_BODY " Saved tetra block : %d Attached tetra block : %d\n"
373 #define R3D_M3D_RES " RESULT....3D front number : %d\n"
374 #define RESULTAT1 " *****************************************************\n"
375 #define RESULTAT2 " * *\n"
376 #define RESULTAT3 " * SUCCEED MESH *\n"
377 #define RESULTAT4 " * *\n"
378 #define RESULTAT5 " *****************************************************\n"
379 #define RESULTAT6 " * *\n"
380 #define RESULTAT7 " * node number : %6d *\n"
381 #define RESULTAT8 " * triangle number : %6d *\n"
382 #define RESULTAT9 " * nodal spacing : %6.2f *\n"
383 #define RESULTAT10 " * epsilon : %6.2f *\n"
384 #define RESULTAT11 " * *\n"
385 #define RESULTAT12 " * minimum quality : %6f *\n"
386 #define RESULTAT13 " * maximum quality : %6f *\n"
387 #define RESULTAT14 " * average quality : %6f *\n"
388 #define RESULTAT15 " * *\n"
389 #define RESULTAT16 " * excellent quality triangle : %6d soit %6.2f%% *\n"
390 #define RESULTAT17 " * good quality triangle : %6d soit %6.2f%% *\n"
391 #define RESULTAT18 " * poor quality triangle : %6d soit %6.2f%% *\n"
392 #define RESULTAT19 " * nul quality triangle : %6d soit %6.2f%% *\n"
393 #define RESULTAT20 " * *\n"
394 #define RESULTAT21 " *****************************************************\n"
395 #define RESULTAT22 " *****************************************************\n"
396 #define RESULTAT23 " * *\n"
397 #define RESULTAT24 " * FACE MESH *\n"
398 #define RESULTAT25 " * *\n"
399 #define RESULTAT26 " *****************************************************\n"
400 #define RESULTAT27 " * *\n"
401 #define RESULTAT28 " * node number : %6d *\n"
402 #define RESULTAT29 " * triangle number : %6d *\n"
403 #define RESULTAT30 " * nodal spacing : %6.2f *\n"
404 #define RESULTAT31 " * epsilon : %6.2f *\n"
405 #define RESULTAT32 " * epsilon : %6.2f% *\n"
406 #define RESULTAT33 " * *\n"
407 #define RESULTAT34 " * optimization : %6d *\n"
408 #define RESULTAT35 " * *\n"
409 #define RESULTAT36 " * minimum quality : %6f *\n"
410 #define RESULTAT37 " * maximum quality : %6f *\n"
411 #define RESULTAT38 " * average quality : %6f *\n"
412 #define RESULTAT39 " * *\n"
413 #define RESULTAT40 " * excellent quality triangle : %6d soit %6.2f%% *\n"
414 #define RESULTAT41 " * good quality triangle : %6d soit %6.2f%% *\n"
415 #define RESULTAT42 " * poor quality triangle : %6d soit %6.2f%% *\n"
416 #define RESULTAT43 " * nul quality triangle : %6d soit %6.2f%% *\n"
417 #define RESULTAT44 " * *\n"
418 #define RESULTAT45 " * Epsilon max : %6.6f *\n"
419 #define RESULTAT46 " * Epsilon max triangle type1 : %6.6f *\n"
420 #define RESULTAT47 " * Epsilon max triangle type2 : %6.6f *\n"
421 #define RESULTAT48 " * Theorical triangle number : %6d *\n"
422 #define RESULTAT49 " * Error : %6.2f%% *\n"
423 #define RESULTAT50 " * *\n"
424 #define RESULTAT51 " *****************************************************\n"
425 #define RESULTAT52 " * *\n"
426 #define RESULTAT53 " * BODY MESH *\n"
427 #define RESULTAT54 " * *\n"
428 #define RESULTAT55 " *****************************************************\n"
429 #define RESULTAT56 " * *\n"
430 #define RESULTAT57 " * node number : %6d *\n"
431 #define RESULTAT58 " * tetra number : %6d *\n"
432 #define RESULTAT59 " * *\n"
433 #define RESULTAT60 " * minimum quality : %6f *\n"
434 #define RESULTAT61 " * maximum quality : %6f *\n"
435 #define RESULTAT62 " * average quality : %6f *\n"
436 #define RESULTAT63 " * *\n"
437 #define RESULTAT64 " * excellent quality triangle : %6d soit %6.2f%% *\n"
438 #define RESULTAT65 " * good quality triangle : %6d soit %6.2f%% *\n"
439 #define RESULTAT66 " * poor quality triangle : %6d soit %6.2f%% *\n"
440 #define RESULTAT67 " * nul quality triangle : %6d soit %6.2f%% *\n"
441 #define RESULTAT68 " * *\n"
442 #define RESULTAT69 " * CPU : %9.2f *\n"
443 #define RESULTAT70 " * *\n"
444 #define RESULTAT71 " *****************************************************\n"
445 #define ETATFR3D " Number of front face *****> %d\n"
446
447 #endif