box_relative.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_MODELS_RELPOS_BOX_H_
00026 #define __FIREVISION_MODELS_RELPOS_BOX_H_
00027
00028 #include <models/relative_position/relativepositionmodel.h>
00029
00030
00031
00032 class BoxRelative : public RelativePositionModel
00033 {
00034 public:
00035 BoxRelative(unsigned int image_width, unsigned int image_height,
00036 float camera_height,
00037 float camera_offset_x, float camera_offset_y,
00038 float camera_ori,
00039 float horizontal_angle, float vertical_angle
00040 );
00041
00042 virtual const char * get_name() const;
00043 virtual void set_center(float x, float y);
00044 virtual void set_center(const center_in_roi_t& c);
00045 virtual void set_radius(float r);
00046
00047 virtual void set_pan_tilt(float pan = 0.0f, float tilt = 0.0f);
00048 virtual void get_pan_tilt(float *pan, float *tilt) const;
00049
00050 virtual void set_horizontal_angle(float angle_deg);
00051 virtual void set_vertical_angle(float angle_deg);
00052
00053 virtual float get_distance() const;
00054
00055 virtual float get_x() const;
00056 virtual float get_y() const;
00057
00058 virtual float get_bearing() const;
00059 virtual float get_slope() const;
00060
00061 virtual void calc();
00062 virtual void calc_unfiltered();
00063 virtual void reset();
00064
00065 virtual bool is_pos_valid() const;
00066
00067 private:
00068 float DEFAULT_X_VARIANCE;
00069 float DEFAULT_Y_VARIANCE;
00070
00071 float pan_rad_per_pixel;
00072 float tilt_rad_per_pixel;
00073
00074 center_in_roi_t center;
00075 float pan;
00076 float tilt;
00077
00078 float horizontal_angle;
00079 float vertical_angle;
00080
00081 unsigned int image_width;
00082 unsigned int image_height;
00083
00084 float camera_height;
00085 float camera_offset_x;
00086 float camera_offset_y;
00087 float camera_orientation;
00088
00089 float last_x;
00090 float last_y;
00091 bool last_available;
00092 float box_x;
00093 float box_y;
00094 float bearing;
00095 float slope;
00096 float distance_box_motor;
00097 float distance_box_cam;
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108 };
00109
00110 #endif // __FIREVISION_MODELS_RELPOS_BOX_H_
00111