00001 /* 00002 * DisplayLine.h 00003 * 00004 * Created on: Dec 29, 2011 00005 * Author: martin 00006 */ 00007 00008 #ifndef DISPLAYLINE_H_ 00009 #define DISPLAYLINE_H_ 00010 00011 #include "DisplayElement.h" 00012 00013 namespace display 00014 { 00015 00016 class DisplayLine : public DisplayElement 00017 { 00018 public: 00019 DisplayLine(geo::Point p1, geo::Point p2, bool arrow, std::unique_ptr<DisplayStyle> && style); 00020 DisplayElementType get_type() const; 00021 bool operator<(DisplayElement const& other) const; 00022 bool operator>(DisplayElement const& other) const; 00023 bool operator<=(DisplayElement const& other) const; 00024 bool operator>=(DisplayElement const& other) const; 00025 bool operator==(DisplayElement const& other) const; 00026 bool operator!=(DisplayElement const& other) const; 00027 virtual ~DisplayLine(); 00028 protected: 00029 virtual void draw_internal(Cairo::RefPtr<Cairo::Context> cr, proj::MapProjection& pr) const; 00030 private: 00031 geo::Point p1, p2; 00032 bool arrow; 00033 }; 00034 00035 } /* namespace display */ 00036 #endif /* DISPLAYLINE_H_ */