/usr/include/root/TGLH2PolyPainter.h is in libroot-graf3d-gl-dev 5.34.14-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | #ifndef ROOT_TGLH2PolyPainter
#define ROOT_TGLH2PolyPainter
#include <vector>
#include <list>
#ifndef ROOT_TGLPlotPainter
#include "TGLPlotPainter.h"
#endif
#ifndef ROOT_TGLPadUtils
#include "TGLPadUtils.h"
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif
class TMultiGraph;
class TGraph;
class TGLH2PolyPainter : public TGLPlotPainter {
public:
TGLH2PolyPainter(TH1 *hist, TGLPlotCamera *camera, TGLPlotCoordinates *coord);
char *GetPlotInfo(Int_t px, Int_t py);
Bool_t InitGeometry();
void StartPan(Int_t px, Int_t py);
void Pan(Int_t px, Int_t py);
void AddOption(const TString &stringOption);
void ProcessEvent(Int_t event, Int_t px, Int_t py);
private:
//Overriders
void InitGL()const;
void DeInitGL()const;
void DrawPlot()const;
//Aux. functions.
//Draw edges of a bin.
void DrawExtrusion()const;
void DrawExtrusion(const TGraph *polygon, Double_t zMin, Double_t zMax, Int_t nBin)const;
void DrawExtrusion(const TMultiGraph *polygon, Double_t zMin, Double_t zMax, Int_t nBin)const;
//Draw caps for a bin.
typedef std::list<Rgl::Pad::Tesselation_t>::const_iterator CIter_t;
void DrawCaps()const;
void DrawCap(CIter_t cap, Int_t bin)const;
//
Bool_t CacheGeometry();
Bool_t BuildTesselation(Rgl::Pad::Tesselator & tess, const TGraph *g, Double_t z);
Bool_t BuildTesselation(Rgl::Pad::Tesselator & tess, const TMultiGraph *mg, Double_t z);
Bool_t UpdateGeometry();
//Find the color in palette using bin content.
void SetBinColor(Int_t bin)const;
//Empty overriders.
void DrawSectionXOZ()const;
void DrawSectionYOZ()const;
void DrawSectionXOY()const;
void DrawPalette()const;
void DrawPaletteAxis()const;
//Aux. staff.
void FillTemporaryPolygon(const Double_t *xs, const Double_t *ys, Double_t z, Int_t n)const;
void MakePolygonCCW()const;
Bool_t ClampZ(Double_t &zVal)const;
TString fBinInfo; //Used by GetPlotInfo.
std::vector<Int_t> fBinColors;
mutable std::vector<Double_t> fPolygon; //Temporary array for polygon's vertices.
std::list<Rgl::Pad::Tesselation_t> fCaps;//Caps for all bins.
Bool_t fZLog;//Change in logZ updates only bin heights.
Double_t fZMin;
ClassDef(TGLH2PolyPainter, 0); //Painter class for TH2Poly.
};
#endif
|