Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TGLParametric.h
Go to the documentation of this file.
1// @(#)root/gl:$Id$
2// Author: Timur Pocheptsov 26/01/2007
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TGLParametric
13#define ROOT_TGLParametric
14
15#include "TGLHistPainter.h"
16#include "TGLUtil.h"
17#include "TAxis.h"
18#include "TF2.h"
19
20#include <memory>
21
22class TString;
23
24//////////////////////////////////////////////////////////////////////////
25// //
26// TGLParametricEquation //
27// //
28// Parametric equations drawing with GL. //
29// //
30//////////////////////////////////////////////////////////////////////////
31
32
34
36private:
37 typedef std::unique_ptr<TF2> Ptr_t;
38
42
44
47
50
51 typedef std::unique_ptr<TGLHistPainter> Painter_t;
52 //C++ compiler do not need TGLhistPainter definition here, but I'm not sure about CINT,
53 //so I've included TGLHistPainter definition.
55
56public:
57 TGLParametricEquation(const TString &name, const TString &xEquation,
58 const TString &yEquation, const TString &zEquation,
59 Double_t uMin, Double_t uMax,
60 Double_t vMin, Double_t vMax);
62 Double_t uMin, Double_t uMax, Double_t vMin, Double_t vMax);
63
66
67 Bool_t IsConstrained()const;
69
70 Bool_t IsModified()const;
71 void SetModified(Bool_t m);
72
73 void EvalVertex(TGLVertex3 &newVertex, Double_t u, Double_t v)const;
74
75 Int_t DistancetoPrimitive(Int_t px, Int_t py) override;
76 void ExecuteEvent(Int_t event, Int_t px, Int_t py) override;
77 char *GetObjectInfo(Int_t px, Int_t py) const override;
78 void Paint(Option_t *option) override;
79
80private:
81
84
85 ClassDefOverride(TGLParametricEquation, 0)//Equation of parametric surface.
86};
87
89private:
90 struct Vertex_t {
94 };
95
96 enum EMeshSize {kLow = 30, kHigh = 150};
97
100
103
105
109
111
112public:
114
115 Bool_t InitGeometry() override;
116 void StartPan(Int_t px, Int_t py) override;
117 void Pan(Int_t px, Int_t py) override;
118 char *GetPlotInfo(Int_t px, Int_t py) override;
119 void AddOption(const TString &option) override;
120 void ProcessEvent(Int_t event, Int_t px, Int_t py) override;
121
122private:
123 void InitGL()const override;
124 void DeInitGL()const override;
125
126 void DrawPlot()const override;
127
128 void InitColors();
129
130 void DrawSectionXOZ()const override;
131 void DrawSectionYOZ()const override;
132 void DrawSectionXOY()const override;
133
134 void SetSurfaceColor()const;
135
138
139 ClassDefOverride(TGLParametricPlot, 0)//Parametric plot's painter.
140};
141
142#endif
#define c(i)
Definition RSha256.hxx:101
float Float_t
Definition RtypesCore.h:57
double Double_t
Definition RtypesCore.h:59
const char Option_t
Definition RtypesCore.h:66
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
void(* ParametricEquation_t)(TGLVertex3 &, Double_t u, Double_t v)
winID h TVirtualViewer3D TVirtualGLPainter char GetPlotInfo
Option_t Option_t option
char name[80]
Definition TGX11.cxx:110
Class to manage histogram axis.
Definition TAxis.h:31
A parametric surface is a surface defined by a parametric equation, involving two parameters (u,...
TGLParametricEquation & operator=(const TGLParametricEquation &)
Rgl::Range_t GetVRange() const
[vMin, vMax]
ParametricEquation_t fEquation
Bool_t IsModified() const
Something was changed in parametric equation (or constrained option was changed).
std::unique_ptr< TGLHistPainter > Painter_t
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Check, if parametric surface is under cursor.
char * GetObjectInfo(Int_t px, Int_t py) const override
No object info yet.
Rgl::Range_t GetURange() const
[uMin, uMax]
Bool_t IsConstrained() const
Check is constrained.
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Pass event to painter.
void Paint(Option_t *option) override
Delegate paint.
void EvalVertex(TGLVertex3 &newVertex, Double_t u, Double_t v) const
Calculate vertex.
void SetConstrained(Bool_t c)
Set constrained.
TGLParametricEquation(const TGLParametricEquation &)
void SetModified(Bool_t m)
Set modified.
std::unique_ptr< TF2 > Ptr_t
TGLParametricPlot(const TGLParametricPlot &)
void ProcessEvent(Int_t event, Int_t px, Int_t py) override
Change color/mesh size or switch on/off mesh/box cut.
void InitColors()
Calculate colors for vertices, using one of 20 color themes.
void InitGL() const override
Initialize gl state.
Bool_t InitGeometry() override
Build mesh.
void DrawSectionXOY() const override
No such sections.
void DrawSectionYOZ() const override
No such sections.
void DeInitGL() const override
Initialize gl state.
void SetSurfaceColor() const
Set material properties.
TGLPlotCoordinates fCartesianCoord
TGLParametricEquation * fEquation
void AddOption(const TString &option) override
No additional options for parametric surfaces.
TGL2DArray< Vertex_t > fMesh
void StartPan(Int_t px, Int_t py) override
User clicks right mouse button (in a pad).
void DrawPlot() const override
Draw parametric surface.
void DrawSectionXOZ() const override
No such sections.
TGLParametricPlot & operator=(const TGLParametricPlot &)
void Pan(Int_t px, Int_t py) override
User's moving mouse cursor, with middle mouse button pressed (for pad).
Camera for TGLPlotPainter and sub-classes.
Helper class for plot-painters holding information about axis ranges, numbers of bins and flags if ce...
Base class for plot-painters that provide GL rendering of various 2D and 3D histograms,...
3 component (x/y/z) vector class.
Definition TGLUtil.h:248
3 component (x/y/z) vertex class.
Definition TGLUtil.h:84
The TNamed class is the base class for all named ROOT classes.
Definition TNamed.h:29
Basic string class.
Definition TString.h:139
std::pair< Double_t, Double_t > Range_t
Definition TGLUtil.h:1202
TMarker m
Definition textangle.C:8