/usr/include/root/TGLParametric.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 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 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | // @(#)root/gl:$Id$
// Author: Timur Pocheptsov 26/01/2007
/*************************************************************************
* Copyright (C) 1995-2000, 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_TGLParametric
#define ROOT_TGLParametric
#include <memory>
#ifndef ROOT_TGLHistPainter
#include "TGLHistPainter.h"
#endif
#ifndef ROOT_TGLUtil
#include "TGLUtil.h"
#endif
#ifndef ROOT_TAxis
#include "TAxis.h"
#endif
#ifndef ROOT_TF2
#include "TF2.h"
#endif
class TString;
//////////////////////////////////////////////////////////////////////////
// //
// TGLParametricEquation //
// //
// Parametric equations drawing with GL. //
// //
//////////////////////////////////////////////////////////////////////////
typedef void (*ParametricEquation_t)(TGLVertex3 &, Double_t u, Double_t v);
class TGLParametricEquation : public TNamed {
private:
typedef std::auto_ptr<TF2> Ptr_t;
Ptr_t fXEquation;
Ptr_t fYEquation;
Ptr_t fZEquation;
ParametricEquation_t fEquation;
Rgl::Range_t fURange;
Rgl::Range_t fVRange;
Bool_t fConstrained;
Bool_t fModified;
typedef std::auto_ptr<TGLHistPainter> Painter_t;
//C++ compiler do not need TGLhistPainter definition here, but I'm not sure about CINT,
//so I've included TGLHistPainter definition.
Painter_t fPainter;
public:
TGLParametricEquation(const TString &name, const TString &xEquation,
const TString &yEquation, const TString &zEquation,
Double_t uMin, Double_t uMax,
Double_t vMin, Double_t vMax);
TGLParametricEquation(const TString &name, ParametricEquation_t equation,
Double_t uMin, Double_t uMax, Double_t vMin, Double_t vMax);
Rgl::Range_t GetURange()const;
Rgl::Range_t GetVRange()const;
Bool_t IsConstrained()const;
void SetConstrained(Bool_t c);
Bool_t IsModified()const;
void SetModified(Bool_t m);
void EvalVertex(TGLVertex3 &newVertex, Double_t u, Double_t v)const;
Int_t DistancetoPrimitive(Int_t px, Int_t py);
void ExecuteEvent(Int_t event, Int_t px, Int_t py);
char *GetObjectInfo(Int_t px, Int_t py) const;
void Paint(Option_t *option);
private:
TGLParametricEquation(const TGLParametricEquation &);
TGLParametricEquation &operator = (const TGLParametricEquation &);
ClassDef(TGLParametricEquation, 0)//Equation of parametric surface.
};
class TGLParametricPlot : public TGLPlotPainter {
private:
struct Vertex_t {
TGLVertex3 fPos;
TGLVector3 fNormal;
Float_t fRGBA[4];
};
enum EMeshSize {kLow = 30, kHigh = 150};
Int_t fMeshSize;
TGL2DArray<Vertex_t> fMesh;
Bool_t fShowMesh;
Int_t fColorScheme;
TGLParametricEquation *fEquation;
TAxis fCartesianXAxis;
TAxis fCartesianYAxis;
TAxis fCartesianZAxis;
TGLPlotCoordinates fCartesianCoord;
public:
TGLParametricPlot(TGLParametricEquation *equation, TGLPlotCamera *camera);
Bool_t InitGeometry();
void StartPan(Int_t px, Int_t py);
void Pan(Int_t px, Int_t py);
char *GetPlotInfo(Int_t px, Int_t py);
void AddOption(const TString &option);
void ProcessEvent(Int_t event, Int_t px, Int_t py);
private:
void InitGL()const;
void DeInitGL()const;
void DrawPlot()const;
void InitColors();
void DrawSectionXOZ()const;
void DrawSectionYOZ()const;
void DrawSectionXOY()const;
void SetSurfaceColor()const;
TGLParametricPlot(const TGLParametricPlot &);
TGLParametricPlot &operator = (const TGLParametricPlot &);
ClassDef(TGLParametricPlot, 0)//Parametric plot's painter.
};
#endif
|