12 #ifndef ROOT_TGLOverlay_H
13 #define ROOT_TGLOverlay_H
18 class TGLOvlSelectRecord;
22 class TGLOverlayElement
25 enum ERole { kUser, kViewer, kAnnotation, kAll };
27 enum EState { kInvisible = 1, kDisabled = 2, kActive = 4,
28 kAllVisible = kDisabled | kActive };
31 TGLOverlayElement(
const TGLOverlayElement&);
32 TGLOverlayElement& operator=(
const TGLOverlayElement&);
38 void ProjectionMatrixPushIdentity();
41 TGLOverlayElement(ERole r=kUser, EState s=kActive) :
42 fRole(r), fState(s) {}
43 virtual ~TGLOverlayElement() {}
45 virtual Bool_t MouseEnter(TGLOvlSelectRecord& selRec);
46 virtual Bool_t MouseStillInside(TGLOvlSelectRecord& selRec);
47 virtual Bool_t Handle(TGLRnrCtx& rnrCtx, TGLOvlSelectRecord& selRec,
49 virtual void MouseLeave();
51 virtual void Render(TGLRnrCtx& rnrCtx) = 0;
53 ERole GetRole()
const {
return fRole; }
54 void SetRole(ERole r) { fRole = r; }
56 EState GetState()
const {
return fState; }
57 void SetState(EState s) { fState = s; }
59 void SetBinaryState(Bool_t s) { SetState(s ? kActive : kInvisible); }
61 ClassDef(TGLOverlayElement, 0)
68 TGLOverlayList(
const TGLOverlayList&);
69 TGLOverlayList& operator=(
const TGLOverlayList&);
72 std::list<TGLOverlayElement*> fElements;
75 TGLOverlayList() : fElements() {}
76 virtual ~TGLOverlayList() {}
83 ClassDef(TGLOverlayList, 0)