00001 /***************************************************************** 00002 * 00003 * This file is part of the FLIRTLib project 00004 * 00005 * FLIRTLib Copyright (c) 2010 Gian Diego Tipaldi and Kai O. Arras 00006 * 00007 * This software is licensed under the "Creative Commons 00008 * License (Attribution-NonCommercial-ShareAlike 3.0)" 00009 * and is copyrighted by Gian Diego Tipaldi and Kai O. Arras 00010 * 00011 * Further information on this license can be found at: 00012 * http://creativecommons.org/licenses/by-nc-sa/3.0/ 00013 * 00014 * FLIRTLib is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied 00016 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00017 * PURPOSE. 00018 * 00019 *****************************************************************/ 00020 00021 00022 00023 #ifndef INTERESTPOINT_H_ 00024 #define INTERESTPOINT_H_ 00025 00026 #include <geometry/point.h> 00027 #include <feature/Descriptor.h> 00028 #include <vector> 00029 00038 class InterestPoint { 00039 public: 00047 InterestPoint(const OrientedPoint2D& position, double scale, const Descriptor* descriptor = 0); 00048 00050 InterestPoint(const InterestPoint& point); 00051 00053 InterestPoint& operator=(const InterestPoint& _point); 00054 00056 virtual ~InterestPoint(); 00057 00059 inline const OrientedPoint2D& getPosition() const 00060 {return m_position;} 00061 00063 inline double getScale() const 00064 {return m_scale;} 00065 00067 inline double getScaleLevel() const 00068 {return m_scaleLevel;} 00069 00071 inline const Descriptor* getDescriptor() const 00072 {return m_descriptor;} 00073 00075 inline const std::vector<Point2D>& getSupport() const 00076 {return m_supportPoints;} 00077 00079 inline void setPosition(const OrientedPoint2D& _position) 00080 {m_position = _position;} 00081 00083 inline void setScale(double _scale) 00084 {m_scale = _scale;} 00085 00087 inline void setScaleLevel(unsigned int _scale) 00088 {m_scaleLevel = _scale;} 00089 00091 inline void setDescriptor(const Descriptor* _descriptor) 00092 {m_descriptor = _descriptor;} 00093 00095 inline void setSupport(const std::vector<Point2D>& points) 00096 {m_supportPoints = points;} 00097 00098 protected: 00099 OrientedPoint2D m_position; 00100 std::vector<Point2D> m_supportPoints; 00101 double m_scale; 00102 unsigned int m_scaleLevel; 00103 const Descriptor* m_descriptor; 00104 }; 00105 00106 00107 #endif