// @(#)root/eve:$Id: TEveProjectionAxes.h 25899 2008-10-20 20:13:38Z 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 "TEveElement.h"
#include "TGLAxisPainter.h"

class TEveProjectionManager;

class TEveProjectionAxes : public TEveElement,
                           public TNamed,
                           public TAtt3D,
                           public TAttBBox,
                           public TGLAxisAttrib
{
   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;

   ELabMode        fLabMode;       // tick-mark positioning
   EAxesMode       fAxesMode;

   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

Last change: Mon Nov 24 08:18:50 2008
Last generated: 2008-11-24 08:18

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.