Logo ROOT   6.21/01
Reference Guide
REveTrackProjected.hxx
Go to the documentation of this file.
1 // @(#)root/eve7:$Id$
2 // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2019, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT7_REveTrackProjected
13 #define ROOT7_REveTrackProjected
14 
15 #include <ROOT/REveTrack.hxx>
17 
18 namespace ROOT {
19 namespace Experimental {
20 
21 ////////////////////////////////////////////////////////////////////////////////
22 /// REveTrackProjected
23 /// Projected copy of a REveTrack.
24 ////////////////////////////////////////////////////////////////////////////////
25 
27  public REveProjected
28 {
29 private:
30  REveTrackProjected(const REveTrackProjected &) = delete;
32 
34 
35  REveVector *fOrigPnts{nullptr}; // original track points
36 
37 protected:
38  std::vector<Int_t> fBreakPoints; // indices of track break-points
39 
40  void SetDepthLocal(Float_t d) override;
41 
42 public:
43  REveTrackProjected() = default;
44  virtual ~REveTrackProjected();
45 
46  void SetProjection(REveProjectionManager *mng, REveProjectable *model) override;
47 
48  void UpdateProjection() override;
49  REveElement *GetProjectedAsElement() override { return this; }
50  void MakeTrack(Bool_t recurse = kTRUE) override;
51 
52  void PrintLineSegments();
53 
54  void SecSelected(REveTrack *) override; // marked as signal in REveTrack
55 
56  Int_t WriteCoreJson(nlohmann::json &cj, Int_t rnr_offset) override;
57  void BuildRenderData() override;
58 };
59 
60 ////////////////////////////////////////////////////////////////////////////////
61 /// REveTrackListProjected
62 /// Specialization of REveTrackList for holding REveTrackProjected objects.
63 ////////////////////////////////////////////////////////////////////////////////
64 
66 private:
69 
70 protected:
71  void SetDepthLocal(Float_t d) override;
72 
73 public:
76 
77  void SetProjection(REveProjectionManager *proj, REveProjectable *model) override;
78  void UpdateProjection() override {}
79  REveElement *GetProjectedAsElement() override { return this; }
80 
81  void SetDepth(Float_t d) override;
82  virtual void SetDepth(Float_t d, REveElement *el);
83 };
84 
85 } // namespace Experimental
86 } // namespace ROOT
87 
88 #endif
Returns the available number of logical cores.
Definition: StringConv.hxx:21
float Float_t
Definition: RtypesCore.h:53
void SetDepthLocal(Float_t d) override
Set depth (z-coordinate) of the projected points.
REveTrackListProjected Specialization of REveTrackList for holding REveTrackProjected objects...
Int_t WriteCoreJson(nlohmann::json &cj, Int_t rnr_offset) override
Creates client representation.
Int_t GetBreakPointIdx(Int_t start)
Find index of the last point that lies within the same segment of projected space.
REveTrackProjected Projected copy of a REveTrack.
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
void MakeTrack(Bool_t recurse=kTRUE) override
Calculate the points of the track for drawing.
void SetProjection(REveProjectionManager *proj, REveProjectable *model) override
This is virtual method from base-class REveProjected.
void SetDepth(Float_t d) override
Set depth of all children inheriting from REveTrackProjected.
REveElement * GetProjectedAsElement() override
Returns this projected dynamic-casted to REveElement.
void SetProjection(REveProjectionManager *mng, REveProjectable *model) override
This is virtual method from base-class REveProjected.
REveElement * GetProjectedAsElement() override
Returns this projected dynamic-casted to REveElement.
void SetDepthLocal(Float_t d) override
This is not needed for functionality as SetDepth(Float_t d) is overriden – but SetDepthLocal() is ab...
REveTrackListProjected & operator=(const REveTrackListProjected &)=delete
void SecSelected(REveTrack *) override
Virtual method from from base-class REveTrack.
REveProjectionManager Manager class for steering of projections and managing projected objects...
void PrintLineSegments()
Print line segments info.
#define d(i)
Definition: RSha256.hxx:102
void BuildRenderData() override
Creates client rendering info.
REveTrackProjected & operator=(const REveTrackProjected &)=delete
REveTrack Track with given vertex, momentum and optional referece-points (path-marks) along its path...
Definition: REveTrack.hxx:39
REveTrackList A list of tracks supporting change of common attributes and selection based on track pa...
Definition: REveTrack.hxx:142
const Bool_t kTRUE
Definition: RtypesCore.h:87
void UpdateProjection() override
Virtual method from base-class REveProjected.