1 |
< |
/* Copyright (c) 1998 Silicon Graphics, Inc. */ |
2 |
< |
|
3 |
< |
/* SCCSid "$SunId$ SGI" */ |
4 |
< |
|
1 |
> |
/* RCSid: $Id$ */ |
2 |
|
/* |
3 |
|
* sm_qtree.h - header file for routines using spherical quadtrees. |
4 |
|
* |
5 |
|
* adapted from octree.h |
6 |
|
*/ |
7 |
+ |
#ifndef _RAD_SM_QTREE_H_ |
8 |
+ |
#define _RAD_SM_QTREE_H_ |
9 |
|
|
10 |
+ |
#ifdef __cplusplus |
11 |
+ |
extern "C" { |
12 |
+ |
#endif |
13 |
+ |
|
14 |
|
/* |
15 |
|
* An quadtree is expressed as an integer which is either |
16 |
|
* an index to 4 other nodes, the empty tree, or an index |
22 |
|
* |
23 |
|
* < -1: it is an index to a set of objects |
24 |
|
*/ |
25 |
< |
#include "object.h" |
25 |
> |
|
26 |
|
typedef struct _FUNC { |
27 |
|
int (*func)(); |
28 |
|
int (*func_after)(); |
48 |
|
|
49 |
|
|
50 |
|
#ifndef QT_MAX_BLK |
51 |
< |
#ifdef BIGMEM |
49 |
< |
#define QT_MAX_BLK 16383 /* maximum quadtree block */ |
50 |
< |
#else |
51 |
> |
#ifdef SMLMEM |
52 |
|
#define QT_MAX_BLK 2047 /* maximum quadtree block */ |
53 |
+ |
#else |
54 |
+ |
#define QT_MAX_BLK 16383 /* maximum quadtree block */ |
55 |
|
#endif |
56 |
|
#endif |
57 |
|
|
111 |
|
extern QUADTREE qtnewleaf(), qtaddelem(), qtdelelem(); |
112 |
|
|
113 |
|
extern QUADTREE *quad_block[QT_MAX_BLK]; /* quadtree blocks */ |
114 |
< |
extern int4 *quad_flag; /* zeroeth quadtree flag */ |
114 |
> |
extern int32 *quad_flag; /* zeroeth quadtree flag */ |
115 |
|
|
116 |
|
extern OBJECT **qtsettab; /* quadtree leaf node table */ |
117 |
|
extern QUADTREE qtnumsets; /* number of used set indices */ |
118 |
< |
extern int4 *qtsetflag; |
118 |
> |
extern int32 *qtsetflag; |
119 |
|
#ifdef DEBUG |
120 |
|
extern OBJECT *qtqueryset(); |
121 |
|
#else |
159 |
|
extern QUADTREE qtRoot_trace_ray(); |
160 |
|
|
161 |
|
|
162 |
< |
|
163 |
< |
|
164 |
< |
|
162 |
> |
#ifdef __cplusplus |
163 |
> |
} |
164 |
> |
#endif |
165 |
> |
#endif /* _RAD_SM_QTREE_H_ */ |
166 |
|
|