Logo ROOT   master
Reference Guide
lineset.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_eve
3 /// Demonstrates usage of class REveStraightLineSet. The elements in the set can be individually picked when enable secondary select.
4 /// The REveStraightLineSet is a projectable class. It can be visible in RhoZ and RhoPhi projected views.
5 ///
6 /// \macro_code
7 ///
8 
9 #include "TRandom.h"
10 
11 #include <ROOT/REveElement.hxx>
12 #include <ROOT/REveScene.hxx>
13 #include <ROOT/REveManager.hxx>
15 
16 namespace REX = ROOT::Experimental;
17 
18 REX::REveStraightLineSet* makeLineSet(Int_t nlines = 40, Int_t nmarkers = 4, bool sc = true)
19 {
20  TRandom r(0);
21  Float_t s = 100;
22 
23  auto ls = new REX::REveStraightLineSet();
24 
25  for (Int_t i = 0; i<nlines; i++) {
26  ls->AddLine( r.Uniform(-s,s), r.Uniform(-s,s), r.Uniform(-s,s),
27  r.Uniform(-s,s), r.Uniform(-s,s), r.Uniform(-s,s));
28  // add random number of markers
29  Int_t nm = Int_t(nmarkers* r.Rndm());
30  for (Int_t m = 0; m < nm; m++) ls->AddMarker(i, r.Rndm());
31  }
32 
33  ls->SetMarkerSize(0.5);
34  ls->SetMarkerStyle(1);
35  ls->SetAlwaysSecSelect(sc);
37 
38  return ls;
39 }
40 
41 void lineset(bool secondarySelect = true)
42 {
44 
45  auto ls1 = makeLineSet(10, 5, secondarySelect);
46  ls1->SetMainColor(kViolet);
47  ls1->SetName("LineSet_1");
48 
49  auto ls2 = makeLineSet(300, 4, secondarySelect);
50  ls2->SetMainColor(kBlue);
51  ls2->SetName("LineSet_2");
52  ls2->InitMainTrans();
53  ls2->RefMainTrans().Move3LF(40, 200, 200);
54 
55  eveMng->Show();
56 }
void lineset(bool secondarySelect=true)
Definition: lineset.C:41
auto * m
Definition: textangle.C:8
float Float_t
Definition: RtypesCore.h:53
int Int_t
Definition: RtypesCore.h:41
This is the base class for the ROOT Random number generators.
Definition: TRandom.h:27
static constexpr double s
REX::REveStraightLineSet * makeLineSet(Int_t nlines=40, Int_t nmarkers=4, bool sc=true)
Definition: lineset.C:18
ROOT::R::TRInterface & r
Definition: Object.C:4
void Show(const RWebDisplayArgs &args="")
Show eve manager in specified browser.
static REveManager * Create()
If global REveManager* REX::gEve is not set initialize it.
R__EXTERN TEveManager * gEve
Definition: TEveManager.h:243
virtual void AddElement(TEveElement *el)
Add el to the list of children.
REveStraightLineSet Set of straight lines with optional markers along the lines.
TEveScene * GetEventScene() const
Definition: TEveManager.h:148
static constexpr double nm
Definition: Rtypes.h:65
Definition: Rtypes.h:64
REX::REveManager * eveMng