Ignore:
Timestamp:
Jan 15, 2009, 5:41:07 PM (15 years ago)
Author:
garnier
Message:

for aspect radio. Ok for Qt, Xm, but not X. Debug mode

Location:
trunk/source/visualization/OpenGL/src
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/visualization/OpenGL/src/G4OpenGLImmediateQtViewer.cc

    r897 r906  
    2525//
    2626//
    27 // $Id: G4OpenGLImmediateQtViewer.cc,v 1.7 2008/11/06 13:43:44 lgarnier Exp $
     27// $Id: G4OpenGLImmediateQtViewer.cc,v 1.8 2009/01/13 09:47:05 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    178178,int aHeight)
    179179
    180   G4resizeGL(aWidth,aHeight);
     180  fWinSize_x = aWidth;
     181  fWinSize_y = aHeight;
     182  hasToRepaint = true;
    181183}
    182184
     
    200202  printf("G4OpenGLImmediateQtViewer::paintGL VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV ready %d\n",readyToPaint);
    201203#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());
    206208
    207209  SetView();
  • trunk/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc

    r897 r906  
    2525//
    2626//
    27 // $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.16 2006/07/03 16:38:13 allison Exp $
    28 // GEANT4 tag $Name: HEAD $
     27// $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.17 2009/01/13 09:47:05 lgarnier Exp $
     28// GEANT4 tag $Name: $
    2929//
    3030//
  • trunk/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc

    r897 r906  
    2525//
    2626//
    27 // $Id: G4OpenGLImmediateXViewer.cc,v 1.16 2006/07/03 16:38:13 allison Exp $
    28 // GEANT4 tag $Name: HEAD $
     27// $Id: G4OpenGLImmediateXViewer.cc,v 1.17 2009/01/13 09:47:05 lgarnier Exp $
     28// GEANT4 tag $Name: $
    2929//
    3030//
     
    8686  //Make sure current viewer is attached and clean...
    8787  glXMakeCurrent (dpy, win, cx);
    88   glViewport (0, 0, fWinSize_x, fWinSize_y);
     88  //  glViewport (0, 0, fWinSize_x, fWinSize_y);
    8989
    9090  if(style!=G4ViewParameters::hlr &&
  • trunk/source/visualization/OpenGL/src/G4OpenGLQtViewer.cc

    r898 r906  
    2525//
    2626//
    27 // $Id: G4OpenGLQtViewer.cc,v 1.30 2008/11/06 13:43:44 lgarnier Exp $
     27// $Id: G4OpenGLQtViewer.cc,v 1.31 2009/01/13 09:47:05 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    8989  G4OpenGLViewer::SetView ();
    9090}
    91 
    92 /**
    93  * Set the viewport of the scene
    94  */
    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 
    10891
    10992
     
    788771
    789772
    790 void G4OpenGLQtViewer::G4resizeGL(
    791  int aWidth
    792 ,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 
    804773void G4OpenGLQtViewer::G4manageContextMenuEvent(QContextMenuEvent *e)
    805774{
  • trunk/source/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc

    r897 r906  
    2525//
    2626//
    27 // $Id: G4OpenGLStoredQtViewer.cc,v 1.20 2008/11/06 13:43:44 lgarnier Exp $
     27// $Id: G4OpenGLStoredQtViewer.cc,v 1.21 2009/01/13 09:47:05 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    126126
    127127#ifdef G4DEBUG
    128   printf("G4OpenGLStoredQtViewer::ComputeView %d %d   VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\n",fWinSize_x, fWinSize_y);
     128  printf("G4OpenGLStoredQtViewer::ComputeView %d %d   VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\n",fWinSize_x, fWinSize_y);
    129129#endif
    130130  makeCurrent();
     
    208208                                      ,int aHeight)
    209209
    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;
    211214}
    212215
     
    232235  printf("G4OpenGLStoredQtViewer::paintGL VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV ready %d\n",readyToPaint);
    233236#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());
    238241
    239242  SetView();
  • trunk/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc

    r897 r906  
    2525//
    2626//
    27 // $Id: G4OpenGLStoredWin32Viewer.cc,v 1.19 2007/04/04 16:50:27 allison Exp $
    28 // GEANT4 tag $Name: HEAD $
     27// $Id: G4OpenGLStoredWin32Viewer.cc,v 1.20 2009/01/13 09:47:05 lgarnier Exp $
     28// GEANT4 tag $Name: $
    2929//
    3030//
  • trunk/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc

    r897 r906  
    2525//
    2626//
    27 // $Id: G4OpenGLStoredXViewer.cc,v 1.22 2007/04/04 16:50:27 allison Exp $
    28 // GEANT4 tag $Name: HEAD $
     27// $Id: G4OpenGLStoredXViewer.cc,v 1.23 2009/01/13 09:47:05 lgarnier Exp $
     28// GEANT4 tag $Name: $
    2929//
    3030//
     
    7979  //Make sure current viewer is attached and clean...
    8080  glXMakeCurrent (dpy, win, cx);
    81   glViewport (0, 0, fWinSize_x, fWinSize_y);
     81  //  glViewport (0, 0, fWinSize_x, fWinSize_y);
    8282
    8383  G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle();
  • trunk/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc

    r897 r906  
    2525//
    2626//
    27 // $Id: G4OpenGLStoredXmViewer.cc,v 1.22 2007/04/04 16:50:27 allison Exp $
    28 // GEANT4 tag $Name: HEAD $
     27// $Id: G4OpenGLStoredXmViewer.cc,v 1.23 2009/01/13 09:47:05 lgarnier Exp $
     28// GEANT4 tag $Name: $
    2929//
    3030//
     
    8585  //Make sure current viewer is attached and clean...
    8686  glXMakeCurrent (dpy, win, cx);
    87   glViewport (0, 0, fWinSize_x, fWinSize_y);
     87  //  glViewport (0, 0, fWinSize_x, fWinSize_y);
    8888
    8989  G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle();
  • trunk/source/visualization/OpenGL/src/G4OpenGLViewer.cc

    r897 r906  
    2525//
    2626//
    27 // $Id: G4OpenGLViewer.cc,v 1.41 2008/10/24 13:49:19 lgarnier Exp $
     27// $Id: G4OpenGLViewer.cc,v 1.43 2009/01/13 09:47:05 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    149149}
    150150
     151
     152/**
     153 * Set the viewport of the scene
     154 */
     155void 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
    151167void G4OpenGLViewer::SetView () {
    152168
     169#ifdef G4DEBUG
     170  printf("G4OpenGLViewer::SetView ------------\n");
     171#endif
    153172  if (!fSceneHandler.GetScene()) {
    154173    G4cerr << "G4OpenGLStoredQtViewer: Creating a Viewer without a scene is not allowed. \nPlease use /vis/scene/create before /vis/open/.... "
     
    183202  const G4Point3D cameraPosition =
    184203    targetPoint + cameraDistance * fVP.GetViewpointDirection().unit();
    185   const GLdouble pnear   = fVP.GetNearDistance (cameraDistance, radius);
    186   const GLdouble pfar    = fVP.GetFarDistance  (cameraDistance, pnear, radius);
     204  const GLdouble pnear  = fVP.GetNearDistance (cameraDistance, radius);
     205  const GLdouble pfar   = fVP.GetFarDistance  (cameraDistance, pnear, radius);
    187206  const GLdouble right  = fVP.GetFrontHalfHeight (pnear, radius);
    188207  const GLdouble left   = -right;
     
    190209  const GLdouble top    = right;
    191210 
     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
    192219  glMatrixMode (GL_PROJECTION); // set up Frustum.
    193220  glLoadIdentity();
    194221
    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());
    197224 
    198225  if (fVP.GetFieldHalfAngle() == 0.) {
    199226    glOrtho (left, right, bottom, top, pnear, pfar);
     227#ifdef G4DEBUG
     228  printf("G4OpenGLViewer::SetView ------------rescale\n");
     229#endif
    200230  }
    201231  else {
    202232    glFrustum (left, right, bottom, top, pnear, pfar);
    203   }
    204  
     233#ifdef G4DEBUG
     234  printf("G4OpenGLViewer::SetView ------------Frustum\n");
     235#endif
     236  }
     237 
     238
    205239  glMatrixMode (GL_MODELVIEW); // apply further transformations to scene.
    206240  glLoadIdentity();
     
    219253             gltarget.x(), gltarget.y(), gltarget.z(),      // Target point.
    220254             upVector.x(), upVector.y(), upVector.z());     // Up vector.
    221  
     255
    222256  // Light position is "true" light direction, so must come after gluLookAt.
    223257  glLightfv (GL_LIGHT0, GL_POSITION, lightPosition);
  • trunk/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc

    r898 r906  
    2525//
    2626//
    27 // $Id: G4OpenGLWin32Viewer.cc,v 1.17 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: $
    2929//
    3030//
  • trunk/source/visualization/OpenGL/src/G4OpenGLXViewer.cc

    r898 r906  
    2525//
    2626//
    27 // $Id: G4OpenGLXViewer.cc,v 1.42 2007/05/25 10:47:17 allison Exp $
    28 // GEANT4 tag $Name: HEAD $
     27// $Id: G4OpenGLXViewer.cc,v 1.43 2009/01/13 09:47:05 lgarnier Exp $
     28// GEANT4 tag $Name: $
    2929//
    3030//
     
    8282extern "C" {
    8383  static Bool G4OpenGLXViewerWaitForNotify (Display*, XEvent* e, char* arg) {
     84#ifdef G4DEBUG
     85    printf("G4OpenGLXViewerWaitForNotify\n");
     86#endif
    8487    return (e->type == MapNotify) && (e->xmap.window == (Window) arg);
    8588  }
     
    441444                    cx);
    442445   
    443     glViewport (0, 0, fWinSize_x, fWinSize_y);
     446    //    glViewport (0, 0, fWinSize_x, fWinSize_y);
    444447   
    445448    ClearView ();
  • trunk/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc

    r898 r906  
    2525//
    2626//
    27 // $Id: G4OpenGLXmViewer.cc,v 1.24 2007/08/21 14:05:51 allison Exp $
    28 // GEANT4 tag $Name: HEAD $
     27// $Id: G4OpenGLXmViewer.cc,v 1.25 2009/01/13 09:47:05 lgarnier Exp $
     28// GEANT4 tag $Name: $
    2929//
    3030//
     
    580580                                     NULL);
    581581 
    582   XtAddCallback (glxarea,
    583                  XmNexposeCallback,
    584                  expose_callback,
    585                  this);
    586 
    587   XtAddCallback (glxarea,
    588                  XmNresizeCallback,
    589                  resize_callback,
    590                  this);
    591582
    592583  XmMainWindowSetAreas (main_win,  // main widget, children are specified
     
    606597
    607598  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);
    608610
    609611}
  • trunk/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc

    r897 r906  
    2525//
    2626//
    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: $
    2929//
    3030//
     
    4040void G4OpenGLXmViewer::resize_callback (Widget w,
    4141                                      XtPointer clientData,
    42                                       XtPointer)
     42                                      XtPointer x)
    4343{
    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);
    5445}
    5546
     
    7263
    7364  glXMakeCurrent (pView->dpy, XtWindow(pView->glxarea), pView->cx);
    74   glViewport (0, 0, width, height);
    7565
     66  pView->SetView ();
    7667  pView->ClearView ();
    7768  pView->DrawView ();
Note: See TracChangeset for help on using the changeset viewer.