Logo ROOT  
Reference Guide
hierarchical_scene.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_eve
3///
4/// \image html eve_hierarchical_scene.png
5/// \macro_code
6///
7/// \author Matevz Tadel
8
9const Int_t Ns = 7;
10
11void add_blobs(TEveElement* p, Float_t rad, Float_t height, Float_t size,
12 Int_t level)
13{
14 if (level <= 0) return;
15
16 for (Int_t i = 0; i < Ns; ++i) {
17 auto x = new TEveGeoShape("SS");
18 x->SetShape(new TGeoSphere(0, size));
19 Double_t phi = TMath::TwoPi() * i / Ns;
20 x->RefMainTrans().SetPos(rad*TMath::Cos(phi),
21 rad*TMath::Sin(phi),
22 height);
23 x->SetMainColor(TColor::GetColorPalette
25 p->AddElement(x);
26
27 add_blobs(x, 0.8 * rad, 0.8 * height, 0.8 * size, level - 1);
28 }
29}
30
31void hierarchical_scene()
32{
34
36 gRandom = new TRandom3(0);
37
38 auto s = gEve->SpawnNewScene("Hierarchical Scene", "OoogaDooga");
39 s->SetHierarchical(kTRUE);
40
42
43 add_blobs(s, 6, 4, 0.5, 4);
44
46}
int Int_t
Definition: RtypesCore.h:41
double Double_t
Definition: RtypesCore.h:55
float Float_t
Definition: RtypesCore.h:53
const Bool_t kTRUE
Definition: RtypesCore.h:87
R__EXTERN TEveManager * gEve
Definition: TEveManager.h:243
R__EXTERN TRandom * gRandom
Definition: TRandom.h:62
static void SetPalette(Int_t ncolors, Int_t *colors, Float_t alpha=1.)
Static function.
Definition: TColor.cxx:2404
static Int_t GetColorPalette(Int_t i)
Static function returning the color number i in current palette.
Definition: TColor.cxx:1390
static Int_t GetNumberOfColors()
Static function returning number of colors in the color palette.
Definition: TColor.cxx:1410
Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and...
Definition: TEveElement.h:34
virtual void AddElement(TEveElement *el)
Add el to the list of children.
Wrapper for TGeoShape with absolute positioning and color attributes allowing display of extracted TG...
Definition: TEveGeoShape.h:24
TEveViewer * GetDefaultViewer() const
Returns the default viewer - the first one in the fViewers list.
static TEveManager * Create(Bool_t map_window=kTRUE, Option_t *opt="FIV")
If global TEveManager* gEve is not set initialize it.
void Redraw3D(Bool_t resetCameras=kFALSE, Bool_t dropLogicals=kFALSE)
Definition: TEveManager.h:168
TEveScene * SpawnNewScene(const char *name, const char *title="")
Create a new scene.
virtual void AddScene(TEveScene *scene)
Add 'scene' to the list of scenes.
Definition: TEveViewer.cxx:261
Spherical shell class.
Definition: TGeoSphere.h:18
Random number generator class based on M.
Definition: TRandom3.h:27
virtual UInt_t Integer(UInt_t imax)
Returns a random integer uniformly distributed on the interval [ 0, imax-1 ].
Definition: TRandom.cxx:349
Double_t x[n]
Definition: legend1.C:17
static constexpr double rad
static constexpr double s
Double_t Cos(Double_t)
Definition: TMath.h:631
Double_t Sin(Double_t)
Definition: TMath.h:627
constexpr Double_t TwoPi()
Definition: TMath.h:45