00001 00007 #ifndef P_KEYPOINT_HH 00008 #define P_KEYPOINT_HH 00009 00010 #include <blort/Recognizer3D/PNamespace.hh> 00011 #include <blort/Recognizer3D/Vector2.hh> 00012 #include "float.h" 00013 00014 namespace P 00015 { 00016 00017 class Keypoint 00018 { 00019 public: 00020 Vector2 p; //location of the keypoint with respect to center of the object 00021 float scale; 00022 float angle; 00023 float mi11,mi12,mi21,mi22; 00024 00025 Keypoint *bw, *fw; //backward/forward link for tracking 00026 00027 int nb; 00028 static int nbcnt; 00029 unsigned id; 00030 static unsigned idcnt; 00031 00032 float error; 00033 00034 Keypoint(); 00035 Keypoint(Keypoint *k); 00036 Keypoint(double x, double y); 00037 Keypoint(double x, double y, float s, float a); 00038 Keypoint(double x, double y, Keypoint *bw); 00039 Keypoint(double x,double y,float s,float a,float _m11,float _m12,float _m21,float _m22); 00040 ~Keypoint(); 00041 00042 inline double X() {return p.x;} 00043 inline double Y() {return p.y;} 00044 inline float Scale() {return scale;} 00045 inline float Angle() {return angle;} 00046 inline float Mi11() {return mi11;} 00047 inline float Mi12() {return mi12;} 00048 inline float Mi21() {return mi21;} 00049 inline float Mi22() {return mi22;} 00050 }; 00051 00052 /******************************** INLINE METHODES ***************************/ 00053 00054 00055 00056 00057 00058 00059 00060 } //--END-- 00061 00062 #endif 00063