00001
00002
00014 #ifndef _SymbolPointRep_H_
00015 #define _SymbolPointRep_H_
00016
00017 #include "PointRepBase.h"
00018
00019 #include "axes/Range.h"
00020 #include "graphics/SymbolType.h"
00021
00022 class BinaryTransform;
00023 class PeriodicBinaryTransform;
00024
00038 class MDL_HIPPOPLOT_API SymbolPointRep : public PointRepBase
00039 {
00040
00041 private:
00042
00045 static void rotate ( double & lat, double & lon,
00046 double alpha, double beta, double gamma );
00047
00048 protected:
00049
00056 std::vector < double > m_x;
00057
00059 std::vector< double > m_y;
00060
00063 bool m_x_flag;
00064
00067 bool m_y_flag;
00068
00069 private:
00070
00074 const PeriodicBinaryTransform * c_periodic_tf;
00075
00078 double c_beta;
00079
00082 double c_gamma;
00083
00085 Range c_x_range;
00086
00088 Range c_y_range;
00089
00091 double m_x_cap;
00092
00094 double m_y_cap;
00095
00096 protected:
00097
00099 hippodraw::Symbol::Type m_plot_symbol;
00100
00101 public:
00102
00105 SymbolPointRep ( hippodraw::Symbol::Type symbol, float size );
00106
00108 SymbolPointRep ( );
00109
00111 SymbolPointRep ( const SymbolPointRep & point_rep );
00112
00114 ~SymbolPointRep();
00115
00118 virtual RepBase * clone ();
00119
00120 virtual void setColor ( const Color & color );
00121
00122 virtual void setStyle ( unsigned int symbol );
00123
00126 virtual unsigned int getStyle ( ) const;
00127
00128 virtual bool xError ( ) const;
00129
00130 virtual bool yError ( ) const;
00131
00135 virtual void setErrorOn ( const std::string & axis, bool yes = true );
00136
00138 virtual void transformPoints ( const TransformBase & transform,
00139 ViewBase & view );
00140
00141 virtual void drawProjectedValues ( const DataSource * ntuple,
00142 TransformBase * transform,
00143 ViewBase * view );
00144
00145
00146 protected:
00147
00151 void beginPlot ( unsigned int size,
00152 const BinaryTransform * tf,
00153 const ViewBase * view );
00154
00162 bool drawProjectedValue ( unsigned int i,
00163 const DataSource * ntuple,
00164 const BinaryTransform * transform,
00165 ViewBase * view );
00166
00167 };
00168
00169 #endif // _SymbolPointRep_H_