Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TEveTrackProjected.h
Go to the documentation of this file.
1 // @(#)root/eve:$Id$
2 // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2007, 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 ROOT_TEveTrackProjected
13 #define ROOT_TEveTrackProjected
14 
15 #include "TEveTrack.h"
16 #include "TEveProjectionBases.h"
17 
18 
19 class TEveTrackProjected : public TEveTrack,
20  public TEveProjected
21 {
22  friend class TEveTrackProjectedGL;
23 
24 private:
25  TEveTrackProjected(const TEveTrackProjected&); // Not implemented
26  TEveTrackProjected& operator=(const TEveTrackProjected&); // Not implemented
27 
28  Int_t GetBreakPointIdx(Int_t start);
29 
30  TEveVector* fOrigPnts; // original track points
31 
32 protected:
33  std::vector<Int_t> fBreakPoints; // indices of track break-points
34 
35  virtual void SetDepthLocal(Float_t d);
36 
37 public:
38  TEveTrackProjected();
39  virtual ~TEveTrackProjected() {}
40 
41  virtual void SetProjection(TEveProjectionManager* mng, TEveProjectable* model);
42 
43  virtual void UpdateProjection();
44  virtual TEveElement* GetProjectedAsElement() { return this; }
45  virtual void MakeTrack(Bool_t recurse=kTRUE);
46 
47 
48  void PrintLineSegments();
49 
50  virtual void SecSelected(TEveTrack*); // marked as signal in TEveTrack
51 
52  ClassDef(TEveTrackProjected, 0); // Projected copy of a TEveTrack.
53 };
54 
55 
56 /******************************************************************************/
57 // TEveTrackListProjected
58 /******************************************************************************/
59 
60 class TEveTrackListProjected : public TEveTrackList,
61  public TEveProjected
62 {
63 private:
64  TEveTrackListProjected(const TEveTrackListProjected&); // Not implemented
65  TEveTrackListProjected& operator=(const TEveTrackListProjected&); // Not implemented
66 
67 protected:
68  virtual void SetDepthLocal(Float_t d);
69 
70 public:
71  TEveTrackListProjected();
72  virtual ~TEveTrackListProjected() {}
73 
74  virtual void SetProjection(TEveProjectionManager* proj, TEveProjectable* model);
75  virtual void UpdateProjection() {}
76  virtual TEveElement* GetProjectedAsElement() { return this; }
77 
78  virtual void SetDepth(Float_t d);
79  virtual void SetDepth(Float_t d, TEveElement* el);
80 
81  ClassDef(TEveTrackListProjected, 0); // Specialization of TEveTrackList for holding TEveTrackProjected objects.
82 };
83 
84 #endif