Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:11:42

0001 // @(#)root/eve:$Id$
0002 // Author: Matevz Tadel 2007
0003 
0004 /*************************************************************************
0005 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
0006 * All rights reserved.                                                  *
0007 *                                                                       *
0008 * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010 *************************************************************************/
0011 
0012 #ifndef ROOT_TEveProjectionAxes
0013 #define ROOT_TEveProjectionAxes
0014 
0015 #include "TNamed.h"
0016 #include "TAtt3D.h"
0017 #include "TAttBBox.h"
0018 #include "TAttAxis.h"
0019 
0020 #include "TEveElement.h"
0021 
0022 class TEveProjectionManager;
0023 
0024 class TEveProjectionAxes : public TEveElement,
0025                            public TNamed,
0026                            public TAtt3D,
0027                            public TAttBBox,
0028                            public TAttAxis
0029 {
0030    friend class TEveProjectionAxesGL;
0031 
0032 public:
0033    enum ELabMode { kPosition, kValue };
0034    enum EAxesMode { kHorizontal, kVertical, kAll};
0035 
0036 private:
0037    TEveProjectionAxes(const TEveProjectionAxes&);            // Not implemented
0038    TEveProjectionAxes& operator=(const TEveProjectionAxes&); // Not implemented
0039 
0040 protected:
0041    TEveProjectionManager*  fManager;  // Model object.
0042 
0043    Bool_t  fUseColorSet;
0044 
0045    ELabMode  fLabMode;                // Division of distorted space.
0046    EAxesMode fAxesMode;               // Axis vertical/hotrizontal orientation.
0047 
0048    Bool_t fDrawCenter;           // Draw center of distortion.
0049    Bool_t fDrawOrigin;           // Draw origin.
0050 
0051 
0052 public:
0053    TEveProjectionAxes(TEveProjectionManager* m, Bool_t useColorSet = kTRUE);
0054    ~TEveProjectionAxes() override;
0055 
0056    TEveProjectionManager* GetManager()      { return fManager; }
0057 
0058    void            SetLabMode(ELabMode x)   { fLabMode = x; }
0059    ELabMode        GetLabMode()   const     { return fLabMode;}
0060    void            SetAxesMode(EAxesMode x) { fAxesMode = x; }
0061    EAxesMode       GetAxesMode()   const    { return fAxesMode; }
0062 
0063    void            SetDrawCenter(Bool_t x)   { fDrawCenter = x; }
0064    Bool_t          GetDrawCenter() const     { return fDrawCenter; }
0065    void            SetDrawOrigin(Bool_t x)   { fDrawOrigin = x; }
0066    Bool_t          GetDrawOrigin() const     { return fDrawOrigin; }
0067 
0068    void    Paint(Option_t* option="") override;
0069    void    ComputeBBox() override;
0070 
0071    const   TGPicture* GetListTreeIcon(Bool_t open=kFALSE) override;
0072 
0073    ClassDefOverride(TEveProjectionAxes, 0); // Class to draw scales in non-linear projections.
0074 };
0075 
0076 #endif