CMS 3D CMS Logo

Public Member Functions

FWEveDigitSetScalableMarkerGL Class Reference

List of all members.

Public Member Functions

 ClassDef (FWEveDigitSetScalableMarkerGL, 0)
virtual void DirectDraw (TGLRnrCtx &rnrCtx) const
 FWEveDigitSetScalableMarkerGL ()
virtual ~FWEveDigitSetScalableMarkerGL ()

Detailed Description

Definition at line 20 of file FWEveDigitSetScalableMarker.cc.


Constructor & Destructor Documentation

FWEveDigitSetScalableMarkerGL::FWEveDigitSetScalableMarkerGL ( ) [inline]

Definition at line 23 of file FWEveDigitSetScalableMarker.cc.

{}
virtual FWEveDigitSetScalableMarkerGL::~FWEveDigitSetScalableMarkerGL ( ) [inline, virtual]

Definition at line 24 of file FWEveDigitSetScalableMarker.cc.

{}

Member Function Documentation

FWEveDigitSetScalableMarkerGL::ClassDef ( FWEveDigitSetScalableMarkerGL  ,
 
)

Referenced by DirectDraw().

virtual void FWEveDigitSetScalableMarkerGL::DirectDraw ( TGLRnrCtx &  rnrCtx) const [inline, virtual]

Definition at line 26 of file FWEveDigitSetScalableMarker.cc.

References trackerHits::c, ClassDef(), f, AlCaHLTBitMon_ParallelJobs::p, and lumiQueryAPI::q.

   {
      glPushAttrib(GL_ENABLE_BIT | GL_POLYGON_BIT | GL_POINT_BIT);
      glEnable(GL_POINT_SMOOTH);
      glDisable(GL_LIGHTING);
          
      TEveChunkManager::iterator qi(fM->GetPlex());
      if (rnrCtx.Highlight() && fHighlightSet)
         qi.fSelection = fHighlightSet;
      
      if (rnrCtx.SecSelection()) glPushName(0);
      
      glPointSize(((FWEveDigitSetScalableMarker*)fM)->GetMarkerSize());
      while (qi.next()) {
         TEveQuadSet::QFreeQuad_t* q =  (TEveQuadSet::QFreeQuad_t*) qi();
         if (q->fValue < 0)
            continue;
         TGLUtil::ColorAlpha(Color_t(q->fValue));
         if (rnrCtx.SecSelection()) glLoadName(qi.index());
         float* p = &q->fVertices[0];
         glBegin(GL_LINES);
         float c[3]  =  {0.5f*(p[0]+p[6]), 0.5f*(p[1]+p[7]), 0.5f*(p[2]+p[8])};
         
         float d = p[6] - p[0];
         glVertex3f( c[0] -d, c[1], c[2]); glVertex3f(c[0] + d, c[1], c[2]);
         glVertex3f( c[0] , c[1] -d, c[2]); glVertex3f(c[0] , c[1] +d, c[2]);
         glVertex3f( c[0] , c[1], c[2]-d); glVertex3f(c[0] , c[1], c[2] +d);
         
         glEnd();
         
         glBegin(GL_POINTS);
         glVertex3fv(&c[0]);
         glEnd();
         
      }
      
      glPopAttrib();
   }