00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
#include <volume_io/internal_volume_io.h>
00016
#include <bicpl.h>
00017
00018
#ifndef lint
00019
static char rcsid[] =
"$Header: /software/source//libraries/bicpl/Volumes/scan_objects.c,v 1.8 2000/02/06 15:30:57 stever Exp $";
00020
#endif
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 public void scan_object_to_volume(
00040
object_struct *object,
00041 Volume volume,
00042 Volume label_volume,
00043
int label,
00044 Real max_distance )
00045 {
00046
object_struct *current_object;
00047
object_traverse_struct object_traverse;
00048
00049
initialize_object_traverse( &object_traverse,
FALSE, 1, &object );
00050
00051
while(
get_next_object_traverse(&object_traverse,¤t_object) )
00052 {
00053
switch(
get_object_type( current_object ) )
00054 {
00055
case POLYGONS:
00056
scan_polygons_to_voxels(
get_polygons_ptr(current_object),
00057 volume, label_volume,
00058 label, max_distance );
00059
break;
00060
00061
case QUADMESH:
00062
scan_quadmesh_to_voxels(
get_quadmesh_ptr(current_object),
00063 volume, label_volume,
00064 label, max_distance );
00065
break;
00066
00067
case LINES:
00068
scan_lines_to_voxels(
get_lines_ptr(current_object),
00069 volume, label_volume,
00070 label );
00071
break;
00072
00073
case MARKER:
00074
scan_marker_to_voxels(
get_marker_ptr(current_object),
00075 volume, label_volume,
00076 label );
00077
break;
00078
default:
00079 print_error(
"scan_object_to_volume: object type %d not handled.\n",
00080
get_object_type( current_object ) );
00081 }
00082 }
00083 }