Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TEveProjectionAxesGL.h
Go to the documentation of this file.
1 // @(#)root/eve:$Id$
2 // Author: Alja Mrak-Tadel 2007
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TEveProjectionAxesGL
13 #define ROOT_TEveProjectionAxesGL
14 
15 #include "TGLObject.h"
16 #include "TGLAxisPainter.h"
17 
18 class TEveProjectionAxes;
19 class TEveProjection;
20 
21 class TEveProjectionAxesGL : public TGLObject
22 {
23 private:
24  TEveProjectionAxesGL(const TEveProjectionAxesGL&); // Not implemented
25  TEveProjectionAxesGL& operator=(const TEveProjectionAxesGL&); // Not implemented
26 
27  void GetRange(Int_t ax, Float_t frustMin, Float_t frustMax, Float_t& start, Float_t& en) const;
28  void SplitInterval(Float_t x1, Float_t x2, Int_t axis) const;
29  void SplitIntervalByPos(Float_t min, Float_t max, Int_t axis)const;
30  void SplitIntervalByVal(Float_t min, Float_t max, Int_t axis)const;
31  void FilterOverlappingLabels(Int_t idx, Float_t ref) const;
32 protected:
33  TEveProjectionAxes *fM; // Model object.
34  mutable TEveProjection *fProjection; // Cached model projection
35  mutable TGLAxisPainter fAxisPainter;
36 
37 public:
38  TEveProjectionAxesGL();
39  virtual ~TEveProjectionAxesGL() {}
40 
41  virtual Bool_t SetModel(TObject* obj, const Option_t* opt = 0);
42  virtual void SetBBox();
43  virtual void Draw(TGLRnrCtx& rnrCtx) const;
44  virtual void DirectDraw(TGLRnrCtx & rnrCtx) const;
45 
46  Bool_t IgnoreSizeForOfInterest() const { return kTRUE; }
47 
48  ClassDef(TEveProjectionAxesGL, 0); // GL renderer class for TEveProjectionAxes.
49 };
50 
51 #endif