Changeset 906 for trunk/source/visualization/OpenGL/src
- Timestamp:
- Jan 15, 2009, 5:41:07 PM (15 years ago)
- Location:
- trunk/source/visualization/OpenGL/src
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/visualization/OpenGL/src/G4OpenGLImmediateQtViewer.cc
r897 r906 25 25 // 26 26 // 27 // $Id: G4OpenGLImmediateQtViewer.cc,v 1. 7 2008/11/06 13:43:44lgarnier Exp $27 // $Id: G4OpenGLImmediateQtViewer.cc,v 1.8 2009/01/13 09:47:05 lgarnier Exp $ 28 28 // GEANT4 tag $Name: $ 29 29 // … … 178 178 ,int aHeight) 179 179 { 180 G4resizeGL(aWidth,aHeight); 180 fWinSize_x = aWidth; 181 fWinSize_y = aHeight; 182 hasToRepaint = true; 181 183 } 182 184 … … 200 202 printf("G4OpenGLImmediateQtViewer::paintGL VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV ready %d\n",readyToPaint); 201 203 #endif 202 fWinSize_x = (unsigned int) width();203 fWinSize_y = (unsigned int) height();204 205 setupViewport(width(),height());204 // fWinSize_x = (unsigned int) width(); 205 // fWinSize_y = (unsigned int) height(); 206 207 // setupViewport(width(),height()); 206 208 207 209 SetView(); -
trunk/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc
r897 r906 25 25 // 26 26 // 27 // $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.1 6 2006/07/03 16:38:13 allisonExp $28 // GEANT4 tag $Name: HEAD$27 // $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.17 2009/01/13 09:47:05 lgarnier Exp $ 28 // GEANT4 tag $Name: $ 29 29 // 30 30 // -
trunk/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc
r897 r906 25 25 // 26 26 // 27 // $Id: G4OpenGLImmediateXViewer.cc,v 1.1 6 2006/07/03 16:38:13 allisonExp $28 // GEANT4 tag $Name: HEAD$27 // $Id: G4OpenGLImmediateXViewer.cc,v 1.17 2009/01/13 09:47:05 lgarnier Exp $ 28 // GEANT4 tag $Name: $ 29 29 // 30 30 // … … 86 86 //Make sure current viewer is attached and clean... 87 87 glXMakeCurrent (dpy, win, cx); 88 glViewport (0, 0, fWinSize_x, fWinSize_y);88 // glViewport (0, 0, fWinSize_x, fWinSize_y); 89 89 90 90 if(style!=G4ViewParameters::hlr && -
trunk/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc
r898 r906 25 25 // 26 26 // 27 // $Id: G4OpenGLQtViewer.cc,v 1.3 0 2008/11/06 13:43:44lgarnier Exp $27 // $Id: G4OpenGLQtViewer.cc,v 1.31 2009/01/13 09:47:05 lgarnier Exp $ 28 28 // GEANT4 tag $Name: $ 29 29 // … … 89 89 G4OpenGLViewer::SetView (); 90 90 } 91 92 /**93 * Set the viewport of the scene94 */95 void G4OpenGLQtViewer::setupViewport(int aWidth, int aHeight)96 {97 int side = aWidth;98 if (aHeight < aWidth) side = aHeight;99 glViewport((aWidth - side) / 2, (aHeight - side) / 2, side, side);100 101 glMatrixMode(GL_PROJECTION);102 glLoadIdentity();103 glOrtho(-0.5, +0.5, +0.5, -0.5, 4.0, 15.0);104 glMatrixMode(GL_MODELVIEW);105 }106 107 108 91 109 92 … … 788 771 789 772 790 void G4OpenGLQtViewer::G4resizeGL(791 int aWidth792 ,int aHeight)793 {794 setupViewport(aWidth,aHeight);795 796 if (((fWinSize_x != (unsigned int)aWidth)) || (fWinSize_y != (unsigned int) aHeight)) {797 hasToRepaint =true;798 }799 fWinSize_x = (unsigned int) aWidth;800 fWinSize_y = (unsigned int) aHeight;801 }802 803 804 773 void G4OpenGLQtViewer::G4manageContextMenuEvent(QContextMenuEvent *e) 805 774 { -
trunk/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc
r897 r906 25 25 // 26 26 // 27 // $Id: G4OpenGLStoredQtViewer.cc,v 1.2 0 2008/11/06 13:43:44lgarnier Exp $27 // $Id: G4OpenGLStoredQtViewer.cc,v 1.21 2009/01/13 09:47:05 lgarnier Exp $ 28 28 // GEANT4 tag $Name: $ 29 29 // … … 126 126 127 127 #ifdef G4DEBUG 128 printf("G4OpenGLStoredQtViewer::ComputeView %d %d VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV V\n",fWinSize_x, fWinSize_y);128 printf("G4OpenGLStoredQtViewer::ComputeView %d %d VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\n",fWinSize_x, fWinSize_y); 129 129 #endif 130 130 makeCurrent(); … … 208 208 ,int aHeight) 209 209 { 210 G4resizeGL(aWidth,aHeight); 210 // Set new size, it will be update when next Repaint()->SetView() called 211 fWinSize_x = aWidth; 212 fWinSize_y = aHeight; 213 hasToRepaint = true; 211 214 } 212 215 … … 232 235 printf("G4OpenGLStoredQtViewer::paintGL VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV ready %d\n",readyToPaint); 233 236 #endif 234 fWinSize_x = (unsigned int) width();235 fWinSize_y = (unsigned int) height();236 237 setupViewport(width(),height());237 // fWinSize_x = (unsigned int) width(); 238 // fWinSize_y = (unsigned int) height(); 239 240 // setupViewport(width(),height()); 238 241 239 242 SetView(); -
trunk/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc
r897 r906 25 25 // 26 26 // 27 // $Id: G4OpenGLStoredWin32Viewer.cc,v 1. 19 2007/04/04 16:50:27 allisonExp $28 // GEANT4 tag $Name: HEAD$27 // $Id: G4OpenGLStoredWin32Viewer.cc,v 1.20 2009/01/13 09:47:05 lgarnier Exp $ 28 // GEANT4 tag $Name: $ 29 29 // 30 30 // -
trunk/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc
r897 r906 25 25 // 26 26 // 27 // $Id: G4OpenGLStoredXViewer.cc,v 1.2 2 2007/04/04 16:50:27 allisonExp $28 // GEANT4 tag $Name: HEAD$27 // $Id: G4OpenGLStoredXViewer.cc,v 1.23 2009/01/13 09:47:05 lgarnier Exp $ 28 // GEANT4 tag $Name: $ 29 29 // 30 30 // … … 79 79 //Make sure current viewer is attached and clean... 80 80 glXMakeCurrent (dpy, win, cx); 81 glViewport (0, 0, fWinSize_x, fWinSize_y);81 // glViewport (0, 0, fWinSize_x, fWinSize_y); 82 82 83 83 G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle(); -
trunk/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc
r897 r906 25 25 // 26 26 // 27 // $Id: G4OpenGLStoredXmViewer.cc,v 1.2 2 2007/04/04 16:50:27 allisonExp $28 // GEANT4 tag $Name: HEAD$27 // $Id: G4OpenGLStoredXmViewer.cc,v 1.23 2009/01/13 09:47:05 lgarnier Exp $ 28 // GEANT4 tag $Name: $ 29 29 // 30 30 // … … 85 85 //Make sure current viewer is attached and clean... 86 86 glXMakeCurrent (dpy, win, cx); 87 glViewport (0, 0, fWinSize_x, fWinSize_y);87 // glViewport (0, 0, fWinSize_x, fWinSize_y); 88 88 89 89 G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle(); -
trunk/source/visualization/OpenGL/src/G4OpenGLViewer.cc
r897 r906 25 25 // 26 26 // 27 // $Id: G4OpenGLViewer.cc,v 1.4 1 2008/10/24 13:49:19lgarnier Exp $27 // $Id: G4OpenGLViewer.cc,v 1.43 2009/01/13 09:47:05 lgarnier Exp $ 28 28 // GEANT4 tag $Name: $ 29 29 // … … 149 149 } 150 150 151 152 /** 153 * Set the viewport of the scene 154 */ 155 void G4OpenGLViewer::ResizeGLView() 156 { 157 #ifdef G4DEBUG 158 printf("G4OpenGLQtViewer::setupViewport\n"); 159 #endif 160 161 int side = fWinSize_x; 162 if (fWinSize_y < fWinSize_x) side = fWinSize_y; 163 glViewport((fWinSize_x - side) / 2, (fWinSize_y - side) / 2, side, side); 164 } 165 166 151 167 void G4OpenGLViewer::SetView () { 152 168 169 #ifdef G4DEBUG 170 printf("G4OpenGLViewer::SetView ------------\n"); 171 #endif 153 172 if (!fSceneHandler.GetScene()) { 154 173 G4cerr << "G4OpenGLStoredQtViewer: Creating a Viewer without a scene is not allowed. \nPlease use /vis/scene/create before /vis/open/.... " … … 183 202 const G4Point3D cameraPosition = 184 203 targetPoint + cameraDistance * fVP.GetViewpointDirection().unit(); 185 const GLdouble pnear 186 const GLdouble pfar 204 const GLdouble pnear = fVP.GetNearDistance (cameraDistance, radius); 205 const GLdouble pfar = fVP.GetFarDistance (cameraDistance, pnear, radius); 187 206 const GLdouble right = fVP.GetFrontHalfHeight (pnear, radius); 188 207 const GLdouble left = -right; … … 190 209 const GLdouble top = right; 191 210 211 // FIXME 212 // const G4int& width = fVP.GetWindowSizeHintX(); 213 // const G4int& height = fVP.GetWindowSizeHintY(); 214 // G4int side = width; 215 // if (height < width) side = height; 216 // glViewport((width - side) / 2, (height - side) / 2, side, side); 217 ResizeGLView(); 218 192 219 glMatrixMode (GL_PROJECTION); // set up Frustum. 193 220 glLoadIdentity(); 194 221 195 const G4Vector3D scale = fVP.GetScaleFactor();196 glScaled(scale .x(),scale.y(),scale.z());222 const G4Vector3D scaleFactor = fVP.GetScaleFactor(); 223 glScaled(scaleFactor.x(),scaleFactor.y(),scaleFactor.z()); 197 224 198 225 if (fVP.GetFieldHalfAngle() == 0.) { 199 226 glOrtho (left, right, bottom, top, pnear, pfar); 227 #ifdef G4DEBUG 228 printf("G4OpenGLViewer::SetView ------------rescale\n"); 229 #endif 200 230 } 201 231 else { 202 232 glFrustum (left, right, bottom, top, pnear, pfar); 203 } 204 233 #ifdef G4DEBUG 234 printf("G4OpenGLViewer::SetView ------------Frustum\n"); 235 #endif 236 } 237 238 205 239 glMatrixMode (GL_MODELVIEW); // apply further transformations to scene. 206 240 glLoadIdentity(); … … 219 253 gltarget.x(), gltarget.y(), gltarget.z(), // Target point. 220 254 upVector.x(), upVector.y(), upVector.z()); // Up vector. 221 255 222 256 // Light position is "true" light direction, so must come after gluLookAt. 223 257 glLightfv (GL_LIGHT0, GL_POSITION, lightPosition); -
trunk/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc
r898 r906 25 25 // 26 26 // 27 // $Id: G4OpenGLWin32Viewer.cc,v 1.1 7 2006/06/29 21:19:36 gunter Exp $28 // GEANT4 tag $Name: HEAD$27 // $Id: G4OpenGLWin32Viewer.cc,v 1.18 2009/01/13 09:47:05 lgarnier Exp $ 28 // GEANT4 tag $Name: $ 29 29 // 30 30 // -
trunk/source/visualization/OpenGL/src/G4OpenGLXViewer.cc
r898 r906 25 25 // 26 26 // 27 // $Id: G4OpenGLXViewer.cc,v 1.4 2 2007/05/25 10:47:17 allisonExp $28 // GEANT4 tag $Name: HEAD$27 // $Id: G4OpenGLXViewer.cc,v 1.43 2009/01/13 09:47:05 lgarnier Exp $ 28 // GEANT4 tag $Name: $ 29 29 // 30 30 // … … 82 82 extern "C" { 83 83 static Bool G4OpenGLXViewerWaitForNotify (Display*, XEvent* e, char* arg) { 84 #ifdef G4DEBUG 85 printf("G4OpenGLXViewerWaitForNotify\n"); 86 #endif 84 87 return (e->type == MapNotify) && (e->xmap.window == (Window) arg); 85 88 } … … 441 444 cx); 442 445 443 glViewport (0, 0, fWinSize_x, fWinSize_y);446 // glViewport (0, 0, fWinSize_x, fWinSize_y); 444 447 445 448 ClearView (); -
trunk/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc
r898 r906 25 25 // 26 26 // 27 // $Id: G4OpenGLXmViewer.cc,v 1.2 4 2007/08/21 14:05:51 allisonExp $28 // GEANT4 tag $Name: HEAD$27 // $Id: G4OpenGLXmViewer.cc,v 1.25 2009/01/13 09:47:05 lgarnier Exp $ 28 // GEANT4 tag $Name: $ 29 29 // 30 30 // … … 580 580 NULL); 581 581 582 XtAddCallback (glxarea,583 XmNexposeCallback,584 expose_callback,585 this);586 587 XtAddCallback (glxarea,588 XmNresizeCallback,589 resize_callback,590 this);591 582 592 583 XmMainWindowSetAreas (main_win, // main widget, children are specified … … 606 597 607 598 glXMakeCurrent (dpy, win, cx); 599 600 // This should be add AFTER glXMakeCurrent done because it will fire a resizeCallback 601 XtAddCallback (glxarea, 602 XmNresizeCallback, 603 resize_callback, 604 this); 605 606 XtAddCallback (glxarea, 607 XmNexposeCallback, 608 expose_callback, 609 this); 608 610 609 611 } -
trunk/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc
r897 r906 25 25 // 26 26 // 27 // $Id: G4OpenGLXmWindowHandlingCallbacks.cc,v 1. 6 2006/06/29 21:20:20 gunter Exp $28 // GEANT4 tag $Name: HEAD$27 // $Id: G4OpenGLXmWindowHandlingCallbacks.cc,v 1.7 2009/01/13 09:47:05 lgarnier Exp $ 28 // GEANT4 tag $Name: $ 29 29 // 30 30 // … … 40 40 void G4OpenGLXmViewer::resize_callback (Widget w, 41 41 XtPointer clientData, 42 XtPointer )42 XtPointer x) 43 43 { 44 Dimension width, height; 45 G4OpenGLXmViewer* pView = (G4OpenGLXmViewer*) clientData; 46 47 XtVaGetValues (w, 48 XmNwidth, &width, 49 XmNheight, &height, 50 NULL); 51 52 pView->fWinSize_x = (G4int) width; 53 pView->fWinSize_y = (G4int) height; 44 expose_callback(w,clientData,x); 54 45 } 55 46 … … 72 63 73 64 glXMakeCurrent (pView->dpy, XtWindow(pView->glxarea), pView->cx); 74 glViewport (0, 0, width, height);75 65 66 pView->SetView (); 76 67 pView->ClearView (); 77 68 pView->DrawView ();
Note: See TracChangeset
for help on using the changeset viewer.