Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:12:04

0001 // @(#)root/histpainter:$Id: TGraphPainter.h,v 1.00
0002 // Author: Olivier Couet
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 #ifndef ROOT_TGraphPainter
0013 #define ROOT_TGraphPainter
0014 
0015 
0016 //////////////////////////////////////////////////////////////////////////
0017 //                                                                      //
0018 // TGraphPainter                                                        //
0019 //                                                                      //
0020 // helper class to draw graphs                                          //
0021 //                                                                      //
0022 //////////////////////////////////////////////////////////////////////////
0023 
0024 #include "TVirtualGraphPainter.h"
0025 #include <vector>
0026 
0027 class TGraph;
0028 class TF1;
0029 class TScatter;
0030 
0031 class TGraphPainter : public TVirtualGraphPainter {
0032 
0033 public:
0034 
0035    TGraphPainter();
0036 
0037    ~TGraphPainter() override;
0038 
0039    void           ComputeLogs(Int_t npoints, Int_t opt);
0040    Int_t          DistancetoPrimitiveHelper(TGraph *theGraph, Int_t px, Int_t py) override;
0041    void           DrawPanelHelper(TGraph *theGraph) override;
0042    void           ExecuteEventHelper(TGraph *theGraph, Int_t event, Int_t px, Int_t py) override;
0043    char          *GetObjectInfoHelper(TGraph *theGraph, Int_t px, Int_t py) const override;
0044    virtual Int_t  GetHighlightPoint(TGraph *theGraph) const;
0045    virtual void   HighlightPoint(TGraph *theGraph, Int_t hpoint, Int_t distance);
0046    virtual void   PaintHighlightPoint(TGraph *theGraph, Option_t *option);
0047    void           PaintHelper(TGraph *theGraph, Option_t *option) override;
0048    void           PaintGraph(TGraph *theGraph, Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt) override;
0049    void           PaintGrapHist(TGraph *theGraph, Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt) override;
0050    void           PaintGraphAsymmErrors(TGraph *theGraph, Option_t *option);
0051    void           PaintGraphMultiErrors(TGraph *theGraph, Option_t *option);
0052    void           PaintGraphBentErrors(TGraph *theGraph, Option_t *option);
0053    void           PaintGraphErrors(TGraph *theGraph, Option_t *option);
0054    void           PaintGraphPolar(TGraph *theGraph, Option_t *option);
0055    void           PaintGraphQQ(TGraph *theGraph, Option_t *option);
0056    void           PaintGraphReverse(TGraph *theGraph, Option_t *option);
0057    void           PaintGraphSimple(TGraph *theGraph, Option_t *option);
0058    void           PaintScatter(TScatter *theScatter, Option_t *option) override;
0059    void           PaintPolyLineHatches(TGraph *theGraph, Int_t n, const Double_t *x, const Double_t *y);
0060    void           PaintStats(TGraph *theGraph, TF1 *fit) override;
0061    void           SetHighlight(TGraph *theGraph) override;
0062    void           Smooth(TGraph *theGraph, Int_t npoints, Double_t *x, Double_t *y, Int_t drawtype);
0063    static void    SetMaxPointsPerLine(Int_t maxp=50);
0064 
0065 protected:
0066 
0067    static Int_t   fgMaxPointsPerLine;  ///< Number of points per chunks' line when drawing a graph.
0068 
0069    std::vector<Double_t> gxwork, gywork, gxworkl, gyworkl; ///< Internal buffers for coordinates. Used for graphs painting.
0070 
0071    ClassDefOverride(TGraphPainter,0)  // TGraph painter
0072 };
0073 
0074 #endif