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 namespace firevision {
00031 #if 0
00032 }
00033 #endif
00034
00035 class RelativePositionModel
00036 {
00037
00038 public:
00039 virtual ~RelativePositionModel();
00040
00041 virtual const char * get_name(void) const = 0;
00042 virtual void set_radius(float r) = 0;
00043 virtual void set_center(float x, float y) = 0;
00044 virtual void set_center(const center_in_roi_t& c) = 0;
00045
00046 virtual void set_pan_tilt(float pan, float tilt) = 0;
00047 virtual void get_pan_tilt(float *pan, float *tilt) const = 0;
00048
00049 virtual void set_cam_rotation(float pan, float tilt, float roll = 0.f);
00050 virtual void get_cam_rotation(float &pan, float &tilt, float &roll) const;
00051
00052 virtual void set_cam_translation(float height, float rel_x = 0.f, float rel_y = 0.f);
00053 virtual void get_cam_translation(float &height, float &rel_x, float &rel_y) const;
00054
00055 virtual void calc() = 0;
00056 virtual void calc_unfiltered() = 0;
00057
00058 virtual void reset() = 0;
00059
00060 virtual float get_distance() const = 0;
00061 virtual float get_bearing() const = 0;
00062 virtual float get_slope() const = 0;
00063 virtual float get_x() const = 0;
00064 virtual float get_y() const = 0;
00065
00066 virtual bool is_pos_valid() const = 0;
00067
00068 };
00069
00070 }
00071
00072 #endif