Synopsis
enum AmitkView;
enum AmitkAxis;
enum AmitkDim;
enum AmitkLengthUnit;
#define AMITK_TYPE_POINT
#define AMITK_TYPE_VOXEL
#define AMITK_TYPE_PIXEL
#define AMITK_TYPE_CANVAS_POINT
#define AMITK_TYPE_AXES
struct AmitkPoint;
GType amitk_point_get_type (void);
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);
struct AmitkVoxel;
GType amitk_voxel_get_type (void);
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);
struct AmitkPixel;
GType amitk_pixel_get_type (void);
AmitkPixel * amitk_pixel_copy (const AmitkPixel *pixel);
void amitk_pixel_free (AmitkPixel *pixel);
struct AmitkCanvasPoint;
GType amitk_canvas_point_get_type (void);
AmitkCanvasPoint * amitk_canvas_point_copy (const AmitkCanvasPoint *point);
void amitk_canvas_point_free (AmitkCanvasPoint *point);
typedef AmitkAxes;
GType amitk_axes_get_type (void);
AmitkAxes * amitk_axes_copy (const AmitkAxes *axes);
void amitk_axes_free (AmitkAxes *axes);
void amitk_axes_copy_in_place (AmitkAxes dest_axes,
const AmitkAxes src_axes);
void amitk_axes_transpose (AmitkAxes axes);
void amitk_axes_mult (const AmitkAxes const_axes1,
const AmitkAxes const_axes2,
AmitkAxes dest_axes);
void amitk_axes_make_orthonormal (AmitkAxes axes);
void amitk_axes_rotate_on_vector (AmitkAxes axes,
AmitkPoint vector,
amide_real_t theta);
AmitkPoint amitk_axes_get_orthogonal_axis (const AmitkAxes axes,
const AmitkView which_view,
const AmitkLayout which_layout,
const AmitkAxis which_axis);
AmitkPoint amitk_axes_get_normal_axis (const AmitkAxes axes,
const AmitkView which_view);
typedef AmitkCorners;
GType amitk_corners_get_type (void);
void amitk_corners_free (AmitkCorners *corners);
AmitkCorners * amitk_corners_copy (const AmitkCorners *corners);
#define EPSILON
#define CLOSE
#define EMPTY
#define SIGMA_TO_FWHM
#define SIGMA_TO_FWTM
#define REAL_EQUAL (x,
y)
#define EQUAL_ZERO (fp1)
#define REAL_CLOSE (x,
y)
#define POINT_EQUAL (point1,
point2)
#define VOXEL_EQUAL (voxel1,
voxel2)
#define VOXEL_TO_POINT (vox,
vox_size,
real)
#define POINT_TO_VOXEL (real,
vox_size,
frame,
gate,
vox)
#define VOXEL_CORNER (vox,
vox_size,
corner)
#define POINT_MAX (point1)
#define POINT_DOT_PRODUCT (point1,
point2)
#define POINT_MAGNITUDE (point)
#define POINT_ABS (point1,
point2)
#define POINT_ADD (point1,
point2,
point3)
#define POINT_SUB (point1,
point2,
point3)
#define POINT_MULT (point1,
point2,
point3)
#define POINT_DIV (point1,
point2,
point3)
#define POINT_DIFF (point1,
point2,
point3)
#define POINT_CMULT (cm,
point1,
point3)
#define POINT_CROSS_PRODUCT (point1,
point2,
point3)
#define POINT_MADD (cm,
point1,
dm,
point2,
point3)
AmitkPoint canvas_point_2_point (AmitkPoint volume_corner,
gint width,
gint height,
gdouble x_offset,
gdouble y_offset,
AmitkCanvasPoint canvas_cpoint);
AmitkCanvasPoint point_2_canvas_point (AmitkPoint volume_corner,
gint width,
gint height,
gdouble x_offset,
gdouble y_offset,
AmitkPoint canvas_point);
void voxel_print (gchar *message,
const AmitkVoxel voxel);
amide_intpoint_t voxel_get_dim (const AmitkVoxel voxel,
const AmitkDim which_dim);
void voxel_set_dim (AmitkVoxel *voxel,
const AmitkDim which_dim,
amide_intpoint_t value);
void point_print (gchar *message,
const AmitkPoint point);
AmitkPoint point_rotate_on_vector (const AmitkPoint in,
const AmitkPoint vector,
const amide_real_t theta);
amide_real_t point_get_component (const AmitkPoint point,
const AmitkAxis which_axis);
void point_set_component (AmitkPoint *point,
const AmitkAxis which_axis,
const amide_real_t value);
extern const AmitkPoint zero_point;
#define ONE_POINT
extern const AmitkPoint one_point;
extern const AmitkPoint ten_point;
extern const AmitkVoxel zero_voxel;
#define ONE_VOXEL
extern const AmitkVoxel one_voxel;
extern const AmitkAxes base_axes;
const gchar * amitk_view_get_name (const AmitkView view);
const gchar * amitk_dim_get_name (const AmitkDim dim);
const gchar * amitk_axis_get_name (const AmitkAxis axis);
const gchar * amitk_length_unit_get_name (const AmitkLengthUnit length_unit);
Details
enum AmitkView
typedef enum {
AMITK_VIEW_TRANSVERSE,
AMITK_VIEW_CORONAL,
AMITK_VIEW_SAGITTAL,
AMITK_VIEW_NUM
} AmitkView;
enum AmitkAxis
typedef enum {
AMITK_AXIS_X,
AMITK_AXIS_Y,
AMITK_AXIS_Z,
AMITK_AXIS_NUM
} AmitkAxis;
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;
AMITK_TYPE_POINT
#define AMITK_TYPE_POINT (amitk_point_get_type ())
AMITK_TYPE_VOXEL
#define AMITK_TYPE_VOXEL (amitk_voxel_get_type ())
AMITK_TYPE_PIXEL
#define AMITK_TYPE_PIXEL (amitk_pixel_get_type ())
AMITK_TYPE_CANVAS_POINT
#define AMITK_TYPE_CANVAS_POINT (amitk_canvas_point_get_type ())
AMITK_TYPE_AXES
#define AMITK_TYPE_AXES (amitk_axes_get_type ())
struct AmitkPoint
struct AmitkPoint {
amide_real_t x;
amide_real_t y;
amide_real_t z;
};
amitk_point_get_type ()
GType amitk_point_get_type (void);
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);
struct AmitkVoxel
struct AmitkVoxel {
amide_intpoint_t x;
amide_intpoint_t y;
amide_intpoint_t z;
amide_intpoint_t g;
amide_intpoint_t t;
};
amitk_voxel_get_type ()
GType amitk_voxel_get_type (void);
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);
struct AmitkPixel
struct AmitkPixel {
amide_intpoint_t x;
amide_intpoint_t y;
};
amitk_pixel_get_type ()
GType amitk_pixel_get_type (void);
amitk_pixel_free ()
void amitk_pixel_free (AmitkPixel *pixel);
struct AmitkCanvasPoint
struct AmitkCanvasPoint {
amide_real_t x;
amide_real_t y;
};
amitk_canvas_point_get_type ()
GType amitk_canvas_point_get_type (void);
amitk_canvas_point_free ()
void amitk_canvas_point_free (AmitkCanvasPoint *point);
AmitkAxes
typedef AmitkPoint AmitkAxes[AMITK_AXIS_NUM];
amitk_axes_get_type ()
GType amitk_axes_get_type (void);
amitk_axes_free ()
void amitk_axes_free (AmitkAxes *axes);
amitk_axes_copy_in_place ()
void amitk_axes_copy_in_place (AmitkAxes dest_axes,
const AmitkAxes src_axes);
amitk_axes_transpose ()
void amitk_axes_transpose (AmitkAxes axes);
amitk_axes_make_orthonormal ()
void amitk_axes_make_orthonormal (AmitkAxes axes);
AmitkCorners
typedef AmitkPoint AmitkCorners[2];
amitk_corners_get_type ()
GType amitk_corners_get_type (void);
amitk_corners_free ()
void amitk_corners_free (AmitkCorners *corners);
EPSILON
#define EPSILON 1.4901161193847656e-08 /* what's close enough to be equal.... */
CLOSE
#define CLOSE 0.0001 /* within 0.01% */
SIGMA_TO_FWHM
#define SIGMA_TO_FWHM 2.354820045
SIGMA_TO_FWTM
#define SIGMA_TO_FWTM 4.291932053
REAL_EQUAL()
#define REAL_EQUAL(x,y) (fabs(x-y)/MAX(MAX(fabs(x),fabs(y)),DBL_MIN) < EPSILON)
EQUAL_ZERO()
#define EQUAL_ZERO(fp1) (REAL_EQUAL((fp1), 0.0))
REAL_CLOSE()
#define REAL_CLOSE(x,y) (fabs(x-y)/MAX(MAX(fabs(x),fabs(y)),DBL_MIN) < CLOSE)
POINT_EQUAL()
#define POINT_EQUAL(point1,point2)
VOXEL_EQUAL()
#define VOXEL_EQUAL(voxel1,voxel2)
VOXEL_TO_POINT()
#define VOXEL_TO_POINT(vox, vox_size, real)
POINT_TO_VOXEL()
#define POINT_TO_VOXEL(real, vox_size, frame, gate, vox)
VOXEL_CORNER()
#define VOXEL_CORNER(vox, vox_size, corner)
POINT_MAX()
#define POINT_MAX(point1) (MAX( MAX((point1).x, (point1).y), (point1).z))
POINT_DOT_PRODUCT()
#define POINT_DOT_PRODUCT(point1,point2) ((point1).x*(point2).x+(point1).y*(point2).y+(point1).z*(point2).z)
POINT_MAGNITUDE()
#define POINT_MAGNITUDE(point) (sqrt(POINT_DOT_PRODUCT((point), (point))))
POINT_ABS()
#define POINT_ABS(point1,point2)
POINT_ADD()
#define POINT_ADD(point1,point2,point3)
POINT_SUB()
#define POINT_SUB(point1,point2,point3)
POINT_MULT()
#define POINT_MULT(point1,point2,point3)
POINT_DIV()
#define POINT_DIV(point1,point2,point3)
POINT_DIFF()
#define POINT_DIFF(point1,point2,point3)
POINT_CMULT()
#define POINT_CMULT(cm,point1,point3)
POINT_CROSS_PRODUCT()
#define POINT_CROSS_PRODUCT(point1, point2, point3)
POINT_MADD()
#define POINT_MADD(cm,point1,dm,point2,point3)
zero_point
extern const AmitkPoint zero_point;
ONE_POINT
#define ONE_POINT {1.0,1.0,1.0}
one_point
extern const AmitkPoint one_point;
ten_point
extern const AmitkPoint ten_point;
zero_voxel
extern const AmitkVoxel zero_voxel;
ONE_VOXEL
#define ONE_VOXEL {1,1,1,1,1}
one_voxel
extern const AmitkVoxel one_voxel;
base_axes
extern const AmitkAxes base_axes;
amitk_view_get_name ()
const gchar * amitk_view_get_name (const AmitkView view);
amitk_dim_get_name ()
const gchar * amitk_dim_get_name (const AmitkDim dim);
amitk_axis_get_name ()
const gchar * amitk_axis_get_name (const AmitkAxis axis);
amitk_length_unit_get_name ()
const gchar * amitk_length_unit_get_name (const AmitkLengthUnit length_unit);