G4OpenGLImmediateWt.cc

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // $Id$
00028 //
00029 // 
00030 // OpenGLImmediateWt graphics system factory.
00031 
00032 #ifdef G4VIS_BUILD_OPENGLWT_DRIVER
00033 
00034 #include "G4VisFeaturesOfOpenGL.hh"
00035 #include "G4VSceneHandler.hh"
00036 #include "G4OpenGLSceneHandler.hh"
00037 #include "G4OpenGLViewer.hh"
00038 #include "G4OpenGLImmediateWt.hh"
00039 #include "G4OpenGLImmediateWtViewer.hh"
00040 #include "G4OpenGLViewerMessenger.hh"
00041 #include "G4OpenGLImmediateSceneHandler.hh"
00042 #include "G4UIWt.hh"
00043 #include "G4UImanager.hh"
00044 
00045 G4OpenGLImmediateWt::G4OpenGLImmediateWt ():
00046   G4VGraphicsSystem ("OpenGLImmediateWt",
00047                      "OGLIWt",
00048                      G4VisFeaturesOfOpenGLIWt (),
00049                      G4VGraphicsSystem::threeD)
00050 {
00051   G4OpenGLViewerMessenger::GetInstance();
00052 }
00053 
00054 G4VSceneHandler* G4OpenGLImmediateWt::CreateSceneHandler
00055 (const G4String& name) {
00056   G4VSceneHandler* pScene = new G4OpenGLImmediateSceneHandler (*this, name);
00057   return    pScene;
00058 }
00059 
00060 G4VViewer* G4OpenGLImmediateWt::CreateViewer
00061 (G4VSceneHandler& scene, const G4String& name) {
00062 #ifdef G4DEBUG_VIS_OGL
00063   printf("G4OpenGLImmediateWt::CreateViewer \n");
00064 #endif
00065   G4UImanager* UI = G4UImanager::GetUIpointer();
00066 #ifdef G4DEBUG_VIS_OGL
00067   printf("G4OpenGLImmediateWt::CreateViewer after Get Pointer\n");
00068 #endif
00069   if (UI == NULL) return NULL;
00070 
00071   if (! static_cast<G4UIWt*> (UI->GetG4UIWindow())) return NULL;
00072 
00073   G4UIWt * uiWt = static_cast<G4UIWt*> (UI->GetG4UIWindow());
00074   
00075   G4VViewer* pView = NULL;
00076   if ( uiWt) {
00077 #ifdef G4DEBUG_VIS_OGL
00078     printf("G4OpenGLImmediateWt::CreateViewer uiWt\n");
00079 #endif
00080     uiWt->AddTabWidget(new Wt::WLabel("Test..."),"my name",50,50);
00081     //  uiWt->AddTabWidget(fWindow,name,getWinWidth(),getWinHeight());
00082 //     pView = new G4OpenGLImmediateWtViewer
00083 //       ((G4OpenGLImmediateSceneHandler&) scene, uiWt->getLastTabContainerInsert(),name);
00084     /* pView =*/ new G4OpenGLImmediateWtViewer
00085       (name);
00086     //         new Wt::WLabel("Test...",uiWt->getLastTabContainerInsert());
00087 #ifdef G4DEBUG_VIS_OGL
00088     printf("G4OpenGLImmediateWt::CreateViewer lastInsert :%d\n",uiWt->getLastTabContainerInsert());
00089 #endif
00090     
00091     if (pView) {
00092       if (pView -> GetViewId () < 0) {
00093         G4cerr << "G4OpenGLImmediateWt::CreateViewer: error flagged by negative"
00094           " view id in G4OpenGLImmediateWtViewer creation."
00095           "\n Destroying view and returning null pointer."
00096                << G4endl;
00097         delete pView;
00098         pView = 0;
00099       }
00100     }
00101     else {
00102       G4cerr << "G4OpenGLImmediateWt::CreateViewer: null pointer on"
00103         " new G4OpenGLImmediateWtViewer." << G4endl;
00104     }
00105   }
00106 #ifdef G4DEBUG_VIS_OGL
00107   printf("G4OpenGLImmediateWt::CreateViewer END \n");
00108 #endif
00109    return pView;
00110 }
00111 
00112 #endif

Generated on Mon May 27 17:49:09 2013 for Geant4 by  doxygen 1.4.7