Logo ROOT  
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
16namespace REX = ROOT::Experimental;
17
18REX::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
41void 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}
ROOT::R::TRInterface & r
Definition: Object.C:4
int Int_t
Definition: RtypesCore.h:43
float Float_t
Definition: RtypesCore.h:55
@ kBlue
Definition: Rtypes.h:64
@ kViolet
Definition: Rtypes.h:65
R__EXTERN TEveManager * gEve
Definition: TEveManager.h:243
static REveManager * Create()
If global REveManager* REX::gEve is not set initialize it.
void Show(const RWebDisplayArgs &args="")
Show eve manager in specified browser.
REveStraightLineSet Set of straight lines with optional markers along the lines.
virtual void AddElement(TEveElement *el)
Add el to the list of children.
TEveScene * GetEventScene() const
Definition: TEveManager.h:148
This is the base class for the ROOT Random number generators.
Definition: TRandom.h:27
REX::REveManager * eveMng
void lineset(bool secondarySelect=true)
Definition: lineset.C:41
REX::REveStraightLineSet * makeLineSet(Int_t nlines=40, Int_t nmarkers=4, bool sc=true)
Definition: lineset.C:18
static constexpr double nm
static constexpr double s
auto * m
Definition: textangle.C:8