// this : #include // Inventor : #include #include #include // Geant4 : #include #include // GLab : #include SO_NODE_SOURCE(SoG4RunManager) ////////////////////////////////////////////////////////////////////////////// void SoG4RunManager::initClass( ) ////////////////////////////////////////////////////////////////////////////// //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// { SO_NODE_INIT_CLASS(SoG4RunManager,SoNode,"Node"); } ////////////////////////////////////////////////////////////////////////////// SoG4RunManager::SoG4RunManager( ) :fRunManager(0) ////////////////////////////////////////////////////////////////////////////// //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// { SO_NODE_CONSTRUCTOR(SoG4RunManager); SO_NODE_ADD_FIELD(numberOfEvents,(1)); } ////////////////////////////////////////////////////////////////////////////// SoG4RunManager::SoG4RunManager( G4RunManager* aRunManager ) :fRunManager(aRunManager) ////////////////////////////////////////////////////////////////////////////// //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// { SO_NODE_CONSTRUCTOR(SoG4RunManager); SO_NODE_ADD_FIELD(numberOfEvents,(1)); } ////////////////////////////////////////////////////////////////////////////// SoG4RunManager::~SoG4RunManager( ) ////////////////////////////////////////////////////////////////////////////// //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// { } ////////////////////////////////////////////////////////////////////////////// void SoG4RunManager::GLRender ( SoGLRenderAction* aAction ) ////////////////////////////////////////////////////////////////////////////// //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// { if(!fRunManager) return; G4Lab::SteppingAction* g4LabSteppingAction = 0; G4UserSteppingAction* steppingAction = (G4UserSteppingAction*)fRunManager->GetUserSteppingAction(); if(steppingAction) { g4LabSteppingAction = dynamic_cast(steppingAction); } if(g4LabSteppingAction) g4LabSteppingAction->enable(); // The G4Lab::SteppingAction::UserSteppingAction, that draw directly // with OpenGL will be perform here. //SoDebugError::postInfo("SoG4RunManager::GLRender","beamOn."); SoMaterialBundle mb(aAction); mb.sendFirst(); fRunManager->BeamOn(numberOfEvents.getValue()); if(g4LabSteppingAction) g4LabSteppingAction->disable(); }