Synopsis
typedef AmitkAxes;
enum AmitkAxis;
struct AmitkCanvasPoint;
typedef AmitkCorners;
enum AmitkDim;
enum AmitkLengthUnit;
struct AmitkPixel;
struct AmitkPoint;
enum AmitkView;
struct AmitkVoxel;
#define CLOSE
#define EMPTY
#define EPSILON
#define EQUAL_ZERO (fp1)
#define POINT_ABS (point1,
point2)
#define POINT_ADD (point1,
point2,
point3)
#define POINT_CMULT (cm,
point1,
point3)
#define POINT_CROSS_PRODUCT (point1,
point2,
point3)
#define POINT_DIFF (point1,
point2,
point3)
#define POINT_DIV (point1,
point2,
point3)
#define POINT_DOT_PRODUCT (point1,
point2)
#define POINT_EQUAL (point1,
point2)
#define POINT_MADD (cm,
point1,
dm,
point2,
point3)
#define POINT_MAGNITUDE (point)
#define POINT_MAX (point1)
#define POINT_MULT (point1,
point2,
point3)
#define POINT_SUB (point1,
point2,
point3)
#define REAL_CLOSE (x,
y)
#define REAL_EQUAL (x,
y)
#define SIGMA_TO_FWHM
#define SIGMA_TO_FWTM
#define VOXEL_CORNER (vox,
vox_size,
corner)
#define VOXEL_EQUAL (voxel1,
voxel2)
AmitkAxes * amitk_axes_copy (const AmitkAxes *axes);
void amitk_axes_copy_in_place (AmitkAxes dest_axes,
const AmitkAxes src_axes);
void amitk_axes_free (AmitkAxes *axes);
AmitkPoint amitk_axes_get_normal_axis (const AmitkAxes axes,
const AmitkView which_view);
AmitkPoint amitk_axes_get_orthogonal_axis (const AmitkAxes axes,
const AmitkView which_view,
const AmitkLayout which_layout,
const AmitkAxis which_axis);
void amitk_axes_make_orthonormal (AmitkAxes axes);
void amitk_axes_mult (const AmitkAxes const_axes1,
const AmitkAxes const_axes2,
AmitkAxes dest_axes);
void amitk_axes_rotate_on_vector (AmitkAxes axes,
AmitkPoint vector,
amide_real_t theta);
void amitk_axes_transpose (AmitkAxes axes);
const gchar * amitk_axis_get_name (const AmitkAxis axis);
AmitkCanvasPoint * amitk_canvas_point_copy (const AmitkCanvasPoint *point);
void amitk_canvas_point_free (AmitkCanvasPoint *point);
AmitkCorners * amitk_corners_copy (const AmitkCorners *corners);
void amitk_corners_free (AmitkCorners *corners);
const gchar * amitk_dim_get_name (const AmitkDim dim);
const gchar * amitk_length_unit_get_name (const AmitkLengthUnit length_unit);
AmitkPixel * amitk_pixel_copy (const AmitkPixel *pixel);
void amitk_pixel_free (AmitkPixel *pixel);
AmitkPoint * amitk_point_copy (const AmitkPoint *point);
void amitk_point_free (AmitkPoint *point);
AmitkPoint amitk_point_read_xml (xmlNodePtr nodes,
gchar *descriptor,
gchar **perror_buf);
void amitk_point_write_xml (xmlNodePtr node,
gchar *descriptor,
AmitkPoint point);
const gchar * amitk_view_get_name (const AmitkView view);
AmitkVoxel * amitk_voxel_copy (const AmitkVoxel *voxel);
void amitk_voxel_free (AmitkVoxel *voxel);
AmitkVoxel amitk_voxel_read_xml (xmlNodePtr nodes,
gchar *descriptor,
gchar **perror_buf);
void amitk_voxel_write_xml (xmlNodePtr node,
gchar *descriptor,
AmitkVoxel voxel);
extern const AmitkAxes base_axes;
AmitkPoint canvas_point_2_point (AmitkPoint volume_corner,
gint width,
gint height,
gdouble x_offset,
gdouble y_offset,
AmitkCanvasPoint canvas_cpoint);
extern const AmitkPoint one_point;
extern const AmitkVoxel one_voxel;
AmitkCanvasPoint point_2_canvas_point (AmitkPoint volume_corner,
gint width,
gint height,
gdouble x_offset,
gdouble y_offset,
AmitkPoint canvas_point);
amide_real_t point_get_component (const AmitkPoint point,
const AmitkAxis which_axis);
void point_print (gchar *message,
const AmitkPoint point);
AmitkPoint point_rotate_on_vector (const AmitkPoint in,
const AmitkPoint vector,
const amide_real_t theta);
void point_set_component (AmitkPoint *point,
const AmitkAxis which_axis,
const amide_real_t value);
extern const AmitkPoint ten_point;
amide_intpoint_t voxel_get_dim (const AmitkVoxel voxel,
const AmitkDim which_dim);
void voxel_print (gchar *message,
const AmitkVoxel voxel);
void voxel_set_dim (AmitkVoxel *voxel,
const AmitkDim which_dim,
amide_intpoint_t value);
extern const AmitkPoint zero_point;
extern const AmitkVoxel zero_voxel;
Details
AmitkAxes
typedef AmitkPoint AmitkAxes[AMITK_AXIS_NUM];
enum AmitkAxis
typedef enum {
AMITK_AXIS_X,
AMITK_AXIS_Y,
AMITK_AXIS_Z,
AMITK_AXIS_NUM
} AmitkAxis;
struct AmitkCanvasPoint
struct AmitkCanvasPoint {
amide_real_t x;
amide_real_t y;
};
AmitkCorners
typedef AmitkPoint AmitkCorners[2];
enum AmitkDim
typedef enum {
AMITK_DIM_X,
AMITK_DIM_Y,
AMITK_DIM_Z,
AMITK_DIM_G,
AMITK_DIM_T,
AMITK_DIM_NUM
} AmitkDim;
enum AmitkLengthUnit
typedef enum {
AMITK_LENGTH_UNIT_MM,
AMITK_LENGTH_UNIT_CM,
AMITK_LENGTH_UNIT_M,
AMITK_LENGTH_UNIT_INCHES,
AMITK_LENGTH_UNIT_FEET,
AMITK_LENGTH_UNIT_NUM
} AmitkLengthUnit;
struct AmitkPixel
struct AmitkPixel {
amide_intpoint_t x;
amide_intpoint_t y;
};
struct AmitkPoint
struct AmitkPoint {
amide_real_t x;
amide_real_t y;
amide_real_t z;
};
enum AmitkView
typedef enum {
AMITK_VIEW_TRANSVERSE,
AMITK_VIEW_CORONAL,
AMITK_VIEW_SAGITTAL,
AMITK_VIEW_NUM
} AmitkView;
struct AmitkVoxel
struct AmitkVoxel {
amide_intpoint_t x;
amide_intpoint_t y;
amide_intpoint_t z;
amide_intpoint_t g;
amide_intpoint_t t;
};
CLOSE
#define CLOSE 0.0001 /* within 0.01% */
EPSILON
#define EPSILON 1.4901161193847656e-08 /* what's close enough to be equal.... */
EQUAL_ZERO()
#define EQUAL_ZERO(fp1) (REAL_EQUAL((fp1), 0.0))
POINT_ABS()
#define POINT_ABS(point1,point2)
POINT_ADD()
#define POINT_ADD(point1,point2,point3)
POINT_CMULT()
#define POINT_CMULT(cm,point1,point3)
POINT_CROSS_PRODUCT()
#define POINT_CROSS_PRODUCT(point1, point2, point3)
POINT_DIFF()
#define POINT_DIFF(point1,point2,point3)
POINT_DIV()
#define POINT_DIV(point1,point2,point3)
POINT_DOT_PRODUCT()
#define POINT_DOT_PRODUCT(point1,point2) ((point1).x*(point2).x+(point1).y*(point2).y+(point1).z*(point2).z)
POINT_EQUAL()
#define POINT_EQUAL(point1,point2)
POINT_MADD()
#define POINT_MADD(cm,point1,dm,point2,point3)
POINT_MAGNITUDE()
#define POINT_MAGNITUDE(point) (sqrt(POINT_DOT_PRODUCT((point), (point))))
POINT_MAX()
#define POINT_MAX(point1) (MAX( MAX((point1).x, (point1).y), (point1).z))
POINT_MULT()
#define POINT_MULT(point1,point2,point3)
POINT_SUB()
#define POINT_SUB(point1,point2,point3)
REAL_CLOSE()
#define REAL_CLOSE(x,y) (fabs(x-y)/MAX(MAX(fabs(x),fabs(y)),DBL_MIN) < CLOSE)
REAL_EQUAL()
#define REAL_EQUAL(x,y) (fabs(x-y)/MAX(MAX(fabs(x),fabs(y)),DBL_MIN) < EPSILON)
SIGMA_TO_FWHM
#define SIGMA_TO_FWHM 2.354820045
SIGMA_TO_FWTM
#define SIGMA_TO_FWTM 4.291932053
VOXEL_CORNER()
#define VOXEL_CORNER(vox, vox_size, corner)
VOXEL_EQUAL()
#define VOXEL_EQUAL(voxel1,voxel2)
amitk_axes_copy_in_place ()
void amitk_axes_copy_in_place (AmitkAxes dest_axes,
const AmitkAxes src_axes);
amitk_axes_free ()
void amitk_axes_free (AmitkAxes *axes);
amitk_axes_make_orthonormal ()
void amitk_axes_make_orthonormal (AmitkAxes axes);
amitk_axes_transpose ()
void amitk_axes_transpose (AmitkAxes axes);
amitk_axis_get_name ()
const gchar * amitk_axis_get_name (const AmitkAxis axis);
amitk_canvas_point_free ()
void amitk_canvas_point_free (AmitkCanvasPoint *point);
amitk_corners_free ()
void amitk_corners_free (AmitkCorners *corners);
amitk_dim_get_name ()
const gchar * amitk_dim_get_name (const AmitkDim dim);
amitk_length_unit_get_name ()
const gchar * amitk_length_unit_get_name (const AmitkLengthUnit length_unit);
amitk_pixel_free ()
void amitk_pixel_free (AmitkPixel *pixel);
amitk_point_free ()
void amitk_point_free (AmitkPoint *point);
amitk_point_read_xml ()
AmitkPoint amitk_point_read_xml (xmlNodePtr nodes,
gchar *descriptor,
gchar **perror_buf);
amitk_point_write_xml ()
void amitk_point_write_xml (xmlNodePtr node,
gchar *descriptor,
AmitkPoint point);
amitk_view_get_name ()
const gchar * amitk_view_get_name (const AmitkView view);
amitk_voxel_free ()
void amitk_voxel_free (AmitkVoxel *voxel);
amitk_voxel_read_xml ()
AmitkVoxel amitk_voxel_read_xml (xmlNodePtr nodes,
gchar *descriptor,
gchar **perror_buf);
amitk_voxel_write_xml ()
void amitk_voxel_write_xml (xmlNodePtr node,
gchar *descriptor,
AmitkVoxel voxel);
base_axes
extern const AmitkAxes base_axes;
one_point
extern const AmitkPoint one_point;
one_voxel
extern const AmitkVoxel one_voxel;
ten_point
extern const AmitkPoint ten_point;
zero_point
extern const AmitkPoint zero_point;
zero_voxel
extern const AmitkVoxel zero_voxel;