24 ClassImp(TEveDigitSetGL);
29 TEveDigitSetGL::TEveDigitSetGL() :
30 TGLObject(), fHighlightSet(0)
37 Bool_t TEveDigitSetGL::SetupColor(
const TEveDigitSet::DigitBase_t& q)
const
39 TEveDigitSet &DS = * (TEveDigitSet*) fExternalObj;
45 else if (DS.fValueIsColor)
49 TGLUtil::Color4ubv((UChar_t*) & q.fValue);
58 Bool_t visible = DS.fPalette->ColorFromValue(q.fValue, DS.fDefaultValue, c);
60 TGLUtil::Color3ubv(c);
70 void TEveDigitSetGL::DrawFrameIfNeeded(TGLRnrCtx& rnrCtx)
const
72 TEveDigitSet &DS = * (TEveDigitSet*)fExternalObj;
74 if (DS.fFrame != 0 && ! rnrCtx.SecSelection() &&
75 ! (rnrCtx.Selection() && ! DS.fSelectViaFrame) &&
76 ! (rnrCtx.Highlight() && ! DS.fHighlightFrame))
78 TEveFrameBoxGL::Render(DS.fFrame);
85 void TEveDigitSetGL::SetBBox()
87 SetAxisAlignedBBox(((TEveDigitSet*)fExternalObj)->AssertBBox());
94 void TEveDigitSetGL::DrawHighlight(TGLRnrCtx& rnrCtx,
const TGLPhysicalShape* pshp, Int_t )
const
96 TEveDigitSet &DS = * (TEveDigitSet*)fExternalObj;
98 if (AlwaysSecondarySelect())
100 if ( ! DS.RefHighlightedSet().empty())
102 fHighlightSet = & DS.RefHighlightedSet();
103 TGLObject::DrawHighlight(rnrCtx, pshp, 3);
105 if ( ! DS.RefSelectedSet().empty())
107 fHighlightSet = & DS.RefSelectedSet();
108 TGLObject::DrawHighlight(rnrCtx, pshp, 1);
114 TGLObject::DrawHighlight(rnrCtx, pshp);
123 void TEveDigitSetGL::ProcessSelection(TGLRnrCtx& , TGLSelectRecord& rec)
125 TEveDigitSet &DS = * (TEveDigitSet*)fExternalObj;
127 if (AlwaysSecondarySelect())
129 DS.ProcessGLSelection(rec);
133 if (rec.GetN() < 2)
return;
134 DS.DigitSelected(rec.GetItem(1));