Logo ROOT   master
Reference Guide
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 
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
36 
37 public:
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
The TGLRnrCtx class aggregates data for a given redering context as needed by various parts of the RO...
Definition: TGLRnrCtx.h:40
void SplitIntervalByVal(Float_t min, Float_t max, Int_t axis) const
Add tick-marks on fixed value step.
float Float_t
Definition: RtypesCore.h:55
const char Option_t
Definition: RtypesCore.h:64
virtual void SetBBox()
Fill the bounding-box data of the logical-shape.
TEveProjectionAxes * fM
void FilterOverlappingLabels(Int_t idx, Float_t ref) const
Filter overlapping labels.
bool Bool_t
Definition: RtypesCore.h:61
Axes for non-linear projections.
TEveProjectionAxesGL & operator=(const TEveProjectionAxesGL &)
static const double x2[5]
#define ClassDef(name, id)
Definition: Rtypes.h:322
TEveProjection * fProjection
Base-class for direct OpenGL renderers.
Definition: TGLObject.h:21
Base-class for non-linear projections.
void SplitInterval(Float_t x1, Float_t x2, Int_t axis) const
Build an array of tick-mark position-value pairs.
virtual Bool_t SetModel(TObject *obj, const Option_t *opt=0)
Set model object.
virtual void Draw(TGLRnrCtx &rnrCtx) const
Draw function for TEveProjectionAxesGL. Skips line-pass of outline mode.
static const double x1[5]
void SplitIntervalByPos(Float_t min, Float_t max, Int_t axis) const
Add tick-marks at equidistant position.
Mother of all ROOT objects.
Definition: TObject.h:37
TEveProjectionAxesGL()
Constructor.
virtual void DirectDraw(TGLRnrCtx &rnrCtx) const
Actual rendering code.
const Bool_t kTRUE
Definition: RtypesCore.h:89
OpenGL renderer class for TEveProjectionAxes.
void GetRange(Int_t ax, Float_t frustMin, Float_t frustMax, Float_t &start, Float_t &en) const
Get range from bounding box of projection manager and frustum size.
Bool_t IgnoreSizeForOfInterest() const
Return true if size of this shape should be ignored when determining if the object should be drawn...