1 |
francois |
283 |
/* --------------------------------------------------------------- |
2 |
|
|
gestion de la version de DIAMESH |
3 |
|
|
--------------------------------------------------------------- */ |
4 |
|
|
#define VERSIONDIA 1 |
5 |
|
|
#define SOUSVERSION 1 |
6 |
|
|
/* --------------------------------------------------------------- |
7 |
|
|
constantes de dimensionnement de la geometrie |
8 |
|
|
et du maillage |
9 |
|
|
--------------------------------------------------------------- */ |
10 |
|
|
|
11 |
|
|
#define MAX_CONNEC 30 /* nombre maxi d'element auxquels un noeud peut etre connecte */ |
12 |
|
|
/* toutes ces constantes doivent etre ajustees avec les valeurs du programme |
13 |
|
|
d'appel */ |
14 |
|
|
|
15 |
|
|
/* --------------------------------------------------------------- |
16 |
|
|
constantes de dimensionnement propres au maillage |
17 |
|
|
--------------------------------------------------------------- */ |
18 |
|
|
|
19 |
|
|
/* nombre maximum de noeuds que l'on peut choisir lors de |
20 |
|
|
la recherche sur le noeud connectable */ |
21 |
|
|
#define NB_MAX_CONNEC 5000 |
22 |
|
|
/* nombre maximum de cles que l'on peut choisir lors de |
23 |
|
|
la recherche sur le noeud connectable */ |
24 |
|
|
/* lissage */ |
25 |
|
|
#define NB_MAX_VOISIN 100 |
26 |
|
|
#define NB_MAX_INTER 10000 /* nombre maxi d'intersections */ |
27 |
|
|
/* quelques macros */ |
28 |
|
|
|
29 |
|
|
#define mem(nb,block) ((struct block *)calloc(nb,sizeof(struct block))) |
30 |
|
|
#define max(x,y) ((x) >(y)? (x) :(y)) |
31 |
|
|
#define min(x,y) ((x) <(y)? (x) :(y)) |
32 |
|
|
#define NORME(u) (float)sqrt((double)(u[0] * u[0] + u[1] * u[1] + u[2] * u[2])) |
33 |
|
|
#define PVEC(pvec,u,v)\ |
34 |
|
|
{ pvec[0] = (u[1] * v[2] - u[2] * v[1]) ;\ |
35 |
|
|
pvec[1] = (u[2] * v[0] - u[0] * v[2]) ;\ |
36 |
|
|
pvec[2] = (u[0] * v[1] - u[1] * v[0]) ; \ |
37 |
|
|
} |
38 |
|
|
#define PVECX(u,v) (u[1] * v[2] - u[2] * v[1]) |
39 |
|
|
#define PVECY(u,v) (u[2] * v[0] - u[0] * v[2]) |
40 |
|
|
#define PVECZ(u,v) (u[0] * v[1] - u[1] * v[0]) |
41 |
|
|
#define PROSCA(u,v) (u[0] * v[0] + u[1] * v[1] + u[2] * v[2]) |
42 |
|
|
#define DET3D(u,v,w) u[0]*(v[1]*w[2]-v[2]*w[1])-v[0]*(u[1]*w[2]-u[2]*w[1]) + w[0]*(u[1]*v[2]-u[2]*v[1]) |
43 |
|
|
/* logiques */ |
44 |
|
|
#define VRAI 1 |
45 |
|
|
#define FAUX 0 |
46 |
|
|
|
47 |
|
|
#define ERREUR 0 |
48 |
|
|
|
49 |
|
|
/* signe d'une expression */ |
50 |
|
|
#define POSITIF 1 |
51 |
|
|
#define NEGATIF -1 |
52 |
|
|
#define DESSUS 0 |
53 |
|
|
#define EXTERIEUR 50 |
54 |
|
|
#define INTERIEUR -50 |
55 |
|
|
|
56 |
|
|
/* connectivite des noeuds */ |
57 |
|
|
#define NO_CONNEC -100000 /* non connectable */ |
58 |
|
|
#define CARD_NULL 0 |
59 |
|
|
#define x(i) 3 * (i) |
60 |
|
|
#define y(i) 3 * (i) + 1 |
61 |
|
|
#define z(i) 3 * (i) + 2 |
62 |
|
|
#define CRITERE_ERREUR 0.0001 |
63 |
|
|
/* ------------------------------------------------------------ */ |
64 |
|
|
/* constantes diverses */ |
65 |
|
|
/* ------------------------------------------------------------ */ |
66 |
|
|
#define RAC3SUR2 0.866025 |
67 |
|
|
#define RAC2SUR2 0.708 |
68 |
|
|
#define EPSILON 0.000001 |
69 |
|
|
#define RAPPORT 0.500000 /* utilise pour definir la grille */ |
70 |
|
|
#define COEFF 0.99999 |
71 |
|
|
#define MULT 2. /* coefficient multiplicateur du rayon |
72 |
|
|
pour la recherche des points connectables */ |
73 |
|
|
#define NUM_STOP -100 |
74 |
|
|
#define KILLED 1000 |
75 |
|
|
#define DESTROYED -1000 |
76 |
|
|
#define VAL_KILLED 1234567. |
77 |
|
|
#define NB_ITERATIONS 5 /* lissage */ |
78 |
|
|
#define UNKNOWN -1 |
79 |
|
|
|
80 |
|
|
/* generation de noeud par la methode des octrees */ |
81 |
|
|
#define BIG_NUMBER 100000000. |
82 |
|
|
#define F_ERREUR -1. |
83 |
|
|
#define DEVANT_BAS_GAUCHE 10 |
84 |
|
|
#define DEVANT_BAS_DROITE 20 |
85 |
|
|
#define DEVANT_HAUT_GAUCHE 30 |
86 |
|
|
#define DEVANT_HAUT_DROITE 40 |
87 |
|
|
#define DERRIERE_BAS_GAUCHE 50 |
88 |
|
|
#define DERRIERE_BAS_DROITE 60 |
89 |
|
|
#define DERRIERE_HAUT_GAUCHE 70 |
90 |
|
|
#define DERRIERE_HAUT_DROITE 80 |
91 |
|
|
#define INIT 0 |
92 |
|
|
#define NIVEAU_NUL 0 |
93 |
|
|
#define MAX_NIVEAU 20 /* nombre max de decoupage en octree */ |
94 |
|
|
#define DECOUPAGE 20 |
95 |
|
|
#define REGULIER 1 |
96 |
|
|
#define ADAPTATIF 0 |
97 |
|
|
#define NUMBER 1.3 |
98 |
|
|
/* types d'objets */ |
99 |
|
|
/* maillage virtuel en objet etat des cases */ |
100 |
|
|
#define INSIDE 100 |
101 |
|
|
#define OUTSIDE 200 |
102 |
|
|
#define NON_VIDE 1 |
103 |
|
|
#define TETRA 4 |
104 |
|
|
#define HEXA 6 |
105 |
|
|
#define GENERER 100 |
106 |
|
|
#define SEUIL_QUALITE 0.1 |
107 |
|
|
#define ADJACENT 1 |
108 |
|
|
#define LIE 2 |
109 |
|
|
#define PROCHE 3 |
110 |
|
|
#define GENERATION 4 |
111 |
|
|
#define BACK 5 |
112 |
|
|
#define PRE_MAILLAGE -1 |
113 |
|
|
#define CREER 1 |
114 |
|
|
#define MOVE 2 |
115 |
|
|
#define REMOVE 3 |
116 |
|
|
#define KILL 4 |
117 |
|
|
#define CREER_GEN 5 |
118 |
|
|
#define RESTORE 6 |
119 |
|
|
#define CREER_FACE_GEN 7 |
120 |
|
|
#define REPRISE 10 |
121 |
|
|
#define QUALITE 0.57 |
122 |
|
|
#define OPTI 0 |
123 |
|
|
#define MEDIUM 1 |
124 |
|
|
#define LAST 2 |
125 |
|
|
#define NUM_GENE 4 |
126 |
|
|
#define ATTENTE 5 |
127 |
|
|
#define NUM_ERREUR 6 |
128 |
|
|
#define NUM_REST 7 |
129 |
|
|
#define NUM_FACE_GEN 8 |
130 |
|
|
#define NUM_LIMITE 9 |
131 |
|
|
#define BEST_QUALITY 2 |
132 |
|
|
#define FACE_GENANTE 50 |
133 |
|
|
#define FACE_GENEREE 51 |
134 |
|
|
#define CRITERE_MINI 0.1 |
135 |
|
|
/* extension des fichiers en entree */ |
136 |
|
|
#define EXT_RECOVER ".REC" |
137 |
|
|
#define EXT_NOE_MOSAIC ".COR" |
138 |
|
|
#define EXT_ELE_MOSAIC ".ELE" |
139 |
|
|
#define EXT_NOE_STAR ".STARNOE" |
140 |
|
|
#define EXT_ELE_STAR ".STARELE" |
141 |
|
|
#define EXT_OUT_NOE_MOSAIC "_3D.COR" |
142 |
|
|
#define EXT_OUT_ELE_MOSAIC "_3D.ELE" |
143 |
|
|
#define EXT_OUT_NOE_STAR "_3D.STARNOE" |
144 |
|
|
#define EXT_OUT_ELE_STAR "_3D.STARELE" |
145 |
|
|
|
146 |
|
|
#define MAX_LINE 256 |
147 |
|
|
#define NB_MAX_SEG_CTRL 500 |
148 |
|
|
#define GOOD_CRIT 1 |
149 |
|
|
#define MEDIUM_CRIT 2 |
150 |
|
|
#define LOW_CRIT 3 |
151 |
|
|
#define BAD_CRIT 4 |
152 |
|
|
#define DMOYEN 0 |
153 |
|
|
#define DMIN 1 |
154 |
|
|
#define RECH 1 |
155 |
|
|
#define GENE 2 |
156 |
|
|
#define RECH_DEL 3 |
157 |
|
|
#define GENE_DEL 4 |
158 |
|
|
#define RECH_QUAD 10 |
159 |
|
|
|