relativepositionmodel.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __FIREVISION_RELATIVEPOSITIONMODEL_H_
00026 #define __FIREVISION_RELATIVEPOSITIONMODEL_H_
00027
00028 #include <fvutils/base/types.h>
00029
00030 class RelativePositionModel
00031 {
00032
00033 public:
00034 virtual ~RelativePositionModel();
00035
00036 virtual const char * get_name(void) const = 0;
00037 virtual void set_radius(float r) = 0;
00038 virtual void set_center(float x, float y) = 0;
00039 virtual void set_center(const center_in_roi_t& c) = 0;
00040
00041 virtual void set_pan_tilt(float pan, float tilt) = 0;
00042 virtual void get_pan_tilt(float *pan, float *tilt) const = 0;
00043
00044 virtual void set_cam_rotation(float pan, float tilt, float roll = 0.f);
00045 virtual void get_cam_rotation(float &pan, float &tilt, float &roll) const;
00046
00047 virtual void set_cam_translation(float height, float rel_x = 0.f, float rel_y = 0.f);
00048 virtual void get_cam_translation(float &height, float &rel_x, float &rel_y) const;
00049
00050 virtual void calc() = 0;
00051 virtual void calc_unfiltered() = 0;
00052
00053 virtual void reset() = 0;
00054
00055 virtual float get_distance() const = 0;
00056 virtual float get_bearing() const = 0;
00057 virtual float get_slope() const = 0;
00058 virtual float get_x() const = 0;
00059 virtual float get_y() const = 0;
00060
00061 virtual bool is_pos_valid() const = 0;
00062
00063 };
00064
00065 #endif