00001
00002
00014 #ifndef _CutRangeRep_H_
00015 #define _CutRangeRep_H_
00016
00017 #include "PointRepBase.h"
00018
00019 namespace hippodraw {
00020
00021 class TupleCut;
00022
00029 class MDL_HIPPOPLOT_API CutRangeRep : public PointRepBase
00030 {
00031 private:
00032
00035 typedef std::vector < TupleCut > CutList_t;
00036
00040 CutList_t m_cut_list;
00041
00044 void drawNormalRange ( const Range & x_range,
00045 const Range & y_range,
00046 const TransformBase & tb,
00047 ViewBase & view );
00048
00051 void drawInvertedRange1D ( const Range & x_range,
00052 const Range & y_range,
00053 const TransformBase & tb,
00054 ViewBase & view );
00055
00058 void drawInvertedRange2D ( const Range & x_range,
00059 const Range & y_range,
00060 const TransformBase & transform,
00061 ViewBase & view );
00062
00065 void throwRangeException ();
00066
00067 public:
00068
00070 CutRangeRep( );
00071
00073 CutRangeRep( const CutRangeRep & point_rep );
00074
00078 virtual CutRangeRep * clone();
00079
00084 void drawProjectedValues ( const Range & x_range,
00085 const Range & y_range,
00086 const TransformBase & tb,
00087 ViewBase & view );
00088
00089 virtual void drawProjectedValues ( const DataSource * ntuple,
00090 TransformBase * transform,
00091 ViewBase * view );
00092
00095 const std::vector < TupleCut > & getCuts () const;
00096
00099 void addCut ( const TupleCut & cut );
00100
00103 void setCutRangeAt ( const Range & range, unsigned int i );
00104
00107 void toggleInverted ( unsigned int i );
00108
00111 void setEnabled ( unsigned int i, bool yes );
00112
00113 };
00114
00115 }
00116
00117 #endif // _CutRangeRep_H_