Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

ds_prototypes.h

Go to the documentation of this file.
00001 #ifndef DEF_ds_prototypes 00002 #define DEF_ds_prototypes 00003 00004 public void initialize_bintree( 00005 Real x_min, 00006 Real x_max, 00007 Real y_min, 00008 Real y_max, 00009 Real z_min, 00010 Real z_max, 00011 bintree_struct_ptr bintree ); 00012 00013 public void delete_bintree_node( 00014 bintree_node_struct *node ); 00015 00016 public void delete_bintree( 00017 bintree_struct_ptr bintree ); 00018 00019 public void get_bintree_limits( 00020 bintree_struct_ptr bintree, 00021 range_struct *limits ); 00022 00023 public bintree_node_struct *create_bintree_internal_node( 00024 int split_coord, 00025 Real split_position, 00026 bintree_node_struct *left, 00027 bintree_node_struct *right ); 00028 00029 public bintree_node_struct *create_bintree_leaf( 00030 Real split_position, 00031 int n_objects, 00032 int object_list[] ); 00033 00034 public BOOLEAN bintree_node_is_leaf( 00035 bintree_node_struct *node ); 00036 00037 public int get_bintree_leaf_objects( 00038 bintree_node_struct *node, 00039 int *object_list[] ); 00040 00041 public BOOLEAN get_bintree_left_child_ptr( 00042 bintree_node_struct *node, 00043 bintree_node_struct ***ptr_to_left_child ); 00044 00045 public BOOLEAN get_bintree_left_child( 00046 bintree_node_struct *node, 00047 bintree_node_struct **left_child ); 00048 00049 public BOOLEAN get_bintree_right_child_ptr( 00050 bintree_node_struct *node, 00051 bintree_node_struct ***ptr_to_right_child ); 00052 00053 public BOOLEAN get_bintree_right_child( 00054 bintree_node_struct *node, 00055 bintree_node_struct **right_child ); 00056 00057 public int get_node_split_axis( 00058 bintree_node_struct *node ); 00059 00060 public Real get_node_split_position( 00061 bintree_node_struct *node ); 00062 00063 public BOOLEAN point_within_range( 00064 Point *point, 00065 range_struct *range ); 00066 00067 public Real range_volume( 00068 range_struct *range ); 00069 00070 public Real range_surface_area( 00071 range_struct *range ); 00072 00073 public Status io_bintree( 00074 FILE *file, 00075 IO_types direction, 00076 File_formats format, 00077 bintree_struct_ptr bintree ); 00078 00079 public void create_bitlist( 00080 int n_bits, 00081 bitlist_struct *bitlist ); 00082 00083 public void zero_bitlist( 00084 bitlist_struct *bitlist ); 00085 00086 public void fill_bitlist( 00087 bitlist_struct *bitlist ); 00088 00089 public void set_bitlist_bit( 00090 bitlist_struct *bitlist, 00091 int bit_index, 00092 BOOLEAN value ); 00093 00094 public BOOLEAN get_bitlist_bit( 00095 bitlist_struct *bitlist, 00096 int bit_index ); 00097 00098 public void delete_bitlist( 00099 bitlist_struct *bitlist ); 00100 00101 public void create_bitlist_3d( 00102 int nx, 00103 int ny, 00104 int nz, 00105 bitlist_3d_struct *bitlist ); 00106 00107 public void zero_bitlist_3d( 00108 bitlist_3d_struct *bitlist ); 00109 00110 public void get_bitlist_3d_sizes( 00111 bitlist_3d_struct *bitlist, 00112 int *nx, 00113 int *ny, 00114 int *nz ); 00115 00116 public void fill_bitlist_3d( 00117 bitlist_3d_struct *bitlist ); 00118 00119 public void set_bitlist_bit_3d( 00120 bitlist_3d_struct *bitlist, 00121 int x, 00122 int y, 00123 int z, 00124 BOOLEAN value ); 00125 00126 public BOOLEAN get_bitlist_bit_3d( 00127 bitlist_3d_struct *bitlist, 00128 int x, 00129 int y, 00130 int z ); 00131 00132 public void delete_bitlist_3d( 00133 bitlist_3d_struct *bitlist ); 00134 00135 public Status io_bitlist_3d( 00136 FILE *file, 00137 IO_types io_type, 00138 bitlist_3d_struct *bitlist ); 00139 00140 public void create_object_bintree( 00141 int n_objects, 00142 range_struct bound_vols[], 00143 bintree_struct_ptr bintree, 00144 int max_nodes ); 00145 00146 public void evaluate_bintree_efficiency( 00147 bintree_struct_ptr bintree, 00148 Real *avg_nodes_visited, 00149 Real *avg_objects_visited ); 00150 00151 public void initialize_hash_table( 00152 hash_table_struct *hash_table, 00153 int size, 00154 int data_size, 00155 Real enlarge_threshold, 00156 Real new_density ); 00157 00158 public void delete_hash_table( 00159 hash_table_struct *hash_table ); 00160 00161 public void insert_in_hash_table( 00162 hash_table_struct *hash_table, 00163 int key, 00164 void *data_ptr ); 00165 00166 public BOOLEAN lookup_in_hash_table( 00167 hash_table_struct *hash_table, 00168 int key, 00169 void *data_ptr ); 00170 00171 public BOOLEAN remove_from_hash_table( 00172 hash_table_struct *hash_table, 00173 int key, 00174 void *data_ptr ); 00175 00176 public void increase_hash_table_size( 00177 hash_table_struct *hash_table, 00178 int new_size ); 00179 00180 public void initialize_hash_pointer( 00181 hash_table_pointer *ptr ); 00182 00183 public BOOLEAN get_next_hash_entry( 00184 hash_table_struct *hash_table, 00185 hash_table_pointer *ptr, 00186 void *data_ptr ); 00187 00188 public void initialize_hash2_table( 00189 hash2_table_struct *hash_table, 00190 int size, 00191 int data_size, 00192 Real enlarge_threshold, 00193 Real new_density ); 00194 00195 public void delete_hash2_table( 00196 hash2_table_struct *hash_table ); 00197 00198 public void insert_in_hash2_table( 00199 hash2_table_struct *hash_table, 00200 int key1, 00201 int key2, 00202 void *data_ptr ); 00203 00204 public BOOLEAN lookup_in_hash2_table( 00205 hash2_table_struct *hash_table, 00206 int key1, 00207 int key2, 00208 void *data_ptr ); 00209 00210 public BOOLEAN remove_from_hash2_table( 00211 hash2_table_struct *hash_table, 00212 int key1, 00213 int key2, 00214 void *data_ptr ); 00215 00216 public void increase_hash2_table_size( 00217 hash2_table_struct *hash_table, 00218 int new_size ); 00219 00220 public void initialize_hash2_pointer( 00221 hash2_table_pointer *ptr ); 00222 00223 public BOOLEAN get_next_hash2_entry( 00224 hash2_table_struct *hash_table, 00225 hash2_table_pointer *ptr, 00226 void *data_ptr ); 00227 00228 public void delete_the_bintree( 00229 bintree_struct_ptr *bintree ); 00230 00231 public void *allocate_bintree( void ); 00232 00233 public void create_lines_bintree( 00234 lines_struct *lines, 00235 int max_nodes ); 00236 00237 public void create_polygons_bintree( 00238 polygons_struct *polygons, 00239 int max_nodes ); 00240 00241 public void create_quadmesh_bintree( 00242 quadmesh_struct *quadmesh, 00243 int max_nodes ); 00244 00245 public Real find_closest_point_in_bintree( 00246 Point *point, 00247 bintree_struct_ptr bintree, 00248 object_struct *object, 00249 int *obj_index, 00250 Point *point_on_object ); 00251 00252 public Real find_closest_vertex_in_bintree( 00253 Point *point, 00254 bintree_struct_ptr bintree, 00255 object_struct *object, 00256 int *vertex_on_object ); 00257 00258 public void print_bintree_stats( 00259 int n_objects ); 00260 00261 public int intersect_ray_with_bintree( 00262 Point *origin, 00263 Vector *direction, 00264 bintree_struct_ptr bintree, 00265 object_struct *object, 00266 int *obj_index, 00267 Real *dist, 00268 Real *distances[] ); 00269 00270 public BOOLEAN ray_intersects_range( 00271 range_struct *range, 00272 Point *origin, 00273 Vector *direction, 00274 Real *t_min, 00275 Real *t_max ); 00276 00277 public void initialize_skiplist( 00278 skiplist_struct *skiplist ); 00279 00280 public void delete_skiplist( 00281 skiplist_struct *skiplist ); 00282 00283 public BOOLEAN search_skiplist( 00284 skiplist_struct *skiplist, 00285 float key, 00286 void **data_ptr ); 00287 00288 public BOOLEAN search_skiplist_and_return_pointer( 00289 skiplist_struct *skiplist, 00290 float key, 00291 skip_struct **entry_ptr, 00292 void **data_ptr ); 00293 00294 public BOOLEAN insert_in_skiplist( 00295 skiplist_struct *skiplist, 00296 float key, 00297 void *data_ptr ); 00298 00299 public BOOLEAN delete_from_skiplist( 00300 skiplist_struct *skiplist, 00301 float key, 00302 void **data_ptr ); 00303 00304 public BOOLEAN get_first_skiplist_entry( 00305 skiplist_struct *skiplist, 00306 skip_struct **entry_ptr, 00307 float *key, 00308 void **data_ptr ); 00309 00310 public BOOLEAN get_next_skiplist_entry( 00311 skip_struct **entry_ptr, 00312 float *key, 00313 void **data_ptr ); 00314 #endif

Generated on Wed Jul 28 09:10:57 2004 for BICPL by doxygen 1.3.7