00001
00002
00014 #ifndef _SymbolPointRep_H_
00015 #define _SymbolPointRep_H_
00016
00017 #include "PointRepBase.h"
00018
00019 #include "axes/Range.h"
00020
00021 namespace hippodraw {
00022
00023 class BinaryTransform;
00024 class PeriodicBinaryTransform;
00025
00044 class MDL_HIPPOPLOT_API SymbolPointRep : public PointRepBase
00045 {
00046
00047 private:
00048
00052 static void rotate ( double & lat, double & lon,
00053 double alpha, double beta, double gamma,
00054 bool negative=true );
00055
00056 protected:
00057
00064 std::vector < double > m_x;
00065
00067 std::vector< double > m_y;
00068
00071 bool m_x_flag;
00072
00075 bool m_y_flag;
00076
00077 private:
00078
00082 const PeriodicBinaryTransform * c_periodic_tf;
00083
00086 double c_beta;
00087
00090 double c_gamma;
00091
00094 double c_max_x;
00095
00097 Range c_x_range;
00098
00100 Range c_y_range;
00101
00103 double m_x_cap;
00104
00106 double m_y_cap;
00107
00108 protected:
00109
00111 hippodraw::Symbol::Type m_plot_symbol;
00112
00113 public:
00114
00117 SymbolPointRep ( hippodraw::Symbol::Type symbol, float size );
00118
00120 SymbolPointRep ( );
00121
00123 SymbolPointRep ( const SymbolPointRep & point_rep );
00124
00126 ~SymbolPointRep();
00127
00130 virtual RepBase * clone ();
00131
00132 virtual void setColor ( const Color & color );
00133
00136 virtual void setSize ( float value );
00137
00138 virtual void setStyle ( unsigned int symbol );
00139
00142 virtual unsigned int getStyle ( ) const;
00143
00144 virtual bool xError ( ) const;
00145
00146 virtual bool yError ( ) const;
00147
00151 virtual void setErrorOn ( hippodraw::Axes::Type axis, bool yes = true );
00152
00154 virtual void transformPoints ( const TransformBase & transform,
00155 ViewBase & view );
00156
00157 virtual void drawProjectedValues ( const DataSource * ntuple,
00158 TransformBase * transform,
00159 ViewBase * view );
00160
00161
00162 protected:
00163
00167 void beginPlot ( unsigned int size,
00168 const BinaryTransform * tf,
00169 const ViewBase * view );
00170
00178 bool drawProjectedValue ( unsigned int i,
00179 const DataSource * ntuple,
00180 const BinaryTransform * transform,
00181 ViewBase * view );
00182
00186 virtual bool uses ( hippodraw::Symbol::Type ) const;
00187
00188 };
00189
00190 }
00191
00192 #endif // _SymbolPointRep_H_