Changeset 539
- Timestamp:
- Jul 5, 2007, 5:54:48 PM (17 years ago)
- Location:
- trunk/geant4/visualization/OpenGL
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/geant4/visualization/OpenGL/GNUmakefile
r529 r539 28 28 CPPFLAGS += -I$(G4BASE)/intercoms/include 29 29 CPPFLAGS += -I$(G4BASE)/interfaces/common/include 30 CPPFLAGS += -I$(G4BASE)/interfaces/basic/include 30 31 CPPFLAGS += -I$(G4BASE)/tracking/include 31 32 CPPFLAGS += -I$(G4BASE)/digits_hits/hits/include -
trunk/geant4/visualization/OpenGL/include/G4OpenGLImmediateQtViewer.hh
r533 r539 40 40 #include "G4OpenGLImmediateViewer.hh" 41 41 #include "G4OpenGLQtViewer.hh" 42 #include <QGLWidget> 42 43 43 44 #include "globals.hh" … … 46 47 47 48 class G4OpenGLImmediateQtViewer: 48 public G4OpenGLQtViewer, public G4OpenGLImmediateViewer{49 public G4OpenGLQtViewer, public G4OpenGLImmediateViewer, public QGLWidget { 49 50 50 51 public: … … 54 55 void DrawView (); 55 56 void FinishView (); 57 void resizeGL(int width,int height); 58 void paintGL(); 56 59 }; 57 60 -
trunk/geant4/visualization/OpenGL/include/G4OpenGLQtViewer.hh
r536 r539 59 59 void CreateGLQtContext (); 60 60 virtual void CreateMainWindow (); 61 void CreateMainWindow (QGLWidget*); 61 62 protected: 62 63 G4int WinSize_x; -
trunk/geant4/visualization/OpenGL/src/G4OpenGLImmediateQt.cc
r538 r539 28 28 // GEANT4 tag $Name: geant4-08-02-patch-01 $ 29 29 // 30 // 30 // 31 31 // OpenGLImmediateQt graphics system factory. 32 32 … … 42 42 43 43 G4OpenGLImmediateQt::G4OpenGLImmediateQt (): 44 G4VGraphicsSystem ("OpenGLImmediateQt", 45 "OGLIQT", 46 G4VisFeaturesOfOpenGLIQt (), 47 G4VGraphicsSystem::threeD) { 48 G4OpenGLViewerMessenger::GetInstance(); 44 G4VGraphicsSystem ("OpenGLImmediateQt", 45 "OGLIQT", 46 G4VisFeaturesOfOpenGLIQt (), 47 G4VGraphicsSystem::threeD) 48 { 49 G4OpenGLViewerMessenger::GetInstance(); 49 50 } 50 51 51 52 G4VSceneHandler* G4OpenGLImmediateQt::CreateSceneHandler 52 53 (const G4String& name) { 53 54 54 G4VSceneHandler* pScene = new G4OpenGLImmediateSceneHandler (*this, name); 55 return pScene; 55 56 } 56 57 57 58 G4VViewer* G4OpenGLImmediateQt::CreateViewer 58 59 (G4VSceneHandler& scene, const G4String& name) { 59 G4VViewer* pView = 60 new G4OpenGLImmediateQtViewer 61 ((G4OpenGLImmediateSceneHandler&) scene, name); 62 if (pView) { 63 if (pView -> GetViewId () < 0) { 64 G4cerr << "G4OpenGLImmediateQt::CreateViewer: error flagged by negative" 65 " view id in G4OpenGLImmediateQtViewer creation." 66 "\n Destroying view and returning null pointer." 67 << G4endl; 68 delete pView; 69 pView = 0; 70 } 71 } else { 72 G4cerr << "G4OpenGLImmediateQt::CreateViewer: null pointer on" 73 " new G4OpenGLImmediateQtViewer." << G4endl; 60 G4VViewer* pView = 61 new G4OpenGLImmediateQtViewer 62 ((G4OpenGLImmediateSceneHandler&) scene, name); 63 if (pView) { 64 if (pView -> GetViewId () < 0) { 65 G4cerr << "G4OpenGLImmediateQt::CreateViewer: error flagged by negative" 66 " view id in G4OpenGLImmediateQtViewer creation." 67 "\n Destroying view and returning null pointer." 68 << G4endl; 69 delete pView; 70 pView = 0; 74 71 } 75 return pView; 72 } 73 else { 74 G4cerr << "G4OpenGLImmediateQt::CreateViewer: null pointer on" 75 " new G4OpenGLImmediateQtViewer." << G4endl; 76 } 77 return pView; 76 78 } 77 79 -
trunk/geant4/visualization/OpenGL/src/G4OpenGLImmediateQtViewer.cc
r536 r539 28 28 // GEANT4 tag $Name: geant4-08-02-patch-01 $ 29 29 // 30 // 30 // 31 31 // Class G4OpenGLImmediateQtViewer : a class derived from G4OpenGLQtViewer and 32 32 // G4OpenGLImmediateViewer. … … 53 53 // ensure a suitable window was found 54 54 55 printf("G4OpenGLImmediateQtViewer::Initialise () 1\n"); 55 56 CreateGLQtContext (); 56 CreateMainWindow ( );57 CreateMainWindow (this); 57 58 CreateFontLists (); 58 59 … … 71 72 void G4OpenGLImmediateQtViewer::DrawView () { 72 73 74 printf("G4OpenGLImmediateQtViewer::DrawView %d %d\n",WinSize_x, WinSize_y); 73 75 // If a double buffer context has been forced upon us, ignore the 74 76 // back buffer for this OpenGLImmediate view. … … 100 102 } 101 103 104 102 105 ////////////////////////////////////////////////////////////////////////////// 103 106 void G4OpenGLImmediateQtViewer::FinishView ( … … 106 109 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// 107 110 { 111 printf("G4OpenGLImmediateQtViewer::FinishView \n"); 108 112 // if(!fHDC) return; 109 113 … … 118 122 } 119 123 124 125 void G4OpenGLImmediateQtViewer::resizeGL( 126 int width 127 ,int height) 128 { 129 printf("G4OpenGLImmediateQtViewer::resizeGL \n"); 130 int side = qMin(width, height); 131 glViewport((width - side) / 2, (height - side) / 2, side, side); 132 glMatrixMode(GL_PROJECTION); 133 glLoadIdentity(); 134 glOrtho(-0.5, +0.5, +0.5, -0.5, 4.0, 15.0); 135 glMatrixMode(GL_MODELVIEW); 136 } 137 138 void G4OpenGLImmediateQtViewer::paintGL() 139 { 140 printf("G4OpenGLImmediateQtViewer::paintGL \n"); 141 // FIXME 142 // DrawView(); 143 // glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 144 // glLoadIdentity(); 145 // glTranslated(0.0, 0.0, -10.0); 146 } 120 147 #endif -
trunk/geant4/visualization/OpenGL/src/G4OpenGLQtViewer.cc
r538 r539 45 45 #include "G4Normal3D.hh" 46 46 47 #include "G4Qt.hh" 48 #include "G4UIManager.hh" 49 #include <QtGui/qboxlayout.h> 50 #include <QtGui/qdialog.h> 51 #include <QtGui/qpushbutton.h> 47 52 48 53 ////////////////////////////////////////////////////////////////////////////// … … 131 136 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// 132 137 { 133 printf("G4OpenGLQtViewer::CreateMainWindow \n");134 138 135 139 if(fWindow) return; //Done. 140 printf("G4OpenGLQtViewer::CreateMainWindow 2\n"); 141 142 // launch Qt if not 143 G4Qt* interactorManager = G4Qt::getInstance (); 144 // G4UImanager* UI = G4UImanager::GetUIpointer(); 145 printf("G4OpenGLQtViewer::CreateMainWindow 3\n"); 146 147 QPushButton hello("Hello world!"); 148 hello.resize(100, 30); 149 hello.show(); 136 150 137 151 fWindow = new QGLWidget() ; 138 152 fWindow->makeCurrent(); 153 154 // create window 155 QDialog* GLWindow ; 156 if (qApp) { 157 GLWindow = new QDialog();//qApp->mainWidget()); 158 } else { 159 GLWindow = new QDialog(); 160 } 161 162 QHBoxLayout *mainLayout = new QHBoxLayout; 163 mainLayout->addWidget(fWindow); 164 GLWindow->setLayout(mainLayout); 165 GLWindow->setWindowTitle("QGl Viewer"); 166 GLWindow->resize(100, 30); 167 GLWindow->show(); 168 139 169 140 170 // // Bill Gates stuff... … … 157 187 // } 158 188 159 //WinSize_x = 400;160 //WinSize_y = 400;161 //if (WinSize_x < fVP.GetWindowSizeHintX ())162 //WinSize_x = fVP.GetWindowSizeHintX ();163 //if (WinSize_y < fVP.GetWindowSizeHintY ())164 //WinSize_y = fVP.GetWindowSizeHintY ();189 WinSize_x = 400; 190 WinSize_y = 400; 191 if (WinSize_x < fVP.GetWindowSizeHintX ()) 192 WinSize_x = fVP.GetWindowSizeHintX (); 193 if (WinSize_y < fVP.GetWindowSizeHintY ()) 194 WinSize_y = fVP.GetWindowSizeHintY (); 165 195 166 196 // fWindow = ::CreateWindow(className,fName.c_str(), … … 193 223 194 224 ////////////////////////////////////////////////////////////////////////////// 225 void G4OpenGLQtViewer::CreateMainWindow ( 226 QGLWidget* glWidget 227 ) 228 ////////////////////////////////////////////////////////////////////////////// 229 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// 230 { 231 232 if(fWindow) return; //Done. 233 printf("G4OpenGLQtViewer::CreateMainWindow glWidget\n"); 234 235 // launch Qt if not 236 G4Qt* interactorManager = G4Qt::getInstance (); 237 // G4UImanager* UI = G4UImanager::GetUIpointer(); 238 printf("G4OpenGLQtViewer::CreateMainWindow 3\n"); 239 240 fWindow = glWidget ; 241 fWindow->makeCurrent(); 242 243 // create window 244 QDialog* GLWindow ; 245 if (qApp) { 246 GLWindow = new QDialog();//qApp->mainWidget()); 247 } else { 248 GLWindow = new QDialog(); 249 } 250 251 QHBoxLayout *mainLayout = new QHBoxLayout; 252 mainLayout->addWidget(fWindow); 253 GLWindow->setLayout(mainLayout); 254 GLWindow->setWindowTitle("QGl Viewer"); 255 GLWindow->resize(300, 300); 256 GLWindow->show(); 257 258 259 // // Bill Gates stuff... 260 // static const char className[] = "G4OpenGLQt"; 261 // static bool done = false; 262 // if(done==false) { 263 // WNDCLASS wc; 264 // wc.style = CS_HREDRAW | CS_VREDRAW; 265 // wc.lpfnWndProc = (WNDPROC)WindowProc; 266 // wc.cbClsExtra = 0; 267 // wc.cbWndExtra = 0; 268 // wc.hInstance = ::GetModuleHandle(NULL); 269 // wc.hIcon = LoadIcon (NULL, IDI_APPLICATION); 270 // wc.hCursor = LoadCursor(NULL,IDC_CROSS); 271 // wc.hbrBackground = NULL; 272 // wc.lpszMenuName = className; 273 // wc.lpszClassName = className; 274 // ::RegisterClass(&wc); 275 // done = true; 276 // } 277 278 WinSize_x = 400; 279 WinSize_y = 400; 280 if (WinSize_x < fVP.GetWindowSizeHintX ()) 281 WinSize_x = fVP.GetWindowSizeHintX (); 282 if (WinSize_y < fVP.GetWindowSizeHintY ()) 283 WinSize_y = fVP.GetWindowSizeHintY (); 284 285 // fWindow = ::CreateWindow(className,fName.c_str(), 286 // WS_OVERLAPPEDWINDOW, 287 // //WS_CHILD | WS_VISIBLE, 288 // 0,0, 289 // WinSize_x,WinSize_y, 290 // NULL, NULL, 291 // ::GetModuleHandle(NULL), 292 // NULL); 293 // if(!fWindow) return; 294 295 // ::SetWindowLong(fWindow,GWL_USERDATA,LONG(this)); 296 297 // // initialize OpenGL rendering : 298 // fHDC = ::GetDC(fWindow); 299 // if( fHDC && (SetWindowPixelFormat(fHDC)==TRUE) ) { 300 // fHGLRC = ::wglCreateContext(fHDC); 301 // } 302 303 // if(fHDC && fHGLRC) { 304 // ::wglMakeCurrent(fHDC,fHGLRC); 305 // } 306 307 // ::SetForegroundWindow(fWindow); 308 // ::ShowWindow(fWindow,SW_SHOWDEFAULT); 309 // ::UpdateWindow(fWindow); 310 // ::DrawMenuBar(fWindow); 311 } 312 313 ////////////////////////////////////////////////////////////////////////////// 195 314 G4OpenGLQtViewer::G4OpenGLQtViewer ( 196 315 G4OpenGLSceneHandler& scene … … 198 317 :G4VViewer (scene, -1) 199 318 ,G4OpenGLViewer (scene) 200 //,fWindow(0)319 ,fWindow(0) 201 320 //,fHDC(0) 202 321 //,fHGLRC(0)
Note: See TracChangeset
for help on using the changeset viewer.