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

find_in_direction.c File Reference

#include <volume_io/internal_volume_io.h>
#include <bicpl/deform.h>

Include dependency graph for find_in_direction.c:

Include dependency graph

Go to the source code of this file.

Defines

#define GET_RAY_POINT(result, origin, direction, dist)
#define MAX_DERIVS   2

Functions

private BOOLEAN voxel_might_contain_boundary (Volume volume, bitlist_3d_struct *done_bits, bitlist_3d_struct *surface_bits, int degrees_continuity, int voxel_indices[], boundary_definition_struct *boundary_def)
private BOOLEAN check_voxel_for_isovalue (voxel_coef_struct *lookup, Volume volume, Volume label_volume, int degrees_continuity, int voxel_indices[], Real line_origin[], Real line_direction[], BOOLEAN searching_inwards, Real min_line_t, Real max_line_t, Real isovalue, Normal_directions normal_direction, BOOLEAN already_found, Real *dist_found)
private BOOLEAN check_voxel_for_boundary (voxel_coef_struct *lookup, Volume volume, Volume label_volume, int degrees_continuity, int voxel_indices[], Real line_origin[], Real line_direction[], BOOLEAN *inside_surface, BOOLEAN searching_inwards, Real min_line_t, Real max_line_t, boundary_definition_struct *boundary_def, BOOLEAN already_found, Real *dist_found)
private void clip_line_to_volume (Volume volume, int degrees_continuity, Real line_origin[], Real line_direction[], Real *t_min, Real *t_max)
private void set_up_to_search_ray (Volume volume, int degrees_continuity, Real ray_origin[], Real unit_pos_dir[], Real unit_neg_dir[], Real model_dist, Real start_dist, Real end_dist, Real origin[], Real direction[], Real *current_distance, Real *stop_distance, Real next_distance[N_DIMENSIONS], Real delta_distance[N_DIMENSIONS], int voxel_index[N_DIMENSIONS], int delta_voxel[N_DIMENSIONS], Real *next_closest_distance)
public BOOLEAN find_boundary_in_direction (Volume volume, Volume label_volume, voxel_coef_struct *lookup, bitlist_3d_struct *done_bits, bitlist_3d_struct *surface_bits, Real model_dist, Point *ray_origin, Vector *unit_pos_dir, Vector *unit_neg_dir, Real max_outwards_search_distance, Real max_inwards_search_distance, int degrees_continuity, boundary_definition_struct *boundary_def, Real *boundary_distance)
private void get_trilinear_gradient (Real coefs[], Real u, Real v, Real w, Real derivs[])
private BOOLEAN does_voxel_contain_value_range (Volume volume, int degrees_continuity, int voxel[], Real min_value, Real max_value)


Define Documentation

#define GET_RAY_POINT result,
origin,
direction,
dist   ) 
 

Value:

{ \ (result)[X] = (origin)[X] + (dist) * (direction)[X]; \ (result)[Y] = (origin)[Y] + (dist) * (direction)[Y]; \ (result)[Z] = (origin)[Z] + (dist) * (direction)[Z]; \ }

Definition at line 44 of file find_in_direction.c.

Referenced by check_voxel_for_boundary(), check_voxel_for_isovalue(), find_boundary_in_direction(), and set_up_to_search_ray().

#define MAX_DERIVS   2
 

Definition at line 647 of file find_in_direction.c.

Referenced by check_voxel_for_boundary(), check_voxel_for_isovalue(), find_voxel_line_polynomial(), find_voxel_line_value_intersection(), and get_voxel_coefs().


Function Documentation

private BOOLEAN check_voxel_for_boundary voxel_coef_struct lookup,
Volume  volume,
Volume  label_volume,
int  degrees_continuity,
int  voxel_indices[],
Real  line_origin[],
Real  line_direction[],
BOOLEAN *  inside_surface,
BOOLEAN  searching_inwards,
Real  min_line_t,
Real  max_line_t,
boundary_definition_struct boundary_def,
BOOLEAN  already_found,
Real *  dist_found
 

Definition at line 888 of file find_in_direction.c.

References evaluate_polynomial(), FALSE, find_voxel_line_polynomial(), get_range_of_polynomial(), GET_RAY_POINT, is_point_inside_surface(), lookup(), lookup_volume_coeficients(), MAX_DERIVS, boundary_definition_struct::max_isovalue, boundary_definition_struct::min_isovalue, boundary_definition_struct::tolerance, and TRUE.

Referenced by find_boundary_in_direction().

private BOOLEAN check_voxel_for_isovalue voxel_coef_struct lookup,
Volume  volume,
Volume  label_volume,
int  degrees_continuity,
int  voxel_indices[],
Real  line_origin[],
Real  line_direction[],
BOOLEAN  searching_inwards,
Real  min_line_t,
Real  max_line_t,
Real  isovalue,
Normal_directions  normal_direction,
BOOLEAN  already_found,
Real *  dist_found
 

Definition at line 649 of file find_in_direction.c.

References ANY_DIRECTION, FALSE, find_voxel_line_value_intersection(), GET_RAY_POINT, get_trilinear_gradient(), get_volume_voxel_activity(), lookup(), lookup_volume_coeficients(), MAX_DERIVS, TOWARDS_HIGHER, TOWARDS_LOWER, and TRUE.

Referenced by find_boundary_in_direction().

private void clip_line_to_volume Volume  volume,
int  degrees_continuity,
Real  line_origin[],
Real  line_direction[],
Real *  t_min,
Real *  t_max
 

Definition at line 51 of file find_in_direction.c.

References clip_line_to_box().

Referenced by set_up_to_search_ray().

private BOOLEAN does_voxel_contain_value_range Volume  volume,
int  degrees_continuity,
int  voxel[],
Real  min_value,
Real  max_value
 

Definition at line 749 of file find_in_direction.c.

References FALSE, and TRUE.

Referenced by voxel_might_contain_boundary().

public BOOLEAN find_boundary_in_direction Volume  volume,
Volume  label_volume,
voxel_coef_struct lookup,
bitlist_3d_struct done_bits,
bitlist_3d_struct surface_bits,
Real  model_dist,
Point *  ray_origin,
Vector *  unit_pos_dir,
Vector *  unit_neg_dir,
Real  max_outwards_search_distance,
Real  max_inwards_search_distance,
int  degrees_continuity,
boundary_definition_struct boundary_def,
Real *  boundary_distance
 

Definition at line 262 of file find_in_direction.c.

References check_voxel_for_boundary(), check_voxel_for_isovalue(), FALSE, GET_RAY_POINT, is_point_inside_surface(), lookup(), boundary_definition_struct::max_isovalue, boundary_definition_struct::min_isovalue, boundary_definition_struct::normal_direction, set_up_to_search_ray(), TOLERANCE, TRUE, and voxel_might_contain_boundary().

Referenced by get_line_equilibrium_point().

private void get_trilinear_gradient Real  coefs[],
Real  u,
Real  v,
Real  w,
Real  derivs[]
 

Definition at line 598 of file find_in_direction.c.

Referenced by check_voxel_for_isovalue().

private void set_up_to_search_ray Volume  volume,
int  degrees_continuity,
Real  ray_origin[],
Real  unit_pos_dir[],
Real  unit_neg_dir[],
Real  model_dist,
Real  start_dist,
Real  end_dist,
Real  origin[],
Real  direction[],
Real *  current_distance,
Real *  stop_distance,
Real  next_distance[N_DIMENSIONS],
Real  delta_distance[N_DIMENSIONS],
int  voxel_index[N_DIMENSIONS],
int  delta_voxel[N_DIMENSIONS],
Real *  next_closest_distance
 

Definition at line 79 of file find_in_direction.c.

References clip_line_to_volume(), FALSE, GET_RAY_POINT, and TRUE.

Referenced by find_boundary_in_direction().

private BOOLEAN voxel_might_contain_boundary Volume  volume,
bitlist_3d_struct done_bits,
bitlist_3d_struct surface_bits,
int  degrees_continuity,
int  voxel_indices[],
boundary_definition_struct boundary_def
 

Definition at line 841 of file find_in_direction.c.

References does_voxel_contain_value_range(), FALSE, get_bitlist_bit_3d(), boundary_definition_struct::max_isovalue, boundary_definition_struct::min_isovalue, set_bitlist_bit_3d(), and TRUE.

Referenced by find_boundary_in_direction().


Generated on Wed Jul 28 09:11:04 2004 for BICPL by doxygen 1.3.7