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