Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

XyPlotter.h

Go to the documentation of this file.
00001 /* -*- mode: c++; -*- */
00002  
00014 #ifndef _XyPlotter_H_
00015 #define _XyPlotter_H_
00016 
00017 #include "PlotterBase.h"
00018 
00019 class AxisRepBase;
00020 class CompositePlotter;
00021 class FontBase;
00022 
00043 class MDL_HIPPOPLOT_API XyPlotter : public PlotterBase
00044 {
00045 private:
00046 
00050   typedef std::vector < CompositePlotter * > PlotterList_t;
00051 
00055   PlotterList_t m_plotters;
00056 
00060   double m_x_ratio;
00061 
00065   double m_y_ratio;
00066 
00069   int m_active_index;
00070 
00074   void checkAutoScale ();
00075 
00079   void prepareToDraw ();
00080 
00081 protected:
00082 
00085   CompositePlotter * m_plotter;
00086 
00090   AxisRepBase * m_axis_rep;
00091 
00094   double m_z_ratio;
00095 
00100   void calcAxisRatios ( const CompositePlotter * );
00101 
00104   TupleCut * getCutAt ( unsigned int i );
00105 
00106 public:
00107 
00109   XyPlotter (  const std::string & name  =  "XyPlotter" );
00110 
00112   XyPlotter ( const XyPlotter & plotter );
00113 
00115   virtual ~XyPlotter ();
00116 
00119   PlotterBase * clone();
00120 
00121 
00124   void prepareMarginRect ( ViewBase * view );
00125 
00128   virtual void setEnableZ ( bool yes = true );
00129 
00130   virtual void drawIn ( ViewBase * view );
00131 
00136   virtual void drawCrossHairs ( ViewBase * view );
00137 
00139   virtual float userToMarginColor ( double c ) const;
00140 
00141   virtual NTuple * createNTuple () const;
00142 
00145   virtual bool wantsPixmap ( ) const;
00146   
00150   void setLabelFont( FontBase* font, hippodraw::Axes::Type axes );
00151   
00156   FontBase* labelFont ( hippodraw::Axes::Type axes ) const;
00157   
00159   void setTitleFont( FontBase* font );
00160   
00164   const FontBase * titleFont ( ) const;
00165 
00172   virtual void setActivePlot ( int index, bool redraw );
00173 
00176   virtual int activePlotIndex () const;
00177 
00181   virtual void addDataRep ( DataRep * rep );
00182 
00187   virtual void addDataRepStacked ( DataRep * rep );
00188 
00191   virtual void removeDataRep ( DataRep * rep );
00192 
00198   virtual void autoScale ( );
00199 
00204   virtual void setValueRep ( BinToColor * rep );
00205 
00209   virtual void setAutoRanging ( bool flag );
00210 
00215   virtual void setAutoRanging ( hippodraw::Axes::Type axis, bool flag );
00216 
00219   virtual void setTransform ( TransformBase * );
00220 
00223   virtual float userToMarginX ( double x ) const;
00224 
00227   virtual float userToMarginY ( double y ) const;
00228 
00232   virtual float userToInvertedMarginY ( double y ) const;
00233 
00237   virtual double marginToUserX ( double x ) const;
00238 
00242   virtual double marginToUserY ( double y ) const;
00243 
00247   virtual double marginToInvertedUserY ( double y ) const;
00248 
00249   virtual void marginToUserXY ( double mx, double my, bool scaled, 
00250                                 double & ux, double & uy ) const;
00251 
00264   virtual NTuple * createPickTuple ();
00265 
00280   virtual void fillPickedPoint ( double mx, double my, 
00281                                  std::vector < double > & picked ) const;
00282 
00285   virtual void setLowRange ( hippodraw::Axes::Type axis, int parm, 
00286                              bool dragging );
00287 
00290   virtual void setHighRange ( hippodraw::Axes::Type axis, int parm, 
00291                               bool dragging );
00292 
00295   virtual void setScaling ( hippodraw::Axes::Type  axis, bool on = true );
00296 
00303   virtual double getAspectRatio () const;
00304 
00305   virtual void update ();
00306 
00310   virtual void setRepresentation ( RepBase * pointrep );
00311 
00314   virtual RepBase * representation ( ) const;
00315 
00319   virtual AxisModelBase * getAxisModel ( hippodraw::Axes::Type axis ) const;
00320 
00324   virtual void setAxisModel ( AxisModelBase * , hippodraw::Axes::Type );
00325 
00328   virtual void setErrorDisplay ( hippodraw::Axes::Type axis, bool );
00329 
00332   virtual bool errorDisplay ( hippodraw::Axes::Type axis ) const;
00333 
00336   virtual void setRepColor ( const Color & );
00337 
00340   virtual const Color & repColor () const;
00341 
00347   virtual void drawProjValues ( ViewBase * view );
00348 
00351   bool hasAutoScaled () const;
00352 
00356   virtual bool hasNTupleBindings () const;
00357 
00361   virtual bool hasZoomY () const;
00362 
00365   virtual void checkAxisScaling ();
00366 
00369   virtual ProjectorBase * getProjector ( int i ) const;
00370 
00373   virtual ProjectorBase * activeProjector () const;
00374 
00377   virtual DataRep * getDataRep ( int index ) const;
00378 
00381   virtual DataRep * getTarget ( ) const;
00382 
00385   bool isTargetable () const;
00386 
00390   virtual int getNumDataReps () const;
00391 
00394   virtual int indexOf ( const DataRep * ) const;
00395 
00398   virtual double getBinWidth ( hippodraw::Axes::Type ) const;
00399 
00403   virtual void setBinWidth ( hippodraw::Axes::Type axis, double width );
00404 
00406   virtual void reset ( );
00407 
00412   virtual const Range & getRange ( hippodraw::Axes::Type axis, 
00413                                    bool scaled ) const;
00414 
00417   virtual double getPosRange ( hippodraw::Axes::Type axis ) const;
00418 
00422   virtual double getOffset (hippodraw::Axes::Type axis) const;
00423 
00426   virtual TransformBase * getTransform () const;
00427 
00433   virtual void addValues ( const std::vector < double > & v );
00434 
00435   virtual const std::string &
00436   getInternalLabel ( hippodraw::Axes::Type axis ) const;
00437 
00440   virtual const std::string & getLabel ( hippodraw::Axes::Type ) const;
00441 
00444   virtual void setLabel ( hippodraw::Axes::Type, const std::string & value );
00445 
00448   virtual int getNumberOfEntries () const;
00449 
00452   virtual bool hasAxis ( hippodraw::Axes::Type axis ) const;
00453 
00458   virtual const BinToColor * getValueRep () const;
00459 
00463   virtual bool isAutoRanging ( hippodraw::Axes::Type axis ) const;
00464 
00469   virtual void matrixTranspose ( bool yes );
00470 
00474   virtual DataRep * selectedDataRep () const;
00475 
00478   virtual void setAutoTicks ( hippodraw::Axes::Type axis, bool yes );
00479 
00482   virtual void setTicks ( hippodraw::Axes::Type axis, 
00483                           const std::vector < AxisTick > & ticks );
00484 
00489   virtual void setNumberOfBins ( hippodraw::Axes::Type axis, 
00490                                  unsigned int number );
00491 
00496   virtual void setOffset ( hippodraw::Axes::Type axis, double offset );
00497 
00508   virtual void setRange ( hippodraw::Axes::Type axis, const Range & range,
00509                           bool scaled = false, bool adjust_width = true );
00510 
00514   void fillCutList ( std::vector < const TupleCut * > & cuts ) const;
00515 
00518   virtual void setCutRangeAt ( const Range & range, unsigned int i );
00519 
00522   virtual void setCutInverted ( unsigned int i, bool yes = true );
00523 
00526   virtual void setCutEnabled ( unsigned int i, bool yes = true );
00527 
00528 };
00529 
00530 #endif // _XyPlotter_H_

Generated for HippoDraw-1.14.8.5 by doxygen 1.4.3