12 |
|
#include "rhd_sample.h" |
13 |
|
#include "sm_stree.h" |
14 |
|
|
15 |
+ |
|
16 |
|
#ifndef TRUE |
17 |
|
#define TRUE 1 |
18 |
|
#define FALSE 0 |
67 |
|
#define T_NTH_V(t,i) ((t)->verts[(i)]) |
68 |
|
#define T_WHICH_V(t,i) \ |
69 |
|
(T_NTH_V(t,0)==(i)?0:T_NTH_V(t,1)==(i)?1:T_NTH_V(t,2)==(i)?2:-1) |
70 |
< |
#define T_NEXT_FREE(t) ((t)->verts[0]) |
71 |
< |
#define T_VALID_FLAG(t) ((t)->verts[1]) |
70 |
> |
#define T_NEXT_FREE(t) ((t)->nbrs[0]) |
71 |
> |
#define T_VALID_FLAG(t) ((t)->nbrs[1]) |
72 |
|
#define T_IS_VALID(t) (T_VALID_FLAG(t)!=-1) |
73 |
|
#define T_FLAGS 4 |
74 |
|
#define T_FLAG_BYTES T_FLAGS/8.0 |
155 |
|
|
156 |
|
#define SM_ALLOWED_VIEW_CHANGE(m) (SM_NUM_SAMP(m)/smDist_sum*SM_VIEW_FRAC) |
157 |
|
|
158 |
< |
#define SM_FOR_ALL_FLAGGED_TRIS(m,i,w,b) for(i=0,i=smNext_tri_flag_set(m,i,w,b);i < SM_TRI_CNT(m);i++,i=smNext_tri_flag_set(m,i,w,b)) |
158 |
> |
#define SM_FOR_ALL_FLAGGED_TRIS(m,i,w,b) for(i=smNext_tri_flag_set(m,0,w,b); \ |
159 |
> |
i < SM_TRI_CNT(m); i=smNext_tri_flag_set(m,i+1,w,b)) |
160 |
|
|
161 |
|
#define SM_FOR_ALL_ACTIVE_TRIS(m,i) SM_FOR_ALL_FLAGGED_TRIS(m,i,T_ACTIVE_FLAG,0) |
162 |
|
#define SM_FOR_ALL_NEW_TRIS(m,i) SM_FOR_ALL_FLAGGED_TRIS(m,i,T_NEW_FLAG,0) |
163 |
|
#define SM_FOR_ALL_BASE_TRIS(m,i) SM_FOR_ALL_FLAGGED_TRIS(m,i,T_BASE_FLAG,0) |
164 |
< |
#define SM_FOR_ALL_VALID_TRIS(m,i) for((i)=0,(i)=smNext_valid_tri(m,i);(i)< \ |
165 |
< |
SM_TRI_CNT(m); (i)++,(i)= smNext_valid_tri(m,i)) |
164 |
> |
#define SM_FOR_ALL_VALID_TRIS(m,i) for(i=smNext_valid_tri(m,0); \ |
165 |
> |
i < SM_TRI_CNT(m); i=smNext_valid_tri(m,i+1)) |
166 |
|
|
167 |
|
#define SM_FOR_ALL_ACTIVE_FG_TRIS(m,i) SM_FOR_ALL_FLAGGED_TRIS(m,i,T_ACTIVE_FLAG,1) |
168 |
|
|
182 |
|
|
183 |
|
#define SM_BG_SAMPLE(sm,i) (SM_NTH_W_DIR(sm,i)==-1) |
184 |
|
|
185 |
< |
#define SM_BG_TRI(sm,i) (SM_BG_SAMPLE(sm,T_NTH_V(SM_NTH_TRI(sm,i),0)) || \ |
185 |
> |
#define SM_BG_TRI(sm,i) (SM_BG_SAMPLE(sm,T_NTH_V(SM_NTH_TRI(sm,i),0)) && \ |
186 |
> |
SM_BG_SAMPLE(sm,T_NTH_V(SM_NTH_TRI(sm,i),1)) && \ |
187 |
> |
SM_BG_SAMPLE(sm,T_NTH_V(SM_NTH_TRI(sm,i),2))) |
188 |
> |
#define SM_MIXED_TRI(sm,i) (SM_BG_SAMPLE(sm,T_NTH_V(SM_NTH_TRI(sm,i),0)) || \ |
189 |
|
SM_BG_SAMPLE(sm,T_NTH_V(SM_NTH_TRI(sm,i),1)) || \ |
190 |
|
SM_BG_SAMPLE(sm,T_NTH_V(SM_NTH_TRI(sm,i),2))) |
191 |
|
|
204 |
|
#ifdef TEST_DRIVER |
205 |
|
extern VIEW View; |
206 |
|
extern VIEW Current_View; |
207 |
< |
extern int Pick_tri,Picking; |
207 |
> |
extern int Pick_tri,Picking,Pick_samp; |
208 |
|
extern FVECT Pick_point[500],Pick_origin,Pick_dir; |
209 |
|
extern FVECT Pick_v0[500],Pick_v1[500],Pick_v2[500]; |
210 |
|
extern FVECT P0,P1,P2; |