1 // This is gel/vdgl/vdgl_edgel.h 2 #ifndef vdgl_edgel_h 3 #define vdgl_edgel_h 4 //: 5 // \file 6 // \brief Represents a 2D image edgel 7 // 8 // \author 9 // Geoff Cross 10 11 #include <iostream> 12 #include <iosfwd> 13 #ifdef _MSC_VER 14 # include <vcl_msvc_warnings.h> 15 #endif 16 #include <vgl/vgl_point_2d.h> 17 18 class vdgl_edgel 19 { 20 public: 21 22 // Constructors/Destructor--------------------------------------------------- 23 vdgl_edgel() = default; 24 vdgl_edgel( const double x, const double y, const double grad= -1, const double theta= 0 ); 25 ~vdgl_edgel() = default; 26 27 // Operators----------------------------------------------------------------- 28 29 vdgl_edgel& operator=(const vdgl_edgel& that); 30 31 friend bool operator==( const vdgl_edgel &e1, const vdgl_edgel &e2); 32 friend std::ostream& operator<<(std::ostream& s, const vdgl_edgel& p); 33 34 // Data Access--------------------------------------------------------------- 35 36 // getters get_pt()37 inline vgl_point_2d<double> get_pt() const { return p_; } get_x()38 inline double get_x() const { return p_.x(); } get_y()39 inline double get_y() const { return p_.y(); } get_grad()40 inline double get_grad() const { return grad_; } get_theta()41 inline double get_theta() const { return theta_; } x()42 inline double x() const { return p_.x(); } y()43 inline double y() const { return p_.y(); } 44 45 // setters set_x(const double x)46 inline void set_x( const double x) { p_.set(x,p_.y()); } set_y(const double y)47 inline void set_y( const double y) { p_.set(p_.x(),y); } set_grad(const double grad)48 inline void set_grad( const double grad) { grad_= grad; } set_theta(const double theta)49 inline void set_theta( const double theta) { theta_= theta; } 50 51 // INTERNALS----------------------------------------------------------------- 52 protected: 53 // Data Members-------------------------------------------------------------- 54 55 vgl_point_2d<double> p_; 56 double grad_; 57 double theta_; 58 }; 59 60 bool operator==( const vdgl_edgel &e1, const vdgl_edgel &e2); 61 std::ostream& operator<<(std::ostream& s, const vdgl_edgel& p); 62 63 #endif // vdgl_edgel_h 64