CMS 3D CMS Logo

Public Member Functions | Public Attributes | Private Member Functions

FWGeoTopNodeGLScene Class Reference

#include <FWGeoTopNodeScene.h>

List of all members.

Public Member Functions

virtual Int_t AddObject (const TBuffer3D &buffer, Bool_t *addChildren=0)
 FWGeoTopNodeGLScene (TVirtualPad *pad)
void GeoPopupMenu (Int_t gx, Int_t gy)
bool OpenCompositeWithPhyID (UInt_t phyID, const TBuffer3D &buffer)
virtual Bool_t ResolveSelectRecord (TGLSelectRecord &rec, Int_t curIdx)
void SetPad (TVirtualPad *p)
virtual ~FWGeoTopNodeGLScene ()

Public Attributes

FWGeoTopNodefTopNodeJebo

Private Member Functions

 FWGeoTopNodeGLScene (const FWGeoTopNodeGLScene &)
FWGeoTopNodeGLSceneoperator= (const FWGeoTopNodeGLScene &)

Detailed Description

Definition at line 10 of file FWGeoTopNodeScene.h.


Constructor & Destructor Documentation

FWGeoTopNodeGLScene::FWGeoTopNodeGLScene ( const FWGeoTopNodeGLScene ) [private]
FWGeoTopNodeGLScene::FWGeoTopNodeGLScene ( TVirtualPad *  pad)

Definition at line 13 of file FWGeoTopNodeScene.cc.

                                                         :
   TGLScenePad(pad),
   // fNextCompositeID(0),
   fTopNodeJebo(0)
{
   // Constructor.
   // fInternalPIDs = false;
   fTitle="JeboScene";
}
virtual FWGeoTopNodeGLScene::~FWGeoTopNodeGLScene ( ) [inline, virtual]

Definition at line 22 of file FWGeoTopNodeScene.h.

{}

Member Function Documentation

Int_t FWGeoTopNodeGLScene::AddObject ( const TBuffer3D &  buffer,
Bool_t *  addChildren = 0 
) [virtual]

Definition at line 50 of file FWGeoTopNodeScene.cc.

References fwLog, and fwlog::kError.

Referenced by OpenCompositeWithPhyID().

{
   if (fComposite)
   {
      // TGeoSubstraction, TGeoUnion, ... phyID ignored in this case
      int ns = TGLScenePad::AddObject(1, buffer, addChildren);
      return ns;
   }
   else
   {  
      fwLog(fwlog::kError)<< "FWGeoTopNodeGLScene::AddObject() should not be called if fNextCompositeID \n";
      return TGLScenePad::AddObject(buffer, addChildren);
   }
}
void FWGeoTopNodeGLScene::GeoPopupMenu ( Int_t  gx,
Int_t  gy 
)

Definition at line 97 of file FWGeoTopNodeScene.cc.

References fTopNodeJebo, and FWGeoTopNode::popupMenu().

Referenced by FWGLEventHandler::PopupContextMenu().

{fTopNodeJebo->popupMenu(gx, gy);
}
Bool_t FWGeoTopNodeGLScene::OpenCompositeWithPhyID ( UInt_t  phyID,
const TBuffer3D &  buffer 
)

Definition at line 24 of file FWGeoTopNodeScene.cc.

References AddObject(), and WDecay::kNone.

Referenced by FWGeoTopNode::paintShape().

{
   // Open new composite container.
   // TVirtualViewer3D interface overload - see base/src/TVirtualViewer3D.cxx
   // for description of viewer architecture.

   if (fComposite) {
      Error("FWGeoTopNodeGLScene::OpenComposite", "composite already open");
      return kFALSE;
   }

   UInt_t extraSections = TGLScenePad::AddObject(phyID, buffer, 0);
   if (extraSections != TBuffer3D::kNone) {
      Error("FWGeoTopNodeGLScene::OpenComposite", "expected top level composite to not require extra buffer sections");
   }

   // If composite was created it is of interest - we want the rest of the
   // child components
   if (fComposite) {
      return kTRUE;
   } else {
      return kFALSE;
   }
}
FWGeoTopNodeGLScene& FWGeoTopNodeGLScene::operator= ( const FWGeoTopNodeGLScene ) [private]
Bool_t FWGeoTopNodeGLScene::ResolveSelectRecord ( TGLSelectRecord &  rec,
Int_t  curIdx 
) [virtual]

Definition at line 66 of file FWGeoTopNodeScene.cc.

References fTopNodeJebo.

{
   // Process selection record rec.
   // 'curIdx' is the item position where the scene should start
   // its processing.
   // Return TRUE if an object has been identified or FALSE otherwise.
   // The scene-info member of the record is already set by the caller.  

   if (curIdx >= rec.GetN())
      return kFALSE;

   TGLPhysicalShape* pshp = FindPhysical(rec.GetItem(curIdx));

   /*
   printf("FWGeoTopNodeGLScene::ResolveSelectRecord pshp=%p, lshp=%p, obj=%p, shpcls=%s\n",
          (void*)pshp,(void*) pshp->GetLogical(),(void*) pshp->GetLogical()->GetExternal(),
          ((TGeoVolume*)pshp->GetLogical()->GetExternal())->GetShape()->ClassName());
   */
   if (pshp)
   {
      rec.SetTransparent(pshp->IsTransparent());
      rec.SetPhysShape(pshp);
      rec.SetLogShape(FindLogical(fTopNodeJebo));
      rec.SetObject(fTopNodeJebo);
      rec.SetSpecific(0);
      return kTRUE;
   }
   return kFALSE;
}
void FWGeoTopNodeGLScene::SetPad ( TVirtualPad *  p) [inline]

Definition at line 24 of file FWGeoTopNodeScene.h.

References AlCaHLTBitMon_ParallelJobs::p.

{ fPad = p; }

Member Data Documentation