Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************************************** 25 // 26 // 27 // Frederick Jones TRIUMF 30 NOV 2017 28 29 // this : 30 #include "G4OpenInventorQt.hh" 31 32 #include "G4SoQt.hh" 33 #include "G4OpenInventorSceneHandler.hh" 34 #include "G4OpenInventorQtViewer.hh" 35 36 #ifndef G4GMAKE 37 #include "moc_G4OpenInventorQt.cpp" 38 #endif 39 40 #define G4warn G4cout 41 42 G4OpenInventorQt::G4OpenInventorQt() 43 : G4OpenInventor("OpenInventorQt", "OIQt", G4VGraphicsSystem::threeD), 44 fInited(false) 45 { 46 } 47 48 void G4OpenInventorQt::Initialize() 49 { 50 if(fInited) return; //Done 51 52 // FWJ DEBUG 53 // G4cout << "G4OpenInventorQt: SETINTERACTORMANAGER " << G4SoQt::getInstance() 54 // << G4endl; 55 56 SetInteractorManager(G4SoQt::getInstance()); 57 58 // FWJ DEBUG 59 // G4cout << "G4OpenInventorQt: GETINTERACTORMANAGER " << 60 // GetInteractorManager() << G4endl; 61 62 // FWJ for now, create an independent main window 63 // NOW should be done in G4SoQt [public G4VInteractorManager] 64 // QWidget* mainWin = SoQt::init("Geant4"); 65 66 // In parent G4OpenInventor 67 InitNodes(); 68 69 fInited = true; 70 } 71 72 G4OpenInventorQt::~G4OpenInventorQt() 73 { 74 } 75 76 G4VViewer* G4OpenInventorQt::CreateViewer(G4VSceneHandler& scene, 77 const G4String& name) 78 { 79 auto pView = new G4OpenInventorQtViewer(static_cast<G4OpenInventorSceneHandler&>(scene), name); 80 81 if (pView) { 82 if (pView->GetViewId() < 0) { 83 G4warn << 84 "G4OpenInventorQt::CreateViewer: ERROR flagged by negative" 85 " view id in G4OpenInventorQtViewer creation." 86 "\n Destroying view and returning null pointer." 87 << G4endl; 88 delete pView; 89 pView = 0; 90 } 91 } 92 if (!pView) { 93 G4warn << 94 "G4OpenInventorQt::CreateViewer: ERROR: null pointer on new G4OpenInventorQtViewer." 95 << G4endl; 96 } 97 98 Initialize(); 99 100 return pView; 101 } 102