Changeset 707 for trunk/geant4/visualization/OpenGL
- Timestamp:
- Feb 1, 2008, 6:02:42 PM (17 years ago)
- Location:
- trunk/geant4/visualization/OpenGL
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/geant4/visualization/OpenGL/include/G4OpenGLQtViewer.hh
r704 r707 108 108 QMenu *fContextMenu; 109 109 #endif 110 enum mouseActions {STYLE1,STYLE2,STYLE3 ,STYLE4};111 mouseActions fMouseAction; // 1: rotate 0:move110 enum mouseActions {STYLE1,STYLE2,STYLE3}; 111 mouseActions fMouseAction; // 1: rotate 2:zoom 3:pick 112 112 QPoint fLastPos; 113 113 /** delta of scene translation. This delta is put in % of the scene view */ … … 119 119 #if QT_VERSION < 0x040000 120 120 QPopupMenu *fMouseRotate; 121 QPopupMenu *fMouseMove;122 QPopupMenu *fMouseZoom;123 121 QPopupMenu *fMousePick; 122 QPopupMenu *fMouseShortcuts; 124 123 QPopupMenu *fDrawingWireframe; 125 124 QPopupMenu *fDrawingLineRemoval; … … 128 127 #else 129 128 QAction *fMouseRotate; 130 QAction *fMouseMove;131 QAction *fMouseZoom;132 129 QAction *fMousePick; 130 QAction *fMouseShortcuts; 133 131 QAction *fDrawingWireframe; 134 132 QAction *fDrawingLineRemoval; … … 139 137 private slots : 140 138 void actionMouseRotate(); 141 void actionMouseMove();142 void actionMouseZoom();143 139 void actionMousePick(); 140 void actionMouseShortcuts(); 144 141 void actionDrawingWireframe(); 145 142 void actionDrawingLineRemoval(); -
trunk/geant4/visualization/OpenGL/src/G4OpenGLQtViewer.cc
r704 r707 36 36 #ifdef G4VIS_BUILD_OPENGLQT_DRIVER 37 37 38 //#define GEANT4_QT_DEBUG38 #define GEANT4_QT_DEBUG 39 39 40 40 #include "G4OpenGLQtViewer.hh" … … 287 287 ,fMouseAction(STYLE1) 288 288 ,fDeltaSceneTranslation(1/100) 289 ,fDeltaZoom( 2)289 ,fDeltaZoom(1.1) 290 290 ,holdKeyEvent(false) 291 291 { … … 334 334 fMouseRotate->setCheckable(true); 335 335 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 344 336 fMousePick = new QPopupMenu(mMouseAction); 345 337 mMouseAction->insertItem("&Pick",fMousePick); 346 338 fMousePick->setCheckable(true); 347 339 340 fMouseShortcuts = new QPopupMenu(mMouseAction); 341 mMouseAction->insertItem("&Show Shortcuts",fMouseShortcuts); 342 fMouseShortcuts->setCheckable(true); 343 348 344 #else 349 345 // === Mouse menu === … … 352 348 fMouseRotate->setCheckable(true); 353 349 354 fMouseMove = mMouseAction->addAction("Move");355 fMouseMove->setCheckable(true);356 357 fMouseZoom = mMouseAction->addAction("Zoom");358 fMouseZoom->setCheckable(true);359 360 350 fMousePick = mMouseAction->addAction("Pick"); 361 351 fMousePick->setCheckable(true); 352 353 fMouseShortcuts = mMouseAction->addAction("Show Shortcuts"); 354 fMouseShortcuts->setCheckable(true); 362 355 #endif 363 356 … … 371 364 SLOT(actionMouseRotate())); 372 365 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 383 366 QObject ::connect(fMousePick, 384 367 SIGNAL(activated(int)), … … 386 369 SLOT(actionMousePick())); 387 370 371 QObject ::connect(fMouseShortcuts, 372 SIGNAL(activated(int)), 373 this, 374 SLOT(actionMouseShortcuts())); 375 388 376 #else 389 377 fMouseRotate->setChecked(true); … … 394 382 SLOT(actionMouseRotate())); 395 383 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 406 384 QObject ::connect(fMousePick, 407 385 SIGNAL(triggered(bool)), 408 386 this, 409 387 SLOT(actionMousePick())); 388 389 QObject ::connect(fMouseShortcuts, 390 SIGNAL(triggered(bool)), 391 this, 392 SLOT(actionMouseShortcuts())); 410 393 #endif 411 394 … … 847 830 } 848 831 849 /**850 Slot activate when mouseAction->move menu is set851 */852 void G4OpenGLQtViewer::actionMouseMove() {853 emit toggleMouseAction(STYLE2);854 }855 856 /**857 Slot activate when mouseAction->pick menu is set858 */859 void G4OpenGLQtViewer::actionMouseZoom() {860 #ifdef GEANT4_QT_DEBUG861 printf("G4OpenGLQtViewer::actionMouseZoom \n");862 #endif863 emit toggleMouseAction(STYLE3);864 }865 832 866 833 /** … … 871 838 printf("G4OpenGLQtViewer::actionMousePick \n"); 872 839 #endif 873 emit toggleMouseAction(STYLE4); 840 emit toggleMouseAction(STYLE3); 841 } 842 843 /** 844 Slot activate when mouseAction->zoom menu is set 845 */ 846 void G4OpenGLQtViewer::actionMouseShortcuts() { 847 #ifdef GEANT4_QT_DEBUG 848 printf("G4OpenGLQtViewer::actionMouseShortcuts \n"); 849 #endif 850 emit toggleMouseAction(STYLE3); 874 851 } 875 852 … … 909 886 void G4OpenGLQtViewer::toggleMouseAction(mouseActions aAction) { 910 887 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; 916 895 G4cout << "Press +/- to zoom into volume\n" << G4endl; 917 896 #if QT_VERSION < 0x040000 918 897 fMouseRotate->setItemChecked (0,true); 919 fMouseMove->setItemChecked (0,false);920 fMouseZoom->setItemChecked (0,false);921 898 fMousePick->setItemChecked (0,false); 899 fMouseShortcuts->setItemChecked (0,false); 922 900 #else 923 901 fMouseRotate->setChecked (true); 924 fMouseMove->setChecked (false);925 fMouseZoom->setChecked (false);926 902 fMousePick->setChecked (false); 903 fMouseShortcuts->setChecked (false); 927 904 #endif 928 905 fMouseAction = STYLE1; 929 906 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; 932 909 #if QT_VERSION < 0x040000 933 910 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); 936 921 fMousePick->setItemChecked (0,false); 922 fMouseShortcuts->setItemChecked (0,true); 937 923 #else 938 924 fMouseRotate->setChecked (false); 939 fMouseMove->setChecked (true);940 fMouseZoom->setChecked (false);941 925 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); 957 927 #endif 958 928 fMouseAction = STYLE3; 959 929 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; 974 938 } 975 939 … … 1392 1356 { 1393 1357 fLastPos = p; 1394 if (fMouseAction == STYLE 4){ // pick1358 if (fMouseAction == STYLE2){ // pick 1395 1359 Pick(p.x(),p.y()); 1396 1360 } … … 1416 1380 G4MouseRotateEvent(dx,dy); 1417 1381 } 1418 } else if (fMouseAction == STYLE2){ // move1419 if (mButtons & Qt::LeftButton) {1420 G4MouseMoveEvent(dx,dy,0);1421 }1422 } else if (fMouseAction == STYLE3){ // zoom1423 if (mButtons & Qt::LeftButton) {1424 G4cerr << "Zoom not implemented for the moment\n" << G4endl;1425 }1426 1382 } 1427 1383 fLastPos = QPoint(pos_x, pos_y); … … 1435 1391 void G4OpenGLQtViewer::G4MouseMoveEvent(int dx, int dy, int dz) 1436 1392 { 1393 int deltaX = 1394 GLenum clip = glGet(GL_CLIP_PLANE); 1395 int deltaY = ; 1396 1397 1437 1398 G4Point3D stp 1438 1399 = GetSceneHandler()->GetScene()->GetStandardTargetPoint(); … … 1809 1770 } 1810 1771 1811 #endif1812 1772 1813 1773 void G4OpenGLQtViewer::G4keyPressEvent (QKeyEvent * event) … … 1818 1778 holdKeyEvent = true; 1819 1779 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 } 1820 1798 if (event->key() == Qt::Key_Escape) { // escaped from full screen 1821 1799 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 1833 1812 G4MouseMoveEvent(0,1,0); 1834 1813 } 1835 else if (event->key() == Qt::Key_Up) // go up 1836 { 1814 else if (event->key() == Qt::Key_Up) { // go up 1837 1815 G4MouseMoveEvent(0,-1,0); 1838 1816 } 1839 else if (event->key() == Qt::Key_Left) // go left 1840 { 1817 if (event->key() == Qt::Key_Left) { // go left 1841 1818 G4MouseMoveEvent(-1,0,0); 1842 1819 } 1843 else if (event->key() == Qt::Key_Right) // go right 1844 { 1820 else if (event->key() == Qt::Key_Right) { // go right 1845 1821 G4MouseMoveEvent(1,0,0); 1846 1822 } 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 } 1857 1824 holdKeyEvent = false; 1858 1825 } … … 1881 1848 } 1882 1849 */ 1850 #endif -
trunk/geant4/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc
r704 r707 34 34 #ifdef G4VIS_BUILD_OPENGLQT_DRIVER 35 35 36 //#define GEANT4_QT_DEBUG36 #define GEANT4_QT_DEBUG 37 37 38 38 #include "G4OpenGLStoredQtViewer.hh"
Note: See TracChangeset
for help on using the changeset viewer.