Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
compound.C
Go to the documentation of this file.
1 #include "TRandom.h"
2 #include <ROOT/REveManager.hxx>
3 #include <ROOT/REveScene.hxx>
4 #include <ROOT/REveLine.hxx>
5 #include <ROOT/REveCompound.hxx>
6 
7 namespace REX = ROOT::Experimental;
8 
9 REX::REveLine* random_line(TRandom& rnd, Int_t n, Float_t delta)
10 {
11  auto line = new REX::REveLine;
12  line->SetMainColor(kGreen);
13 
14  Float_t x = 0, y = 0, z = 0;
15  for (Int_t i=0; i<n; ++i) {
16  line->SetNextPoint(x, y, z);
17  x += rnd.Uniform(0, delta);
18  y += rnd.Uniform(0, delta);
19  z += rnd.Uniform(0, delta);
20  }
21 
22  return line;
23 }
24 
25 void compound()
26 {
27  // disable browser cache - all scripts and html files will be loaded every time, useful for development
28  // gEnv->SetValue("WebGui.HttpMaxAge", 0);
29 
30  auto eveMng = REX::REveManager::Create();
31  TRandom rnd(0);
32  /*
33  auto* ml = random_line(rnd, 20, 10);
34  ml->SetMainColor(kRed);
35  ml->SetLineStyle(2);
36  ml->SetLineWidth(3);
37  eveMng->InsertVizDBEntry("BigLine", ml);
38  */
39  auto cmp = new REX::REveCompound;
40  cmp->SetMainColor(kGreen);
41 
42 
43  cmp->OpenCompound();
44  cmp->AddElement(random_line(rnd, 20, 10));
45  cmp->AddElement(random_line(rnd, 20, 10));
46 
47  auto line = random_line(rnd, 20, 12);
48  line->SetMainColor(kRed);
49  line->SetLineStyle(2);
50  line->SetLineWidth(3);
51  // line->ApplyVizTag("BigLine");
52  cmp->AddElement(line);
53 
54 
55  cmp->CloseCompound();
56 
57  eveMng->GetEventScene()->AddElement(cmp);
58 
59  eveMng->Show();
60 }