Ignore:
Timestamp:
Mar 10, 2010, 11:29:32 AM (14 years ago)
Author:
garnier
Message:

update

File:
1 edited

Legend:

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

    r1238 r1241  
    195195    }
    196196  }
    197   GLsizei side = fWinSize_x;
    198   if (fWinSize_y < fWinSize_x) side = fWinSize_y;
     197//   GLsizei side = fWinSize_x;
     198//   if (fWinSize_y < fWinSize_x) side = fWinSize_y;
    199199 
    200200  // SPECIAL CASE if fWinSize_x is even (69 for example)
     
    208208
    209209  // SPECIAL CASE
    210   if ((fWinSize_x - side)%2) {
    211     //    fWinSize_x --;
    212 
    213     side = fWinSize_x;
    214     if (fWinSize_y < fWinSize_x) side = fWinSize_y;
    215   }
    216   if ((fWinSize_y - side)%2) {
    217     //    fWinSize_y --;
    218 
    219     side = fWinSize_x;
    220     if (fWinSize_y < fWinSize_x) side = fWinSize_y;
    221   }
    222  
    223   GLint X = (fWinSize_x - side) / 2;
    224   GLint Y = (fWinSize_y - side) / 2;
    225  
    226 #ifdef G4DEBUG_VIS_OGL
    227   printf("G4OpenGLViewer::ResizeGLView X:%d Y:%d W:%d H:%d --side%d\n",(fWinSize_x - side) / 2,(fWinSize_y - side) / 2,fWinSize_x,fWinSize_y,side);
    228 #endif
    229   glViewport(X, Y, side, side);
    230   //    glViewport(0, 0, fWinSize_x,fWinSize_y); 
     210//   if ((fWinSize_x - side)%2) {
     211//     //    fWinSize_x --;
     212
     213//     side = fWinSize_x;
     214//     if (fWinSize_y < fWinSize_x) side = fWinSize_y;
     215//   }
     216//   if ((fWinSize_y - side)%2) {
     217//     //    fWinSize_y --;
     218
     219//     side = fWinSize_x;
     220//     if (fWinSize_y < fWinSize_x) side = fWinSize_y;
     221//   }
     222 
     223//   GLint X = (fWinSize_x - side) / 2;
     224//   GLint Y = (fWinSize_y - side) / 2;
     225 
     226#ifdef G4DEBUG_VIS_OGL
     227  //  printf("G4OpenGLViewer::ResizeGLView X:%d Y:%d W:%d H:%d --side%d\n",(fWinSize_x - side) / 2,(fWinSize_y - side) / 2,fWinSize_x,fWinSize_y,side);
     228#endif
     229
     230  //  glViewport(X, Y, side, side);
     231  glViewport(0, 0, fWinSize_x,fWinSize_y); 
    231232 
    232233
     
    256257  glLightfv (GL_LIGHT0, GL_DIFFUSE, diffuse);
    257258 
     259  G4double ratioX = 1;
     260  G4double ratioY = 1;
     261  if (fWinSize_y > fWinSize_x) {
     262    ratioX = ((G4double)fWinSize_y) / ((G4double)fWinSize_x);
     263  }
     264  if (fWinSize_x > fWinSize_y) {
     265    ratioY = ((G4double)fWinSize_x) / ((G4double)fWinSize_y);
     266  }
     267 
    258268  // Get radius of scene, etc.
    259269  // Note that this procedure properly takes into account zoom, dolly and pan.
     
    268278  const GLdouble pnear  = fVP.GetNearDistance (cameraDistance, radius);
    269279  const GLdouble pfar   = fVP.GetFarDistance  (cameraDistance, pnear, radius);
    270   const GLdouble right  = fVP.GetFrontHalfHeight (pnear, radius);
     280  const GLdouble right  = fVP.GetFrontHalfHeight (pnear, radius) * ratioY;
    271281  const GLdouble left   = -right;
    272   const GLdouble bottom = left;
    273   const GLdouble top    = right;
     282  const GLdouble top    = fVP.GetFrontHalfHeight (pnear, radius) * ratioX;
     283  const GLdouble bottom = -top;
    274284 
    275285  // FIXME
    276286#ifdef G4DEBUG_VIS_OGL
    277   printf("G4OpenGLViewer::SetView Call ResizeGLView VVVVVV\n");
     287  printf("G4OpenGLViewer::SetView Call ResizeGLView VVVVVV sizeX:%d sizeY:%d ratioX:%f ratioY:%f\n",fWinSize_x,fWinSize_y,ratioX,ratioY);
    278288#endif
    279289  ResizeGLView();
     
    291301  if (fVP.GetFieldHalfAngle() == 0.) {
    292302    glOrtho (left, right, bottom, top, pnear, pfar);
     303#ifdef G4DEBUG_VIS_OGL
     304    printf("G4OpenGLViewer::SetView glOrtho %f %f %f %f %f %f\n",left, right, bottom, top, pnear, pfar);
     305#endif
    293306  }
    294307  else {
Note: See TracChangeset for help on using the changeset viewer.