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

deform.h

Go to the documentation of this file.
00001 #ifndef DEF_DEFORM 00002 #define DEF_DEFORM 00003 00004 #include <bicpl.h> 00005 00006 typedef enum { TOWARDS_LOWER, TOWARDS_HIGHER, ANY_DIRECTION } 00007 Normal_directions; 00008 00009 typedef struct 00010 { 00011 Real min_isovalue; 00012 Real max_isovalue; 00013 Real gradient_threshold; 00014 Real min_dot_product; 00015 Real max_dot_product; 00016 Normal_directions normal_direction; 00017 Real tolerance; 00018 } boundary_definition_struct; 00019 00020 typedef enum { VOLUME_DATA } Deform_data_types; 00021 00022 typedef struct 00023 { 00024 Deform_data_types type; 00025 Volume volume; 00026 Volume label_volume; 00027 } deform_data_struct; 00028 00029 typedef enum { FLAT_MODEL, AVERAGE_MODEL, 00030 PARAMETRIC_MODEL, GENERAL_MODEL } 00031 Deformation_model_types; 00032 00033 typedef struct 00034 { 00035 int up_to_n_points; 00036 00037 Deformation_model_types model_type; 00038 Real model_weight; 00039 object_struct *model_object; 00040 00041 int n_model_points; 00042 Point *model_centroids; 00043 Vector *model_normals; 00044 Point *model_points; 00045 00046 Real min_curvature_offset; 00047 Real max_curvature_offset; 00048 } deform_model_struct; 00049 00050 typedef struct 00051 { 00052 int n_models; 00053 deform_model_struct *models; 00054 BOOLEAN position_constrained; 00055 Real max_position_offset; 00056 Point *original_positions; 00057 } deformation_model_struct; 00058 00059 typedef struct 00060 { 00061 deform_data_struct deform_data; 00062 deformation_model_struct deformation_model; 00063 Real fractional_step; 00064 Real max_step; 00065 Real max_search_distance; 00066 int degrees_continuity; 00067 boundary_definition_struct boundary_definition; 00068 int max_iterations; 00069 Real stop_threshold; 00070 00071 int n_movements_alloced; 00072 float *prev_movements; 00073 Real movement_threshold; 00074 } deform_struct; 00075 00076 #define MAX_IN_VOXEL_COEF_LOOKUP 10000 00077 00078 typedef struct voxel_lin_coef_struct 00079 { 00080 int hash_key; 00081 Real coefs[8]; 00082 struct voxel_lin_coef_struct *prev; 00083 struct voxel_lin_coef_struct *next; 00084 } 00085 voxel_lin_coef_struct; 00086 00087 typedef struct 00088 { 00089 hash_table_struct hash; 00090 int n_in_hash; 00091 voxel_lin_coef_struct *head; 00092 voxel_lin_coef_struct *tail; 00093 } voxel_coef_struct; 00094 00095 #define N_DEFORM_HISTOGRAM 7 00096 00097 typedef struct 00098 { 00099 Real average; 00100 Real maximum; 00101 int n_below[N_DEFORM_HISTOGRAM]; 00102 } deform_stats; 00103 00104 typedef struct 00105 { 00106 int axis; 00107 Point *save_points; 00108 Real *curvature_factors; 00109 Point *equilibrium_points; 00110 Point *new_equilibrium_points; 00111 Point *boundary_points; 00112 Point *new_boundary_points; 00113 Real temperature; 00114 Real temperature_factor; 00115 int temperature_step; 00116 int min_n_to_move; 00117 int max_n_to_move; 00118 Real max_translation; 00119 Real max_angle_rotation; 00120 Real max_scale_offset; 00121 int stop_criteria; 00122 int try; 00123 int max_tries; 00124 int max_successes; 00125 int n_successes; 00126 int n_pos_successes; 00127 int n_no_moves; 00128 Real min_delta_energy; 00129 Real max_delta_energy; 00130 Real energy; 00131 } anneal_struct; 00132 00133 #ifndef public 00134 #define public extern 00135 #define public_was_defined_here 00136 #endif 00137 00138 #include <bicpl/deform_prototypes.h> 00139 00140 #ifdef public_was_defined_here 00141 #undef public 00142 #undef public_was_defined_here 00143 #endif 00144 00145 #endif

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