Ignore:
Timestamp:
Feb 1, 2008, 6:02:42 PM (16 years ago)
Author:
garnier
Message:

modifs en cours...step de deplacement dans G4OpenGLQtViewer.ccc

File:
1 edited

Legend:

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

    r704 r707  
    3636#ifdef G4VIS_BUILD_OPENGLQT_DRIVER
    3737
    38 //#define GEANT4_QT_DEBUG
     38#define GEANT4_QT_DEBUG
    3939
    4040#include "G4OpenGLQtViewer.hh"
     
    287287  ,fMouseAction(STYLE1)
    288288  ,fDeltaSceneTranslation(1/100)
    289   ,fDeltaZoom(2)
     289  ,fDeltaZoom(1.1)
    290290  ,holdKeyEvent(false)
    291291{
     
    334334  fMouseRotate->setCheckable(true);
    335335
    336   fMouseMove = new QPopupMenu(mMouseAction);
    337   mMouseAction->insertItem("&Move",fMouseMove);
    338   fMouseMove->setCheckable(true);
    339 
    340   fMouseZoom = new QPopupMenu(mMouseAction);
    341   mMouseAction->insertItem("&Zoom",fMouseZoom);
    342   fMouseZoom->setCheckable(true);
    343 
    344336  fMousePick = new QPopupMenu(mMouseAction);
    345337  mMouseAction->insertItem("&Pick",fMousePick);
    346338  fMousePick->setCheckable(true);
    347339
     340  fMouseShortcuts = new QPopupMenu(mMouseAction);
     341  mMouseAction->insertItem("&Show Shortcuts",fMouseShortcuts);
     342  fMouseShortcuts->setCheckable(true);
     343
    348344#else
    349345  // === Mouse menu ===
     
    352348  fMouseRotate->setCheckable(true);
    353349
    354   fMouseMove = mMouseAction->addAction("Move");
    355   fMouseMove->setCheckable(true);
    356 
    357   fMouseZoom = mMouseAction->addAction("Zoom");
    358   fMouseZoom->setCheckable(true);
    359 
    360350  fMousePick = mMouseAction->addAction("Pick");
    361351  fMousePick->setCheckable(true);
     352
     353  fMouseShortcuts = mMouseAction->addAction("Show Shortcuts");
     354  fMouseShortcuts->setCheckable(true);
    362355#endif
    363356
     
    371364                    SLOT(actionMouseRotate()));
    372365
    373   QObject ::connect(fMouseMove,
    374                     SIGNAL(activated(int)),
    375                     this,
    376                     SLOT(actionMouseMove()));
    377 
    378   QObject ::connect(fMouseZoom,
    379                     SIGNAL(activated(int)),
    380                     this,
    381                     SLOT(actionMouseZoom()));
    382 
    383366  QObject ::connect(fMousePick,
    384367                    SIGNAL(activated(int)),
     
    386369                    SLOT(actionMousePick()));
    387370
     371  QObject ::connect(fMouseShortcuts,
     372                    SIGNAL(activated(int)),
     373                    this,
     374                    SLOT(actionMouseShortcuts()));
     375
    388376#else
    389377  fMouseRotate->setChecked(true);
     
    394382                    SLOT(actionMouseRotate()));
    395383
    396   QObject ::connect(fMouseMove,
    397                     SIGNAL(triggered(bool)),
    398                     this,
    399                     SLOT(actionMouseMove()));
    400 
    401   QObject ::connect(fMouseZoom,
    402                     SIGNAL(triggered(bool)),
    403                     this,
    404                     SLOT(actionMouseZoom()));
    405 
    406384  QObject ::connect(fMousePick,
    407385                    SIGNAL(triggered(bool)),
    408386                    this,
    409387                    SLOT(actionMousePick()));
     388
     389  QObject ::connect(fMouseShortcuts,
     390                    SIGNAL(triggered(bool)),
     391                    this,
     392                    SLOT(actionMouseShortcuts()));
    410393#endif
    411394
     
    847830}
    848831
    849 /**
    850    Slot activate when mouseAction->move menu is set
    851  */
    852 void G4OpenGLQtViewer::actionMouseMove() {
    853   emit toggleMouseAction(STYLE2);
    854 }
    855 
    856 /**
    857    Slot activate when mouseAction->pick menu is set
    858  */
    859 void G4OpenGLQtViewer::actionMouseZoom() {
    860 #ifdef GEANT4_QT_DEBUG
    861   printf("G4OpenGLQtViewer::actionMouseZoom \n");
    862 #endif
    863   emit toggleMouseAction(STYLE3);
    864 }
    865832
    866833/**
     
    871838  printf("G4OpenGLQtViewer::actionMousePick \n");
    872839#endif
    873   emit toggleMouseAction(STYLE4);
     840  emit toggleMouseAction(STYLE3);
     841}
     842
     843/**
     844   Slot activate when mouseAction->zoom menu is set
     845 */
     846void G4OpenGLQtViewer::actionMouseShortcuts() {
     847#ifdef GEANT4_QT_DEBUG
     848  printf("G4OpenGLQtViewer::actionMouseShortcuts \n");
     849#endif
     850  emit toggleMouseAction(STYLE3);
    874851}
    875852
     
    909886void G4OpenGLQtViewer::toggleMouseAction(mouseActions aAction) {
    910887 
    911   if (aAction == STYLE1) {
    912     G4cout << "Clic and move mouse to rotate Volume \n" << G4endl;
    913     G4cout << "Press left/right arrows to move camera left/right\n" << G4endl;
    914     G4cout << "Press up/down arrows to move camera up/down\n" << G4endl;
    915     G4cout << "Press SHIFT+up/down arrows to move camera toward/forward\n" << G4endl;
     888  if (aAction == STYLE1) {  // rotate
     889    G4cout << "Click and move mouse to rotate volume \n" << G4endl;
     890    G4cout << "Press left/right arrows to move volume left/right\n" << G4endl;
     891    G4cout << "Press up/down arrows to move volume up/down\n" << G4endl;
     892    G4cout << "Press CONTROL+up/down arrows to move volume toward/forward\n" << G4endl;
     893    G4cout << "Press SHIFT+left/right arrows to rotate volume left/right\n" << G4endl;
     894    G4cout << "Press SHIFT+up/down arrows to rotate volume up/down\n" << G4endl;
    916895    G4cout << "Press +/- to zoom into volume\n" << G4endl;
    917896#if QT_VERSION < 0x040000
    918897    fMouseRotate->setItemChecked (0,true);
    919     fMouseMove->setItemChecked (0,false);
    920     fMouseZoom->setItemChecked (0,false);
    921898    fMousePick->setItemChecked (0,false);
     899    fMouseShortcuts->setItemChecked (0,false);
    922900#else
    923901    fMouseRotate->setChecked (true);
    924     fMouseMove->setChecked (false);
    925     fMouseZoom->setChecked (false);
    926902    fMousePick->setChecked (false);
     903    fMouseShortcuts->setChecked (false);
    927904#endif
    928905    fMouseAction = STYLE1;
    929906    fVP.SetPicking(false);
    930   } else  if (aAction == STYLE2) {
    931     G4cout << "Clic and move mouse to move Volume \n" << G4endl;
     907  } else  if (aAction == STYLE2) { //pick
     908    G4cout << "Click and pick \n" << G4endl;
    932909#if QT_VERSION < 0x040000
    933910    fMouseRotate->setItemChecked (0,false);
    934     fMouseMove->setItemChecked (0,true);
    935     fMouseZoom->setItemChecked (0,false);
     911    fMousePick->setItemChecked (0,true);
     912#else
     913    fMouseRotate->setChecked (false);
     914    fMousePick->setChecked (true);
     915#endif
     916    fVP.SetPicking(true);
     917    fMouseAction = STYLE2;
     918  } else  if (aAction == STYLE3) {  // display shortcuts
     919#if QT_VERSION < 0x040000
     920    fMouseRotate->setItemChecked (0,false);
    936921    fMousePick->setItemChecked (0,false);
     922    fMouseShortcuts->setItemChecked (0,true);
    937923#else
    938924    fMouseRotate->setChecked (false);
    939     fMouseMove->setChecked (true);
    940     fMouseZoom->setChecked (false);
    941925    fMousePick->setChecked (false);
    942 #endif
    943     fMouseAction = STYLE2;
    944     fVP.SetPicking(false);
    945   } else  if (aAction == STYLE3) {
    946     G4cout << "Clic and move mouse to rotate Volume \n" << G4endl;
    947 #if QT_VERSION < 0x040000
    948     fMouseRotate->setItemChecked (0,false);
    949     fMouseMove->setItemChecked (0,false);
    950     fMouseZoom->setItemChecked (0,true);
    951     fMousePick->setItemChecked (0,false);
    952 #else
    953     fMouseRotate->setChecked (false);
    954     fMouseMove->setChecked (false);
    955     fMouseZoom->setChecked (true);
    956     fMousePick->setChecked (false);
     926    fMouseShortcuts->setChecked (true);
    957927#endif
    958928    fMouseAction = STYLE3;
    959929    fVP.SetPicking(false);
    960   } else  if (aAction == STYLE4) {
    961 #if QT_VERSION < 0x040000
    962     fMouseRotate->setItemChecked (0,false);
    963     fMouseMove->setItemChecked (0,false);
    964     fMouseZoom->setItemChecked (0,false);
    965     fMousePick->setItemChecked (0,true);
    966 #else
    967     fMouseRotate->setChecked (false);
    968     fMouseMove->setChecked (false);
    969     fMouseZoom->setChecked (false);
    970     fMousePick->setChecked (true);
    971 #endif
    972     fVP.SetPicking(true);
    973     fMouseAction = STYLE4;
     930
     931    G4cout << "Click and move mouse to rotate volume \n" << G4endl;
     932    G4cout << "Press left/right arrows to move volume left/right\n" << G4endl;
     933    G4cout << "Press up/down arrows to move volume up/down\n" << G4endl;
     934    G4cout << "Press CONTROL+up/down arrows to move volume toward/forward\n" << G4endl;
     935    G4cout << "Press SHIFT+left/right arrows to rotate volume left/right\n" << G4endl;
     936    G4cout << "Press SHIFT+up/down arrows to rotate volume up/down\n" << G4endl;
     937    G4cout << "Press +/- to zoom into volume\n" << G4endl;
    974938  }
    975939
     
    13921356{
    13931357  fLastPos = p;
    1394   if (fMouseAction == STYLE4){  // pick
     1358  if (fMouseAction == STYLE2){  // pick
    13951359    Pick(p.x(),p.y());
    13961360  }
     
    14161380      G4MouseRotateEvent(dx,dy);
    14171381    }
    1418   } else   if (fMouseAction == STYLE2){  // move
    1419     if (mButtons & Qt::LeftButton) {
    1420       G4MouseMoveEvent(dx,dy,0);
    1421     }
    1422   } else   if (fMouseAction == STYLE3){  // zoom
    1423     if (mButtons & Qt::LeftButton) {
    1424       G4cerr << "Zoom not implemented for the moment\n" << G4endl;
    1425     }
    14261382  }
    14271383  fLastPos = QPoint(pos_x, pos_y);
     
    14351391void G4OpenGLQtViewer::G4MouseMoveEvent(int dx, int dy, int dz)
    14361392{
     1393  int deltaX =
     1394GLenum clip = glGet(GL_CLIP_PLANE);
     1395  int deltaY = ;
     1396
     1397
    14371398  G4Point3D stp
    14381399    = GetSceneHandler()->GetScene()->GetStandardTargetPoint();
     
    18091770}
    18101771
    1811 #endif
    18121772
    18131773void G4OpenGLQtViewer::G4keyPressEvent (QKeyEvent * event)
     
    18181778  holdKeyEvent = true;
    18191779
     1780  if ((event->key() == Qt::Key_Down) && (event->modifiers() & Qt::AltModifier )) { // go backward
     1781    G4MouseMoveEvent(0,0,1);
     1782  }
     1783  else if ((event->key() == Qt::Key_Up) && (event->modifiers() & Qt::AltModifier)) { // go forward
     1784    G4MouseMoveEvent(0,0,-1);
     1785  }
     1786  if ((event->key() == Qt::Key_Down) && (event->modifiers() & Qt::ShiftModifier)) { // rotate phi
     1787    G4MouseRotateEvent(0,-1);
     1788  }
     1789  else if ((event->key() == Qt::Key_Up) && (event->modifiers() & Qt::ShiftModifier)) { // rotate phi
     1790    G4MouseRotateEvent(0,1);
     1791  }
     1792  if ((event->key() == Qt::Key_Left) && (event->modifiers() & Qt::ShiftModifier)) { // rotate theta
     1793    G4MouseRotateEvent(1,0);
     1794  }
     1795  else if ((event->key() == Qt::Key_Right) && (event->modifiers() & Qt::ShiftModifier)) { // rotate theta
     1796    G4MouseRotateEvent(-1,0);
     1797  }
    18201798  if (event->key() == Qt::Key_Escape) { // escaped from full screen
    18211799    toggleFullScreen();
    1822    
    1823   }  else if ((event->key() == Qt::Key_Down) && (event->modifiers() & Qt::ShiftModifier)) // go backward
    1824     {
    1825       G4MouseMoveEvent(0,0,1);
    1826     }
    1827   else if ((event->key() == Qt::Key_Up) && (event->modifiers() & Qt::ShiftModifier))  // go forward
    1828     {
    1829       G4MouseMoveEvent(0,0,-1);
    1830     }
    1831  else if (event->key() == Qt::Key_Down) // go down
    1832     {
     1800  }
     1801  if (event->key() == Qt::Key_Plus) { // zoom in
     1802    fVP.SetZoomFactor(fVP.GetZoomFactor()*fDeltaZoom);
     1803    updateQWidget();
     1804  }
     1805  else if (event->key() == Qt::Key_Minus) { // zoom out
     1806    fVP.SetZoomFactor(fVP.GetZoomFactor()/fDeltaZoom);
     1807    updateQWidget();
     1808  }
     1809  // with no modifiers
     1810  if (!event->modifiers()) {
     1811    if (event->key() == Qt::Key_Down) { // go down
    18331812      G4MouseMoveEvent(0,1,0);
    18341813    }
    1835   else if (event->key() == Qt::Key_Up)  // go up
    1836     {
     1814    else if (event->key() == Qt::Key_Up) {  // go up
    18371815      G4MouseMoveEvent(0,-1,0);
    18381816    }
    1839   else if (event->key() == Qt::Key_Left) // go left
    1840     {
     1817    if (event->key() == Qt::Key_Left) { // go left
    18411818      G4MouseMoveEvent(-1,0,0);
    18421819    }
    1843   else if (event->key() == Qt::Key_Right) // go right
    1844     {
     1820    else if (event->key() == Qt::Key_Right) { // go right
    18451821      G4MouseMoveEvent(1,0,0);
    18461822    }
    1847   else if (event->key() == Qt::Key_Plus) // zoom in
    1848     {
    1849       fVP.SetZoomFactor(fVP.GetZoomFactor()*fDeltaZoom);
    1850       updateQWidget();
    1851     }
    1852   else if (event->key() == Qt::Key_Minus) // zoom out
    1853     {
    1854       fVP.SetZoomFactor(fVP.GetZoomFactor()/fDeltaZoom);
    1855       updateQWidget();
    1856     }
     1823  }
    18571824  holdKeyEvent = false;
    18581825}
     
    18811848}
    18821849*/
     1850#endif
Note: See TracChangeset for help on using the changeset viewer.