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_SHAPE_CIRCLE_H_
00026 #define __FIREVISION_MODELS_SHAPE_CIRCLE_H_
00027
00028 #include <vector>
00029 #include <iostream>
00030
00031 #include <utils/math/types.h>
00032 #include <fvutils/base/types.h>
00033 #include <fvutils/base/roi.h>
00034 #include <models/shape/shapemodel.h>
00035
00036 namespace firevision {
00037 #if 0
00038 }
00039 #endif
00040
00041
00042 const unsigned int TBY_CIRCLE_RADIUS_MAX = 600;
00043 const unsigned int TBY_CIRCLE_RADIUS_MIN = 2;
00044
00045 class Circle : public Shape
00046 {
00047 public:
00048 Circle();
00049 Circle(const center_in_roi_t& c, float r, int n = 0);
00050
00051 void printToStream(std::ostream &stream);
00052
00053 void setMargin( unsigned int margin );
00054 bool isClose( unsigned int in_roi_x, unsigned int in_roi_y );
00055
00056 void fitCircle(std::vector< fawkes::point_t >& points);
00057
00058 public:
00059
00060 center_in_roi_t center;
00061
00062 float radius;
00063
00064 int count;
00065
00066 unsigned int margin;
00067
00068 };
00069
00070 }
00071
00072 #endif // __FIREVISION_MODELS_SHAPE_CIRCLE_H_