00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TEveProjectionAxesGL
00013 #define ROOT_TEveProjectionAxesGL
00014
00015 #include "TGLObject.h"
00016 #include "TGLAxisPainter.h"
00017
00018 class TEveProjectionAxes;
00019 class TEveProjection;
00020
00021 class TEveProjectionAxesGL : public TGLObject
00022 {
00023 private:
00024 TEveProjectionAxesGL(const TEveProjectionAxesGL&);
00025 TEveProjectionAxesGL& operator=(const TEveProjectionAxesGL&);
00026
00027 void GetRange(Int_t ax, Float_t frustMin, Float_t frustMax, Float_t& start, Float_t& en) const;
00028 void SplitInterval(Float_t x1, Float_t x2, Int_t axis) const;
00029 void SplitIntervalByPos(Float_t min, Float_t max, Int_t axis)const;
00030 void SplitIntervalByVal(Float_t min, Float_t max, Int_t axis)const;
00031 void FilterOverlappingLabels(Int_t idx, Float_t ref) const;
00032 protected:
00033 TEveProjectionAxes *fM;
00034 mutable TEveProjection *fProjection;
00035 mutable TGLAxisPainter fAxisPainter;
00036
00037 public:
00038 TEveProjectionAxesGL();
00039 virtual ~TEveProjectionAxesGL() {}
00040
00041 virtual Bool_t SetModel(TObject* obj, const Option_t* opt = 0);
00042 virtual void SetBBox();
00043 virtual void Draw(TGLRnrCtx& rnrCtx) const;
00044 virtual void DirectDraw(TGLRnrCtx & rnrCtx) const;
00045
00046 Bool_t IgnoreSizeForOfInterest() const { return kTRUE; }
00047
00048 ClassDef(TEveProjectionAxesGL, 0);
00049 };
00050
00051 #endif