Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // Guy Barrand 13th April 2023 27 28 #include "G4ToolsSGQtZB.hh" 29 30 #include "G4ToolsSGQtZBViewer.hh" 31 32 #include "G4Qt.hh" 33 34 #include "G4UIbatch.hh" 35 36 G4ToolsSGQtZB::G4ToolsSGQtZB(): 37 parent 38 ("TOOLSSG_QT_ZB", 39 "TSG_QT_ZB", 40 "TOOLSSG_QT_ZB is a graphics driver based on 41 the rendering is done with the g4tools zbuffe 42 parent::threeDInteractive) 43 ,fSGSession(nullptr) 44 {} 45 46 G4ToolsSGQtZB::~G4ToolsSGQtZB() { 47 delete fSGSession; 48 } 49 50 void G4ToolsSGQtZB::Initialise() { 51 if(fSGSession) return; //done. 52 G4Qt* interactorManager = G4Qt::getInstance( 53 QApplication* _qapp = (QApplication*)intera 54 if(!_qapp) { 55 G4cerr << "G4ToolsSGQtZB::Initialise : G4Q 56 return; 57 } 58 fSGSession = new toolx::Qt::session(G4cout,_ 59 if(!fSGSession->is_valid()) { 60 G4cerr << "G4ToolsSGQtZB::Initialise : ses 61 delete fSGSession; 62 fSGSession = nullptr; 63 return; 64 } 65 } 66 67 G4VSceneHandler* G4ToolsSGQtZB::CreateSceneHan 68 G4VSceneHandler* pScene = new G4ToolsSGScene 69 return pScene; 70 } 71 72 G4VViewer* G4ToolsSGQtZB::CreateViewer(G4VScen 73 if(!fSGSession) Initialise(); 74 if(!fSGSession) return nullptr; 75 G4VViewer* pView = new G4ToolsSGQtZBViewer(* 76 if (pView) { 77 if (pView->GetViewId() < 0) { 78 G4cerr << "G4ToolsSGQtZB::CreateViewer:" 79 << " ERROR flagged by negative vi 80 << "\n Destroying view and return 81 delete pView; 82 pView = nullptr; 83 } 84 } 85 if (!pView) { 86 G4cerr << "G4ToolsSGQtZB::CreateViewer: ER 87 return nullptr; 88 } 89 return pView; 90 } 91 92 G4bool G4ToolsSGQtZB::IsUISessionCompatible () 93 { 94 // Qt windows require a Qt session. 95 G4UIsession* baseSession = G4UImanager::GetU 96 if (dynamic_cast<G4UIQt*>(baseSession) != nu 97 return false; 98 } 99