11 void add_blobs(TEveElement* p, Float_t rad, Float_t height, Float_t size,
14 if (level <= 0)
return;
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),
23 x->SetMainColor(TColor::GetColorPalette
24 (gRandom->Integer(TColor::GetNumberOfColors())));
27 add_blobs(x, 0.8 * rad, 0.8 * height, 0.8 * size, level - 1);
31 void hierarchical_scene()
33 TEveManager::Create();
35 TColor::SetPalette(1, 0);
36 gRandom =
new TRandom3(0);
38 auto s = gEve->SpawnNewScene(
"Hierarchical Scene",
"OoogaDooga");
39 s->SetHierarchical(kTRUE);
41 gEve->GetDefaultViewer()->AddScene(s);
43 add_blobs(s, 6, 4, 0.5, 4);
45 gEve->Redraw3D(kTRUE);