Warning, file /include/root/TGLOverlay.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef ROOT_TGLOverlay_H
0013 #define ROOT_TGLOverlay_H
0014
0015 #include <GuiTypes.h>
0016
0017 class TGLRnrCtx;
0018 class TGLOvlSelectRecord;
0019
0020 #include <list>
0021
0022 class TGLOverlayElement
0023 {
0024 public:
0025 enum ERole { kUser, kViewer, kAnnotation, kAll };
0026
0027 enum EState { kInvisible = 1, kDisabled = 2, kActive = 4,
0028 kAllVisible = kDisabled | kActive };
0029
0030 private:
0031 TGLOverlayElement(const TGLOverlayElement&) = delete;
0032 TGLOverlayElement& operator=(const TGLOverlayElement&) = delete;
0033
0034 protected:
0035 ERole fRole;
0036 EState fState;
0037
0038 void ProjectionMatrixPushIdentity();
0039
0040 public:
0041 TGLOverlayElement(ERole r=kUser, EState s=kActive) :
0042 fRole(r), fState(s) {}
0043 virtual ~TGLOverlayElement() {}
0044
0045 virtual Bool_t MouseEnter(TGLOvlSelectRecord& selRec);
0046 virtual Bool_t MouseStillInside(TGLOvlSelectRecord& selRec);
0047 virtual Bool_t Handle(TGLRnrCtx& rnrCtx, TGLOvlSelectRecord& selRec,
0048 Event_t* event);
0049 virtual void MouseLeave();
0050
0051 virtual void Render(TGLRnrCtx& rnrCtx) = 0;
0052
0053 ERole GetRole() const { return fRole; }
0054 void SetRole(ERole r) { fRole = r; }
0055
0056 EState GetState() const { return fState; }
0057 void SetState(EState s) { fState = s; }
0058
0059 void SetBinaryState(Bool_t s) { SetState(s ? kActive : kInvisible); }
0060
0061 ClassDef(TGLOverlayElement, 0)
0062 };
0063
0064
0065 class TGLOverlayList
0066 {
0067 private:
0068 TGLOverlayList(const TGLOverlayList&) = delete;
0069 TGLOverlayList& operator=(const TGLOverlayList&) = delete;
0070
0071 protected:
0072 std::list<TGLOverlayElement*> fElements;
0073
0074 public:
0075 TGLOverlayList() : fElements() {}
0076 virtual ~TGLOverlayList() {}
0077
0078
0079
0080
0081
0082
0083 ClassDef(TGLOverlayList, 0)
0084 };
0085
0086
0087 #endif