CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Attributes | Private Member Functions
TEveEllipsoidGL Class Reference

#include <TEveEllipsoidGL.h>

Inheritance diagram for TEveEllipsoidGL:
TEveEllipsoidProjectedGL

Public Member Functions

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

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() [1/2]

TEveEllipsoidGL::TEveEllipsoidGL ( const TEveEllipsoidGL )
private

◆ TEveEllipsoidGL() [2/2]

TEveEllipsoidGL::TEveEllipsoidGL ( )

Definition at line 28 of file TEveEllipsoidGL.cc.

28  : TGLObject(), fE(nullptr) {
29  // Constructor.
30 
31  // fDLCache = kFALSE; // Disable display list.
32 }
TEveEllipsoid * fE

◆ ~TEveEllipsoidGL()

TEveEllipsoidGL::~TEveEllipsoidGL ( )
inlineoverride

Definition at line 27 of file TEveEllipsoidGL.h.

27 {}

Member Function Documentation

◆ ClassDefOverride()

TEveEllipsoidGL::ClassDefOverride ( TEveEllipsoidGL  ,
 
)

◆ DirectDraw()

void TEveEllipsoidGL::DirectDraw ( TGLRnrCtx &  rnrCtx) const
override

Definition at line 54 of file TEveEllipsoidGL.cc.

References a, HltBtagPostValidation_cff::c, fE, mps_fire::i, dqmiolumiharvest::j, TEveEllipsoid::RefEMtx(), TEveEllipsoid::RefExtent3D(), TEveEllipsoid::RefPos(), x, and testFFTrackingParticleHits::xxx.

54  {
55  // Render with OpenGL.
56 
57  // printf("TEveEllipsoidGL::DirectDraw LOD %s\n", fE->GetName());
58 
59  glPushAttrib(GL_ENABLE_BIT | GL_POLYGON_BIT | GL_LIGHTING_BIT);
60  glEnable(GL_NORMALIZE);
61  if (!quad)
62  quad = gluNewQuadric();
63 
64  glPushMatrix();
65 
66  TMatrixDSym xxx(3);
67  for (int i = 0; i < 3; i++)
68  for (int j = 0; j < 3; j++) {
69  xxx(i, j) = fE->RefEMtx()(i + 1, j + 1);
70  }
71  TMatrixDEigen eig(xxx);
72 
73  // rewrite for multmatrix ....
74  TEveTrans x;
75  for (int i = 0; i < 3; i++)
76  for (int j = 0; j < 3; j++) {
77  x(i + 1, j + 1) = eig.GetEigenVectors()(i, j);
78  }
79 
80  TVector3 a = x.GetBaseVec(1);
81  TVector3 c = a.Cross(x.GetBaseVec(2));
82  x.SetBaseVec(3, c);
83 
84  glTranslatef(fE->RefPos()[0], fE->RefPos()[1], fE->RefPos()[2]);
85  glMultMatrixd(x.Array());
86  glScalef(fE->RefExtent3D()[0], fE->RefExtent3D()[1], fE->RefExtent3D()[2]);
87  gluSphere(quad, 1., 30, 30);
88 
89  glPopMatrix();
90  glPopAttrib();
91 
92  // gluDeleteQuadric(quad);
93 }
TEveVector & RefPos()
Definition: TEveEllipsoid.h:36
TEveEllipsoid * fE
TEveTrans & RefEMtx()
Definition: TEveEllipsoid.h:38
TEveVector & RefExtent3D()
Definition: TEveEllipsoid.h:37
double a
Definition: hdecay.h:119

◆ IgnoreSizeForOfInterest()

Bool_t TEveEllipsoidGL::IgnoreSizeForOfInterest ( ) const
inlineoverride

Definition at line 33 of file TEveEllipsoidGL.h.

33 { return kTRUE; }

◆ operator=()

TEveEllipsoidGL& TEveEllipsoidGL::operator= ( const TEveEllipsoidGL )
private

◆ SetBBox()

void TEveEllipsoidGL::SetBBox ( )
override

Definition at line 43 of file TEveEllipsoidGL.cc.

43  {
44  // Set bounding box.
45  ((TEveEllipsoid*)fExternalObj)->ComputeBBox();
46  SetAxisAlignedBBox(((TEveEllipsoid*)fExternalObj)->AssertBBox());
47 }

◆ SetModel()

Bool_t TEveEllipsoidGL::SetModel ( TObject *  obj,
const Option_t *  opt = nullptr 
)
override

Definition at line 35 of file TEveEllipsoidGL.cc.

References fE, and getGTfromDQMFile::obj.

35  {
36  // Set model object.
37 
38  fE = SetModelDynCast<TEveEllipsoid>(obj);
39  return kTRUE;
40 }
TEveEllipsoid * fE

Member Data Documentation

◆ fE

TEveEllipsoid* TEveEllipsoidGL::fE
protected