00001
00002
00014 #ifndef _LinePointRep_H_
00015 #define _LinePointRep_H_
00016
00017 #include "PointRepBase.h"
00018
00019 #include "axes/Range.h"
00020
00021 namespace hippodraw {
00022
00023 class Rect;
00024 class Point;
00025
00036 class MDL_HIPPOPLOT_API LinePointRep : public PointRepBase
00037 {
00038
00039 private:
00040
00041
00042 double m_xmin, m_xmax, m_ymin, m_ymax;
00043
00044 const Rect * m_user_rect;
00045
00048 void transformValues ( const DataSource * source,
00049 TransformBase * transform );
00050
00051 bool findIntersectingCorners(Point const &p0,
00052 Point const &p1,
00053 bool findBothCorners,
00054 Point &q0, Point &q1,
00055 bool &secondCornerVisible);
00056
00057 protected:
00058
00065 std::vector< double > m_x;
00066
00073 std::vector< double > m_y;
00074
00077 hippodraw::Line::Style m_line_style;
00078
00081 LinePointRep ( const char * name, float size );
00082
00086 void drawValues ( ViewBase * view );
00087
00088 public:
00090 LinePointRep();
00091
00093 LinePointRep ( float size );
00094
00096 LinePointRep( const LinePointRep & point_rep );
00097
00099 virtual ~LinePointRep();
00100
00103 virtual RepBase * clone();
00104
00107 virtual void setStyle ( unsigned int style );
00108
00111 virtual unsigned int getStyle ( ) const;
00112
00113 virtual void drawProjectedValues ( const DataSource * ntuple,
00114 TransformBase * transform,
00115 ViewBase * previews );
00116
00119 virtual bool uses ( hippodraw::Line::Style ) const;
00120
00121 };
00122
00123 }
00124
00125 #endif // _LinePointRep_H_