TEveTrackProjected.h

Go to the documentation of this file.
00001 // @(#)root/eve:$Id: TEveTrackProjected.h 35074 2010-08-30 15:18:02Z matevz $
00002 // Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 #ifndef ROOT_TEveTrackProjected
00013 #define ROOT_TEveTrackProjected
00014 
00015 #include "TEveTrack.h"
00016 #include "TEveProjectionBases.h"
00017 
00018 
00019 class TEveTrackProjected : public TEveTrack,
00020                            public TEveProjected
00021 {
00022    friend class TEveTrackProjectedGL;
00023 
00024 private:
00025    TEveTrackProjected(const TEveTrackProjected&);            // Not implemented
00026    TEveTrackProjected& operator=(const TEveTrackProjected&); // Not implemented
00027 
00028    Int_t GetBreakPointIdx(Int_t start);
00029    void  GetBreakPoint(Int_t N, Bool_t back, Float_t& x, Float_t& y, Float_t& z);
00030 
00031    TEveVector*          fOrigPnts;     // original track points
00032 
00033 protected:
00034    std::vector<Int_t>   fBreakPoints; // indices of track break-points
00035 
00036    virtual void SetDepthLocal(Float_t d);
00037 
00038 public:
00039    TEveTrackProjected();
00040    virtual ~TEveTrackProjected() {}
00041 
00042    virtual void SetProjection(TEveProjectionManager* mng, TEveProjectable* model);
00043 
00044    virtual void UpdateProjection();
00045    virtual TEveElement* GetProjectedAsElement() { return this; }
00046    virtual void MakeTrack(Bool_t recurse=kTRUE);
00047 
00048 
00049    void         PrintLineSegments();
00050 
00051    virtual void SecSelected(TEveTrack*); // marked as signal in TEveTrack
00052 
00053    ClassDef(TEveTrackProjected, 1); // Projected copy of a TEveTrack.
00054 };
00055 
00056 
00057 /******************************************************************************/
00058 // TEveTrackListProjected
00059 /******************************************************************************/
00060 
00061 class TEveTrackListProjected : public TEveTrackList,
00062                                public TEveProjected
00063 {
00064 private:
00065    TEveTrackListProjected(const TEveTrackListProjected&);            // Not implemented
00066    TEveTrackListProjected& operator=(const TEveTrackListProjected&); // Not implemented
00067 
00068 protected:
00069    virtual void SetDepthLocal(Float_t d);
00070 
00071 public:
00072    TEveTrackListProjected();
00073    virtual ~TEveTrackListProjected() {}
00074 
00075    virtual void SetProjection(TEveProjectionManager* proj, TEveProjectable* model);
00076    virtual void UpdateProjection()  {}
00077    virtual TEveElement* GetProjectedAsElement() { return this; }
00078 
00079    virtual void SetDepth(Float_t d);
00080    virtual void SetDepth(Float_t d, TEveElement* el);
00081 
00082    ClassDef(TEveTrackListProjected, 1); // Specialization of TEveTrackList for holding TEveTrackProjected objects.
00083 };
00084 
00085 #endif

Generated on Tue Jul 5 14:15:01 2011 for ROOT_528-00b_version by  doxygen 1.5.1