Ignore:
Timestamp:
Oct 30, 2008, 5:47:35 PM (16 years ago)
Author:
garnier
Message:

Update in code, try to mutualise everything between Stored and immediate Qt Viewers

File:
1 edited

Legend:

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

    r866 r873  
    3636#ifdef G4VIS_BUILD_OPENGLQT_DRIVER
    3737
    38 //#define GEANT4_QT_DEBUG
    39 
    4038#include "G4OpenGLQtViewer.hh"
    4139
     
    8886//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
    8987{
    90 #ifdef GEANT4_QT_DEBUG
    91   printf("G4OpenGLQtViewer::SetView ++++++++++++++++++++\n");
    92 #endif
    93   //   if(!fHDC) return;
    94   //   if(!fHGLRC) return;
    95   //   ::wglMakeCurrent(fHDC,fHGLRC);
    96   //  fWindow->makeCurrent();
     88#ifdef G4DEBUG
     89  printf("G4OpenGLQtViewer::SetView\n");
     90#endif
    9791  G4OpenGLViewer::SetView ();
    98 #ifdef GEANT4_QT_DEBUG
    99   printf("G4OpenGLQtViewer::SetView --------------------\n");
    100 #endif
    10192}
    10293
     
    126117//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
    127118{
    128 #ifdef GEANT4_QT_DEBUG
    129   printf("G4OpenGLQtViewer::ShowView  +++++++++++++++++++++\n");
    130 #endif
    131119  if (!GLWindow) {
    132120    G4cerr << "Visualization window not defined, please choose one before\n" << G4endl;
     
    137125    GLWindow->activateWindow();
    138126#endif
    139 #ifdef GEANT4_QT_DEBUG
    140     printf("G4OpenGLQtViewer::ShowView -----------------------\n");
    141 #endif
    142127  }
    143128  glFlush ();
    144   //   // Empty the Windows message queue :
    145   //   MSG event;
    146   //   while ( ::PeekMessage(&event, NULL, 0, 0, PM_REMOVE) ) {
    147   //     ::TranslateMessage(&event);
    148   //     ::DispatchMessage (&event);
    149   //   }
    150 }
    151 
    152 
    153 
    154 //////////////////////////////////////////////////////////////////////////////
    155 void G4OpenGLQtViewer::CreateGLQtContext (
    156 )
    157 //////////////////////////////////////////////////////////////////////////////
    158 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
    159 {
    160 #ifdef GEANT4_QT_DEBUG
    161   printf("G4OpenGLQtViewer::CreateGLQtContext \n");
    162 #endif
    163 }
     129}
     130
     131
    164132
    165133
     
    174142
    175143  if(fWindow) return; //Done.
    176 #ifdef GEANT4_QT_DEBUG
     144#ifdef G4DEBUG
    177145  printf("G4OpenGLQtViewer::CreateMainWindow glWidget\n");
    178146#endif
     147
     148  // check if it is already launched,
     149  // if not, we suppose that the G4Qt is not launch.
     150  //  bool isReady = G4Qt::Inited();
    179151
    180152  // launch Qt if not
     
    219191
    220192    if (found==false) {
    221 #ifdef GEANT4_QT_DEBUG
     193#ifdef G4DEBUG
    222194      printf("G4OpenGLQtViewer::CreateMainWindow case Qapp exist, but not found\n");
    223195#endif
     
    225197    }
    226198  } else {
    227 #ifdef GEANT4_QT_DEBUG
     199#ifdef G4DEBUG
    228200    printf("G4OpenGLQtViewer::CreateMainWindow case Qapp exist\n");
    229201#endif
     
    263235
    264236  if(!fWindow) return;
    265 #ifdef GEANT4_QT_DEBUG
     237#ifdef G4DEBUG
    266238  printf("G4OpenGLQtViewer::CreateMainWindow glWidget END\n");
    267239#endif
     
    276248 */
    277249// void G4OpenGLQtViewer::dialogClosed() {
    278 // #ifdef GEANT4_QT_DEBUG
    279 //   printf("G4OpenGLQtViewer::dialogClosed END\n");
    280 // #endif
    281250//   //  GLWindow = NULL;
    282251// }
     
    328297  fLastEventTime = new QTime();
    329298
    330 #ifdef GEANT4_QT_DEBUG
     299#ifdef G4DEBUG
    331300  printf("G4OpenGLQtViewer::G4OpenGLQtViewer END\n");
    332301#endif
     
    343312#else
    344313  G4cout <<removeTempFolder().toStdString().c_str() <<G4endl;
    345 #endif
    346 
    347 #ifdef GEANT4_QT_DEBUG
    348   printf("G4OpenGLQtViewer::~G4OpenGLQtViewer \n");
    349314#endif
    350315}
     
    577542    mDrawing->clear();
    578543  }
    579 #ifdef GEANT4_QT_DEBUG
    580   printf("G4OpenGLQtViewer:: fDrawingWireframe 1\n");
    581 #endif
    582544  QObject ::connect(fDrawingWireframe,
    583545                    SIGNAL(activated()),
    584546                    this,
    585547                    SLOT(actionDrawingWireframe()));
    586 #ifdef GEANT4_QT_DEBUG
    587   printf("G4OpenGLQtViewer:: fDrawingWireframe 2\n");
    588 #endif
    589548  QObject ::connect(fDrawingLineRemoval,
    590549                    SIGNAL(activated()),
     
    860819}
    861820
    862 void G4OpenGLQtViewer::manageContextMenuEvent(QContextMenuEvent *e)
     821
     822void G4OpenGLQtViewer::G4resizeGL(
     823 int aWidth
     824,int aHeight)
     825
     826  setupViewport(aWidth,aHeight);
     827 
     828  if (((WinSize_x != (G4int)aWidth)) || (WinSize_y != (G4int) aHeight)) {
     829    hasToRepaint =true;
     830  }
     831  WinSize_x = (G4int) aWidth;
     832  WinSize_y = (G4int) aHeight;
     833}
     834
     835
     836void G4OpenGLQtViewer::G4manageContextMenuEvent(QContextMenuEvent *e)
    863837{
    864838  if (!GLWindow) {
     
    948922 */
    949923void G4OpenGLQtViewer::actionMousePick() {
    950 #ifdef GEANT4_QT_DEBUG
    951   printf("G4OpenGLQtViewer::actionMousePick \n");
    952 #endif
    953924  emit toggleMouseAction(STYLE3);
    954925}
     
    14801451  }
    14811452 
    1482 #ifdef GEANT4_QT_DEBUG
    1483   printf("G4OpenGLQtViewer::actionSaveImage() \n");
    1484 #endif
    14851453}
    14861454
    14871455
    14881456void G4OpenGLQtViewer::actionMovieParameters() {
    1489 
    14901457  showMovieParametersDialog();
    1491 #ifdef GEANT4_QT_DEBUG
    1492   printf("G4OpenGLQtViewer::actionMovieParameters() \n");
    1493 #endif
    14941458}
    14951459
     
    15281492
    15291493
     1494void G4OpenGLQtViewer::FinishView()
     1495{
     1496   glFlush ();
     1497   fWindow->swapBuffers ();
     1498}
    15301499
    15311500/**
     
    15331502   @param p mouse click point
    15341503*/
    1535 #if QT_VERSION < 0x040000
    1536 void G4OpenGLQtViewer::G4MousePressEvent(QPoint p)
    1537 #else
    1538 void G4OpenGLQtViewer::G4MousePressEvent(QPoint p)
    1539 #endif
     1504void G4OpenGLQtViewer::G4MousePressEvent(QMouseEvent *event)
    15401505{
    1541   fAutoMove = false; // stop automove
    1542   fLastPos1 = p;
    1543   fLastPos2 = fLastPos1;
    1544   fLastPos3 = fLastPos2;
    1545   fLastEventTime->start();
    1546   if (fMouseAction == STYLE3){  // pick
    1547     Pick(p.x(),p.y());
     1506#if QT_VERSION < 0x040000
     1507  if ((event->button() & Qt::LeftButton)
     1508      && !((event->state() & Qt::ShiftButton)
     1509           || (event->state() & Qt::ControlButton)
     1510           || (event->state() & Qt::AltButton)
     1511           || (event->state() & Qt::MetaButton))) {
     1512#else
     1513  if ((event->buttons() & Qt::LeftButton)
     1514      && !((event->modifiers() & Qt::ShiftModifier)
     1515           || (event->modifiers() & Qt::ControlModifier)
     1516           || (event->modifiers() & Qt::AltModifier)
     1517           || (event->modifiers() & Qt::MetaModifier))) {
     1518#endif
     1519    fWindow->setMouseTracking(true);
     1520    fAutoMove = false; // stop automove
     1521    fLastPos1 = event->pos();
     1522    fLastPos2 = fLastPos1;
     1523    fLastPos3 = fLastPos2;
     1524    fLastEventTime->start();
     1525    if (fMouseAction == STYLE3){  // pick
     1526      Pick(event->pos().x(),event->pos().y());
     1527    }
    15481528  }
    15491529}
     
    15531533void G4OpenGLQtViewer::G4MouseReleaseEvent()
    15541534{
    1555 #ifdef GEANT4_QT_DEBUG
    1556   printf("G4OpenGLQtViewer::mouseRealease() %d,%d  %d,%d  %d,%d\n",fLastPos1.x(),fLastPos1.y(),fLastPos2.x(),fLastPos2.y(),fLastPos3.x(),fLastPos3.y());
    1557 #endif
    15581535  fSpinningDelay = fLastEventTime->elapsed();
    15591536  QPoint delta = (fLastPos3-fLastPos1);
    15601537  if ((delta.x() == 0) && (delta.y() == 0)) {
    1561 #ifdef GEANT4_QT_DEBUG
    1562   printf("G4OpenGLQtViewer::mouseRealease() EXIT 1 \n");
    1563 #endif
    15641538    return;
    15651539  }
     
    15791553        lastMoveTime.start();
    15801554        cycles = 1 ;
    1581         //      }
    15821555      ((QApplication*)G4Qt::getInstance ())->processEvents();
    1583 #ifdef GEANT4_QT_DEBUG
    1584         printf("G4OpenGLQtViewer::mouseRealease() cycle :%d \n",lastMoveTime.elapsed());
    1585 #endif
    15861556      cycles ++ ;
    15871557    }
    15881558  }
     1559  fWindow->setMouseTracking(false);
     1560
     1561}
     1562
     1563
     1564void G4OpenGLQtViewer::G4MouseDoubleClickEvent()
     1565{
     1566  fWindow->setMouseTracking(true);
    15891567}
    15901568
     
    15971575*/
    15981576
    1599 #if QT_VERSION < 0x040000
    1600 void G4OpenGLQtViewer::G4MouseMoveEvent(int pos_x, int pos_y,Qt::ButtonState mButtons)
    1601 #else
    1602   void G4OpenGLQtViewer::G4MouseMoveEvent(int pos_x, int pos_y,Qt::MouseButtons mButtons)
    1603 #endif
     1577void G4OpenGLQtViewer::G4MouseMoveEvent(QMouseEvent *event)
    16041578{
     1579
     1580 
     1581#if QT_VERSION < 0x040000
     1582  Qt::ButtonState mButtons = event->state();
     1583#else
     1584  Qt::MouseButtons mButtons = event->buttons();
     1585#endif
    16051586
    16061587  if (fAutoMove) {
     
    16101591  fLastPos3 = fLastPos2;
    16111592  fLastPos2 = fLastPos1;
    1612   fLastPos1 = QPoint(pos_x, pos_y);
     1593  fLastPos1 = QPoint(event->x(), event->y());
    16131594
    16141595  int deltaX = fLastPos2.x()-fLastPos1.x();
     
    17201701,int aHeight
    17211702){
    1722 #ifdef GEANT4_QT_DEBUG
    1723   printf("should rescale \n");
    1724 #endif
    17251703  //  GLfloat* feedback_buffer;
    17261704  //  GLint returned;
     
    18031781{
    18041782  // FIXME
    1805 #ifdef GEANT4_QT_DEBUG
    1806   printf("saving EPS\n");
    1807 #endif
    18081783
    18091784  FILE* fp;
     
    20061981  fVP.SetZoomFactor(fVP.GetZoomFactor()+(fVP.GetZoomFactor()*(event->delta())/1200));
    20071982  updateQWidget();
    2008 
    2009 #ifdef GEANT4_QT_DEBUG
    2010   printf("G4OpenGLQtViewer::wheel event  +++++++++++++++++++++ %f %d\n",fVP.GetZoomFactor(),event->delta());
    2011 #endif
    20121983}
    20131984
Note: See TracChangeset for help on using the changeset viewer.