CMS 3D CMS Logo

Public Member Functions | Protected Attributes | Private Member Functions

TEveEllipsoidGL Class Reference

#include <TEveEllipsoidGL.h>

Inheritance diagram for TEveEllipsoidGL:
TEveEllipsoidProjectedGL

List of all members.

Public Member Functions

 ClassDef (TEveEllipsoidGL, 0)
virtual void DirectDraw (TGLRnrCtx &rnrCtx) const
virtual Bool_t IgnoreSizeForOfInterest () const
virtual void SetBBox ()
virtual Bool_t SetModel (TObject *obj, const Option_t *opt=0)
 TEveEllipsoidGL ()
virtual ~TEveEllipsoidGL ()

Protected Attributes

TEveEllipsoidfE

Private Member Functions

TEveEllipsoidGLoperator= (const TEveEllipsoidGL &)
 TEveEllipsoidGL (const TEveEllipsoidGL &)

Detailed Description

Definition at line 17 of file TEveEllipsoidGL.h.


Constructor & Destructor Documentation

TEveEllipsoidGL::TEveEllipsoidGL ( const TEveEllipsoidGL ) [private]
TEveEllipsoidGL::TEveEllipsoidGL ( )

Definition at line 32 of file TEveEllipsoidGL.cc.

                                 :
   TGLObject(), fE(0)
{
   // Constructor.

   // fDLCache = kFALSE; // Disable display list.
}
virtual TEveEllipsoidGL::~TEveEllipsoidGL ( ) [inline, virtual]

Definition at line 29 of file TEveEllipsoidGL.h.

{}

Member Function Documentation

TEveEllipsoidGL::ClassDef ( TEveEllipsoidGL  ,
 
)
void TEveEllipsoidGL::DirectDraw ( TGLRnrCtx &  rnrCtx) const [virtual]

Reimplemented in TEveEllipsoidProjectedGL.

Definition at line 62 of file TEveEllipsoidGL.cc.

References a, trackerHits::c, fE, i, j, TEveEllipsoid::RefEMtx(), TEveEllipsoid::RefExtent3D(), TEveEllipsoid::RefPos(), and x.

{
   // Render with OpenGL.

   // printf("TEveEllipsoidGL::DirectDraw LOD %s\n", fE->GetName());

   glPushAttrib(GL_ENABLE_BIT | GL_POLYGON_BIT | GL_LIGHTING_BIT);
   glEnable(GL_NORMALIZE );
   if(!quad)
      quad = gluNewQuadric();

   glPushMatrix();

   TMatrixDSym xxx(3);
   for(int i=0;i<3;i++)
      for(int j=0;j<3;j++)
      {
         xxx(i,j) = fE->RefEMtx()(i+1,j+1);
      }
   TMatrixDEigen eig(xxx);


   // rewrite for multmatrix ....
   TEveTrans x;
   for(int i=0;i<3;i++)
      for(int j=0;j<3;j++)
      {
         x(i+1, j+1) =  eig.GetEigenVectors()(i,j);
      }

   TVector3 a =  x.GetBaseVec(1);
   TVector3 c = a.Cross(x.GetBaseVec(2));
   x.SetBaseVec(3, c);

   glTranslatef(fE->RefPos()[0], fE->RefPos()[1], fE->RefPos()[2]);
   glMultMatrixd(x.Array());
   glScalef(fE->RefExtent3D()[0] , fE->RefExtent3D()[1], fE->RefExtent3D()[2]);
   gluSphere(quad,1. , 30, 30);

   glPopMatrix();
   glPopAttrib();


   // gluDeleteQuadric(quad);
}
virtual Bool_t TEveEllipsoidGL::IgnoreSizeForOfInterest ( ) const [inline, virtual]

Definition at line 35 of file TEveEllipsoidGL.h.

{ return kTRUE; }
TEveEllipsoidGL& TEveEllipsoidGL::operator= ( const TEveEllipsoidGL ) [private]
void TEveEllipsoidGL::SetBBox ( ) [virtual]

Reimplemented in TEveEllipsoidProjectedGL.

Definition at line 50 of file TEveEllipsoidGL.cc.

{
   // Set bounding box.
   ( (TEveEllipsoid*)fExternalObj)->ComputeBBox();
   SetAxisAlignedBBox(((TEveEllipsoid*)fExternalObj)->AssertBBox());
}
Bool_t TEveEllipsoidGL::SetModel ( TObject *  obj,
const Option_t *  opt = 0 
) [virtual]

Reimplemented in TEveEllipsoidProjectedGL.

Definition at line 41 of file TEveEllipsoidGL.cc.

References fE, and VarParsing::obj.

{
   // Set model object.

   fE = SetModelDynCast<TEveEllipsoid>(obj);
   return kTRUE;
}

Member Data Documentation