Go to the documentation of this file.00001 #ifndef msm_translation_aligner_h_
00002 #define msm_translation_aligner_h_
00003
00004
00005
00006
00007
00008 #include <msm/msm_aligner.h>
00009
00010 class mbl_read_props_type;
00011
00012
00013
00014 class msm_translation_aligner : public msm_aligner
00015 {
00016 public:
00017
00018 virtual ~msm_translation_aligner() {}
00019
00020
00021 virtual unsigned size() const { return 2; }
00022
00023
00024 virtual vnl_vector<double> inverse(const vnl_vector<double>&) const;
00025
00026
00027 virtual void apply_transform(const msm_points& points,
00028 const vnl_vector<double>& trans,
00029 msm_points& new_points) const;
00030
00031
00032 virtual double scale(const vnl_vector<double>& trans) const;
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 virtual void calc_transform_from_ref(const msm_points& ref_points,
00047 const msm_points& points2,
00048 vnl_vector<double>& trans) const;
00049
00050
00051
00052 virtual void calc_transform(const msm_points& points1,
00053 const msm_points& points2,
00054 vnl_vector<double>& trans) const;
00055
00056
00057
00058
00059 virtual void calc_transform_wt(const msm_points& points1,
00060 const msm_points& points2,
00061 const vnl_vector<double>& wts,
00062 vnl_vector<double>& trans) const;
00063
00064
00065
00066
00067 virtual void calc_transform_wt_mat(const msm_points& points1,
00068 const msm_points& points2,
00069 const vcl_vector<msm_wt_mat_2d>& wt_mat,
00070 vnl_vector<double>& trans) const;
00071
00072
00073 virtual void transform_wt_mat(const vcl_vector<msm_wt_mat_2d>& wt_mat,
00074 const vnl_vector<double>& trans,
00075 vcl_vector<msm_wt_mat_2d>& new_wt_mat) const;
00076
00077
00078 virtual vnl_vector<double> compose(const vnl_vector<double>& pose1,
00079 const vnl_vector<double>& pose2) const;
00080
00081
00082
00083
00084 virtual void normalise_shape(msm_points& points) const;
00085
00086
00087
00088
00089
00090
00091
00092 virtual void align_set(const vcl_vector<msm_points>& points,
00093 msm_points& ref_mean_shape,
00094 vcl_vector<vnl_vector<double> >& pose_to_ref,
00095 vnl_vector<double>& average_pose) const;
00096
00097
00098 virtual vcl_string is_a() const;
00099
00100
00101 virtual msm_aligner* clone() const;
00102 };
00103
00104 #endif // msm_translation_aligner_h_