00001
#ifndef DEF_trans_prototypes
00002
#define DEF_trans_prototypes
00003
00004
public void get_nonlinear_warp(
00005 Real **positions,
00006 Real **values,
00007 Real **INVMLY,
00008
int n_points,
00009
int n_dims,
00010
int n_values );
00011
00012
public void compute_transform_from_tags(
00013
int npoints,
00014 Real **tag_list1,
00015 Real **tag_list2,
00016 Trans_type trans_type,
00017 General_transform *transform);
00018
00019
public void build_transformation_matrix(
00020 Transform *lt,
00021 Real center[],
00022 Real translations[],
00023 Real scales[],
00024 Real shears[],
00025 Real rotations[] );
00026
00027
public void transpose(
00028
int rows,
00029
int cols,
00030 Real **mat,
00031 Real **mat_transpose );
00032
00033
public void matrix_multiply(
00034
int ldim,
00035
int mdim,
00036
int ndim,
00037 Real **Amat,
00038 Real **Bmat,
00039 Real **Cmat );
00040
00041
public BOOLEAN
optimize_simplex(
00042 Real **pts1,
00043 Real **pts2,
00044
int npoints,
00045 Trans_type trans_type,
00046 Real center[],
00047 Real translations[],
00048 Real scales[],
00049 Real shears[],
00050 Real rotations[] );
00051
00052
public void procrustes(
00053
int npoints,
00054
int ndim,
00055 Real **Apoints,
00056 Real **Bpoints,
00057 Real translation[],
00058 Real centre_of_rotation[],
00059 Transform *rotation_transform,
00060 Real *scale_ptr );
00061
00062
public BOOLEAN
rotmat_to_ang(
00063 Transform *rot_trans,
00064 Real *ang );
00065
00066
public void safe_compute_transform_from_tags(
00067
int npoints,
00068 Real **tag_list1,
00069 Real **tag_list2,
00070 Trans_type trans_type,
00071 General_transform *transform );
00072
00073
public void make_scale_transform(
00074 Real sx,
00075 Real sy,
00076 Real sz,
00077 Transform *transform );
00078
00079
public void set_transform_x_and_z_axes(
00080 Transform *transform,
00081 Vector *x_axis,
00082 Vector *z_axis );
00083
00084
public void make_translation_transform(
00085 Real x_trans,
00086 Real y_trans,
00087 Real z_trans,
00088 Transform *transform );
00089
00090
public void make_origin_transform(
00091 Point *origin,
00092 Transform *transform );
00093
00094
public void make_rotation_transform(
00095 Real radians,
00096
int axis,
00097 Transform *transform );
00098
00099
public void make_transform_relative_to_point(
00100 Point *point,
00101 Transform *transform,
00102 Transform *rel_transform );
00103
00104
public void make_transform_in_coordinate_system(
00105 Point *origin,
00106 Vector *x_axis,
00107 Vector *y_axis,
00108 Vector *z_axis,
00109 Transform *transform,
00110 Transform *rel_transform );
00111
00112
public void make_rotation_about_axis(
00113 Vector *axis,
00114 Real angle,
00115 Transform *transform );
00116
00117
public void convert_2d_transform_to_rotation_translation(
00118 Transform *transform,
00119 Real *degrees_clockwise,
00120 Real *x_trans,
00121 Real *y_trans );
00122
00123
public Real
compute_clockwise_rotation( Real x, Real y );
00124
00125
public BOOLEAN
is_transform_right_handed(
00126 Transform *transform );
00127
00128
public void make_identity_transform_2d(
00129 Transform_2d *transform );
00130
00131
public void get_inverse_transform_2d(
00132 Transform_2d *transform,
00133 Transform_2d *inverse );
00134
00135
public void transform_point_2d(
00136 Transform_2d *transform,
00137 Real x,
00138 Real y,
00139 Real *x_trans,
00140 Real *y_trans );
00141
00142
public void get_least_squares_transform_2d(
00143
int n_points,
00144 Real x[],
00145 Real y[],
00146 Real x_trans[],
00147 Real y_trans[],
00148 Transform_2d *transform_2d );
00149
00150
public Status
write_transform_file(
00151 STRING filename,
00152 STRING comments,
00153 Transform *transform );
00154
00155
public Status
read_transform_file(
00156 STRING filename,
00157 Transform *transform );
00158
#endif