00001 // @(#)root/eve:$Id: TEveProjectionAxes.h 32478 2010-03-05 14:20:48Z matevz $ 00002 // Author: Matevz Tadel 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_TEveProjectionAxes 00013 #define ROOT_TEveProjectionAxes 00014 00015 #include "TNamed.h" 00016 #include "TAtt3D.h" 00017 #include "TAttBBox.h" 00018 #include "TAttAxis.h" 00019 00020 #include "TEveElement.h" 00021 00022 class TEveProjectionManager; 00023 00024 class TEveProjectionAxes : public TEveElement, 00025 public TNamed, 00026 public TAtt3D, 00027 public TAttBBox, 00028 public TAttAxis 00029 { 00030 friend class TEveProjectionAxesGL; 00031 00032 public: 00033 enum ELabMode { kPosition, kValue }; 00034 enum EAxesMode { kHorizontal, kVertical, kAll}; 00035 00036 private: 00037 TEveProjectionAxes(const TEveProjectionAxes&); // Not implemented 00038 TEveProjectionAxes& operator=(const TEveProjectionAxes&); // Not implemented 00039 00040 protected: 00041 TEveProjectionManager* fManager; // Model object. 00042 00043 Bool_t fUseColorSet; 00044 00045 ELabMode fLabMode; // Division of distorted space. 00046 EAxesMode fAxesMode; // Axis vertical/hotrizontal orientation. 00047 00048 Bool_t fDrawCenter; // Draw center of distortion. 00049 Bool_t fDrawOrigin; // Draw origin. 00050 00051 00052 public: 00053 TEveProjectionAxes(TEveProjectionManager* m, Bool_t useColorSet = kTRUE); 00054 virtual ~TEveProjectionAxes(); 00055 00056 TEveProjectionManager* GetManager() { return fManager; } 00057 00058 void SetLabMode(ELabMode x) { fLabMode = x; } 00059 ELabMode GetLabMode() const { return fLabMode;} 00060 void SetAxesMode(EAxesMode x) { fAxesMode = x; } 00061 EAxesMode GetAxesMode() const { return fAxesMode; } 00062 00063 void SetDrawCenter(Bool_t x) { fDrawCenter = x; } 00064 Bool_t GetDrawCenter() const { return fDrawCenter; } 00065 void SetDrawOrigin(Bool_t x) { fDrawOrigin = x; } 00066 Bool_t GetDrawOrigin() const { return fDrawOrigin; } 00067 00068 virtual void Paint(Option_t* option=""); 00069 virtual void ComputeBBox(); 00070 00071 virtual const TGPicture* GetListTreeIcon(Bool_t open=kFALSE); 00072 00073 ClassDef(TEveProjectionAxes, 1); // Class to draw scales in non-linear projections. 00074 }; 00075 00076 #endif