1 |
|
5 |
/* ---------------------------------------------------------------
|
2 |
|
|
gestion de la version de DIAMESH
|
3 |
|
|
--------------------------------------------------------------- */
|
4 |
francois |
272 |
#define VERSIONDIA 1
|
5 |
|
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 |
|
|
|