ROOT logo
// @(#)root/eve:$Id: TEveProjectionAxes.h 27341 2009-02-03 19:47:35Z matevz $
// Author: Matevz Tadel 2007

/*************************************************************************
* Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
* All rights reserved.                                                  *
*                                                                       *
* For the licensing terms see $ROOTSYS/LICENSE.                         *
* For the list of contributors see $ROOTSYS/README/CREDITS.             *
*************************************************************************/

#ifndef ROOT_TEveProjectionAxes
#define ROOT_TEveProjectionAxes

#include "TNamed.h"
#include "TAtt3D.h"
#include "TAttBBox.h"
#include "TAttAxis.h"

#include "TEveElement.h"

class TEveProjectionManager;

class TEveProjectionAxes : public TEveElement,
                           public TNamed,
                           public TAtt3D,
                           public TAttBBox,
                           public TAttAxis
{
   friend class TEveProjectionAxesGL;

public:
   enum ELabMode { kPosition, kValue };
   enum EAxesMode { kHorizontal, kVertical, kAll};

private:
   TEveProjectionAxes(const TEveProjectionAxes&);            // Not implemented
   TEveProjectionAxes& operator=(const TEveProjectionAxes&); // Not implemented

protected:
   TEveProjectionManager*  fManager;  // Model object.

   Color_t fColor;                    // Main eve-element color.

   ELabMode  fLabMode;                // Division of distorted space.
   EAxesMode fAxesMode;               // Axis vertical/hotrizontal orientation.

   Bool_t fDrawCenter;           // Draw center of distortion.
   Bool_t fDrawOrigin;           // Draw origin.

public:
   TEveProjectionAxes(TEveProjectionManager* m);
   virtual ~TEveProjectionAxes();

   TEveProjectionManager* GetManager(){
      return fManager;
   }

   void            SetLabMode(ELabMode x)   { fLabMode = x; }
   ELabMode        GetLabMode()   const     { return fLabMode;}
   void            SetAxesMode(EAxesMode x) { fAxesMode = x; }
   EAxesMode       GetAxesMode()   const    { return fAxesMode; }

   void            SetDrawCenter(Bool_t x)   { fDrawCenter = x; }
   Bool_t          GetDrawCenter() const     { return fDrawCenter; }
   void            SetDrawOrigin(Bool_t x)   { fDrawOrigin = x; }
   Bool_t          GetDrawOrigin() const     { return fDrawOrigin; }

   virtual Bool_t  CanEditMainColor() const  { return kTRUE;}
   virtual void    Paint(Option_t* option="");
   virtual void    ComputeBBox();
   virtual const   TGPicture* GetListTreeIcon(Bool_t open=kFALSE);

   ClassDef(TEveProjectionAxes, 1); // Class to draw scales in non-linear projections.
};

#endif
 TEveProjectionAxes.h:1
 TEveProjectionAxes.h:2
 TEveProjectionAxes.h:3
 TEveProjectionAxes.h:4
 TEveProjectionAxes.h:5
 TEveProjectionAxes.h:6
 TEveProjectionAxes.h:7
 TEveProjectionAxes.h:8
 TEveProjectionAxes.h:9
 TEveProjectionAxes.h:10
 TEveProjectionAxes.h:11
 TEveProjectionAxes.h:12
 TEveProjectionAxes.h:13
 TEveProjectionAxes.h:14
 TEveProjectionAxes.h:15
 TEveProjectionAxes.h:16
 TEveProjectionAxes.h:17
 TEveProjectionAxes.h:18
 TEveProjectionAxes.h:19
 TEveProjectionAxes.h:20
 TEveProjectionAxes.h:21
 TEveProjectionAxes.h:22
 TEveProjectionAxes.h:23
 TEveProjectionAxes.h:24
 TEveProjectionAxes.h:25
 TEveProjectionAxes.h:26
 TEveProjectionAxes.h:27
 TEveProjectionAxes.h:28
 TEveProjectionAxes.h:29
 TEveProjectionAxes.h:30
 TEveProjectionAxes.h:31
 TEveProjectionAxes.h:32
 TEveProjectionAxes.h:33
 TEveProjectionAxes.h:34
 TEveProjectionAxes.h:35
 TEveProjectionAxes.h:36
 TEveProjectionAxes.h:37
 TEveProjectionAxes.h:38
 TEveProjectionAxes.h:39
 TEveProjectionAxes.h:40
 TEveProjectionAxes.h:41
 TEveProjectionAxes.h:42
 TEveProjectionAxes.h:43
 TEveProjectionAxes.h:44
 TEveProjectionAxes.h:45
 TEveProjectionAxes.h:46
 TEveProjectionAxes.h:47
 TEveProjectionAxes.h:48
 TEveProjectionAxes.h:49
 TEveProjectionAxes.h:50
 TEveProjectionAxes.h:51
 TEveProjectionAxes.h:52
 TEveProjectionAxes.h:53
 TEveProjectionAxes.h:54
 TEveProjectionAxes.h:55
 TEveProjectionAxes.h:56
 TEveProjectionAxes.h:57
 TEveProjectionAxes.h:58
 TEveProjectionAxes.h:59
 TEveProjectionAxes.h:60
 TEveProjectionAxes.h:61
 TEveProjectionAxes.h:62
 TEveProjectionAxes.h:63
 TEveProjectionAxes.h:64
 TEveProjectionAxes.h:65
 TEveProjectionAxes.h:66
 TEveProjectionAxes.h:67
 TEveProjectionAxes.h:68
 TEveProjectionAxes.h:69
 TEveProjectionAxes.h:70
 TEveProjectionAxes.h:71
 TEveProjectionAxes.h:72
 TEveProjectionAxes.h:73
 TEveProjectionAxes.h:74
 TEveProjectionAxes.h:75
 TEveProjectionAxes.h:76
 TEveProjectionAxes.h:77