00001
00002
00003
00004 #ifndef MatchingEngine_h
00005 #define MatchingEngine_h 1
00006
00007
00008 #include "Kalman/Interface_ITrajectory.h"
00009 #include "Kalman/Base_Navigator.h"
00010
00011
00012 class MatchingEngine
00013 {
00014 public:
00015
00016
00017
00018 MatchingEngine(Navigator* nav) {m_navigator = nav;}
00019
00020
00021 virtual ~MatchingEngine(){};
00022
00023
00024 double matchTrajectories(const ITrajectory& traj1,
00025 const ITrajectory& traj2,
00026 EVector& res);
00027
00028
00029 double matchTrajectories(const ITrajectory& traj1,
00030 const ITrajectory& traj2){
00031 EVector res;
00032 return matchTrajectories(traj1, traj2, res);
00033 }
00034
00035 double matchTrajectories(const ITrajectory& traj1,
00036 const ITrajectory& traj2,
00037 const EMatrix& H);
00038
00039
00040 double matchTrajectories(const ITrajectory& traj1,
00041 const ITrajectory& traj2,
00042 const ISurface& surf,
00043 EVector& res);
00044
00045
00046 double matchTrajectories(const ITrajectory& traj1,
00047 const ITrajectory& traj2,
00048 const ISurface& surf){
00049 EVector res;
00050 return matchTrajectories(traj1, traj2, surf, res);
00051 }
00052
00053 double matchTrajectories(const ITrajectory& traj1,
00054 const ITrajectory& traj2,
00055 const ISurface& surf,
00056 const EMatrix& H){
00057 EVector res;
00058 return matchTrajectories(traj1, traj2, surf,H, res);
00059 }
00060
00061 double matchTrajectories(const ITrajectory& traj1,
00062 const ITrajectory& traj2,
00063 const ISurface& surf,
00064 const EMatrix& H,
00065 EVector& res);
00066
00067
00068 double matchMeasTrajectory(const IMeasurement& meas,
00069 const ITrajectory& traj,
00070 const EMatrix& H,
00071 EVector& res);
00072
00073 double matchMeasTrajectory(const IMeasurement& meas,
00074 const ITrajectory& traj,
00075 const EMatrix& H){
00076 EVector res;
00077 return matchMeasTrajectory(meas, traj, H, res);
00078 }
00079
00080
00081
00082 double matchMeasTrajectory(const IMeasurement& meas,
00083 const ITrajectory& traj,
00084 EVector& res);
00085
00086 double matchMeasTrajectory(const IMeasurement& meas,
00087 const ITrajectory& traj){
00088 EVector res;
00089 return matchMeasTrajectory(meas, traj, res);
00090 }
00091
00092
00093 double matchMeasState(const IMeasurement& meas,
00094 const IState& state,
00095 const EMatrix& H,
00096 EVector& res);
00097
00098
00099 double matchMeasState(const IMeasurement& meas,
00100 const IState& state,
00101 EVector& res);
00102
00103 double matchMeasState(const IMeasurement& meas,
00104 const IState& state){
00105 EVector res;
00106 return matchMeasState(meas, state, res);
00107 }
00108
00109
00110
00111 double matchStateTrajectory(const IState& state,
00112 const ITrajectory& traj,
00113 const ISurface& surf,
00114 EVector& res);
00115
00116 double matchStateTrajectory(const IState& state,
00117 const ITrajectory& traj,
00118 const ISurface& surf,
00119 const EMatrix& H,
00120 EVector& res);
00121
00122
00123 void setVerbosity(int v){m_verbosity = v;}
00124
00125 int verbosity() const {return m_verbosity;}
00126
00127 protected:
00128
00129
00130 Navigator& navigator() {return *m_navigator;}
00131
00132 protected:
00133
00134 Navigator* m_navigator;
00135
00136
00137 int m_verbosity;
00138
00139 };
00140 #endif
00141