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

# User Rev Content
1 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