/usr/include/root/TGLLegoPainter.h is in libroot-graf3d-gl-dev 5.34.19+dfsg-1.2.
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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | // @(#)root/gl:$Id$
// Author: Timur Pocheptsov 14/06/2006
/*************************************************************************
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TGLLegoPainter
#define ROOT_TGLLegoPainter
#ifndef ROOT_TGLPlotPainter
#include "TGLPlotPainter.h"
#endif
#ifndef ROOT_TGLQuadric
#include "TGLQuadric.h"
#endif
#ifndef ROOT_TGLUtil
#include "TGLUtil.h"
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif
class TGLPlotCamera;
class TAxis;
class TH1;
/*
TGLLegoPainter. The concrete implementation of abstract TGLPlotPainter.
*/
class TGLLegoPainter : public TGLPlotPainter {
private:
enum ELegoType {
kColorSimple,
kColorLevel,
kCylindricBars
};
//Bars, cylinders or textured bars.
mutable ELegoType fLegoType;
Double_t fMinZ;
Rgl::Range_t fMinMaxVal;//For texture coordinates generation.
std::vector<Rgl::Range_t> fXEdges;
std::vector<Rgl::Range_t> fYEdges;
typedef std::pair<Double_t, Double_t> CosSin_t;
std::vector<CosSin_t> fCosSinTableX;
std::vector<CosSin_t> fCosSinTableY;
TString fBinInfo;
mutable TGLQuadric fQuadric;
Bool_t fDrawErrors;
mutable TGLLevelPalette fPalette;
mutable std::vector<Double_t> fColorLevels;
TGLLegoPainter(const TGLLegoPainter &);
TGLLegoPainter &operator = (const TGLLegoPainter &);
public:
TGLLegoPainter(TH1 *hist, TGLPlotCamera *camera, TGLPlotCoordinates *coord);
//TGLPlotPainter's final-overriders
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:
//Auxilary functions.
Bool_t InitGeometryCartesian();
Bool_t InitGeometryPolar();
Bool_t InitGeometryCylindrical();
Bool_t InitGeometrySpherical();
//Overriders
void InitGL()const;
void DeInitGL()const;
void DrawPlot()const;
void DrawLegoCartesian()const;
void DrawLegoPolar()const;
void DrawLegoCylindrical()const;
void DrawLegoSpherical()const;
void SetLegoColor()const;
void DrawSectionXOZ()const;
void DrawSectionYOZ()const;
void DrawSectionXOY()const;
Bool_t ClampZ(Double_t &zVal)const;
Bool_t PreparePalette()const;
void DrawPalette()const;
void DrawPaletteAxis()const;
ClassDef(TGLLegoPainter, 0)//Lego painter
};
#endif
|