- Timestamp:
- Jan 11, 2008, 5:21:44 PM (17 years ago)
- Location:
- trunk/geant4/visualization/OpenGL
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/geant4/visualization/OpenGL/include/G4OpenGLQtViewer.hh
r678 r681 103 103 QMenu *fContextMenu; 104 104 #endif 105 enum mouseActions {ROTATE, MOVE, ZOOM };105 enum mouseActions {ROTATE, MOVE, ZOOM, PICK}; 106 106 mouseActions fMouseAction; // 1: rotate 0:move 107 107 QPoint lastPos; … … 110 110 QPopupMenu *fMouseMove; 111 111 QPopupMenu *fMouseZoom; 112 QPopupMenu *fMousePick; 112 113 QPopupMenu *fDrawingWireframe; 113 114 QPopupMenu *fDrawingLineRemoval; … … 118 119 QAction *fMouseMove; 119 120 QAction *fMouseZoom; 121 QAction *fMousePick; 120 122 QAction *fDrawingWireframe; 121 123 QAction *fDrawingLineRemoval; … … 128 130 void actionMouseMove(); 129 131 void actionMouseZoom(); 132 void actionMousePick(); 130 133 void actionDrawingWireframe(); 131 134 void actionDrawingLineRemoval(); -
trunk/geant4/visualization/OpenGL/src/G4OpenGLQtViewer.cc
r678 r681 339 339 fMouseZoom->setCheckable(true); 340 340 341 fMousePick = new QPopupMenu(mMouseAction); 342 mMouseAction->insertItem("&Pick",fMousePick); 343 fMousePick->setCheckable(true); 344 341 345 #else 342 346 // === Mouse menu === … … 350 354 fMouseZoom = mMouseAction->addAction("Zoom"); 351 355 fMouseZoom->setCheckable(true); 356 357 fMousePick = mMouseAction->addAction("Pick"); 358 fMousePick->setCheckable(true); 352 359 #endif 353 360 … … 371 378 SLOT(actionMouseZoom())); 372 379 380 QObject ::connect(fMousePick, 381 SIGNAL(activated(int)), 382 this, 383 SLOT(actionMousePick())); 384 373 385 #else 374 386 fMouseRotate->setChecked(true); … … 388 400 this, 389 401 SLOT(actionMouseZoom())); 402 403 QObject ::connect(fMousePick, 404 SIGNAL(triggered(bool)), 405 this, 406 SLOT(actionMousePick())); 390 407 #endif 391 408 … … 835 852 836 853 /** 854 Slot activate when mouseAction->pick menu is set 855 */ 856 void G4OpenGLQtViewer::actionMouseZoom() { 857 #ifdef GEANT4_QT_DEBUG 858 printf("G4OpenGLQtViewer::actionMouseZoom \n"); 859 #endif 860 emit toggleMouseAction(ZOOM); 861 } 862 863 /** 837 864 Slot activate when mouseAction->zoom menu is set 838 865 */ 839 void G4OpenGLQtViewer::actionMouse Zoom() {840 #ifdef GEANT4_QT_DEBUG 841 printf("G4OpenGLQtViewer::actionMouse Zoom\n");842 #endif 843 emit toggleMouseAction( ZOOM);866 void G4OpenGLQtViewer::actionMousePick() { 867 #ifdef GEANT4_QT_DEBUG 868 printf("G4OpenGLQtViewer::actionMousePick \n"); 869 #endif 870 emit toggleMouseAction(PICK); 844 871 } 845 872 … … 879 906 void G4OpenGLQtViewer::toggleMouseAction(mouseActions aAction) { 880 907 881 882 #ifdef GEANT4_QT_DEBUG883 printf("G4OpenGLQtViewer::toggleMouseAction **** \n");884 #endif885 908 if (aAction == ROTATE) { 886 #ifdef GEANT4_QT_DEBUG887 printf("G4OpenGLQtViewer::toggleMouseAction ROTATE \n");888 #endif889 909 #if QT_VERSION < 0x040000 890 910 fMouseRotate->setItemChecked (0,true); 891 911 fMouseMove->setItemChecked (0,false); 892 912 fMouseZoom->setItemChecked (0,false); 913 fMousePick->setItemChecked (0,false); 893 914 #else 894 915 fMouseRotate->setChecked (true); 895 916 fMouseMove->setChecked (false); 896 917 fMouseZoom->setChecked (false); 918 fMousePick->setChecked (false); 897 919 #endif 898 920 fMouseAction = ROTATE; 921 fVP.SetPicking(false); 899 922 } else if (aAction == MOVE) { 900 #ifdef GEANT4_QT_DEBUG901 printf("G4OpenGLQtViewer::toggleMouseAction MOVE \n");902 #endif903 923 #if QT_VERSION < 0x040000 904 924 fMouseRotate->setItemChecked (0,false); 905 925 fMouseMove->setItemChecked (0,true); 906 926 fMouseZoom->setItemChecked (0,false); 927 fMousePick->setItemChecked (0,false); 907 928 #else 908 929 fMouseRotate->setChecked (false); 909 930 fMouseMove->setChecked (true); 910 931 fMouseZoom->setChecked (false); 932 fMousePick->setChecked (false); 911 933 #endif 912 934 fMouseAction = MOVE; 935 fVP.SetPicking(false); 913 936 } else if (aAction == ZOOM) { 914 #ifdef GEANT4_QT_DEBUG915 printf("G4OpenGLQtViewer::toggleMouseAction ZOOM \n");916 #endif917 937 #if QT_VERSION < 0x040000 918 938 fMouseRotate->setItemChecked (0,false); 919 939 fMouseMove->setItemChecked (0,false); 920 940 fMouseZoom->setItemChecked (0,true); 941 fMousePick->setItemChecked (0,false); 921 942 #else 922 943 fMouseRotate->setChecked (false); 923 944 fMouseMove->setChecked (false); 924 945 fMouseZoom->setChecked (true); 946 fMousePick->setChecked (false); 925 947 #endif 926 948 fMouseAction = ZOOM; 927 } 928 929 #ifdef GEANT4_QT_DEBUG 930 printf("G4OpenGLQtViewer::toggleMouseAction\n"); 931 #endif 949 fVP.SetPicking(false); 950 } else if (aAction == PICK) { 951 #if QT_VERSION < 0x040000 952 fMouseRotate->setItemChecked (0,false); 953 fMouseMove->setItemChecked (0,false); 954 fMouseZoom->setItemChecked (0,false); 955 fMousePick->setItemChecked (0,true); 956 #else 957 fMouseRotate->setChecked (false); 958 fMouseMove->setChecked (false); 959 fMouseZoom->setChecked (false); 960 fMousePick->setChecked (true); 961 #endif 962 fVP.SetPicking(true); 963 fMouseAction = PICK; 964 } 965 932 966 } 933 967 /** … … 1317 1351 { 1318 1352 lastPos = p; 1353 if (fMouseAction == PICK){ // pick 1354 Pick(p.x(),p.y()); 1355 } 1319 1356 } 1320 1357 … … 1394 1431 } 1395 1432 } else if (fMouseAction == MOVE){ // move 1433 if (mButtons & Qt::LeftButton) { 1396 1434 1397 float dx = pos_x - lastPos.x(); 1398 float dy = pos_y - lastPos.y(); 1399 1400 G4Point3D stp 1401 = GetSceneHandler()->GetScene()->GetStandardTargetPoint(); 1402 1403 G4Point3D tp = stp + fVP.GetCurrentTargetPoint (); 1404 1405 const G4Vector3D& upVector = fVP.GetUpVector (); 1406 const G4Vector3D& vpVector = fVP.GetViewpointDirection (); 1407 1408 G4Vector3D unitRight = (upVector.cross (vpVector)).unit(); 1409 G4Vector3D unitUp = (vpVector.cross (unitRight)).unit(); 1410 1411 tp += -dx * unitRight + dy * unitUp; 1412 fVP.SetCurrentTargetPoint (tp - stp); 1413 1414 updateQWidget(); 1435 float dx = pos_x - lastPos.x(); 1436 float dy = pos_y - lastPos.y(); 1437 1438 G4Point3D stp 1439 = GetSceneHandler()->GetScene()->GetStandardTargetPoint(); 1440 1441 G4Point3D tp = stp + fVP.GetCurrentTargetPoint (); 1442 1443 const G4Vector3D& upVector = fVP.GetUpVector (); 1444 const G4Vector3D& vpVector = fVP.GetViewpointDirection (); 1445 1446 G4Vector3D unitRight = (upVector.cross (vpVector)).unit(); 1447 G4Vector3D unitUp = (vpVector.cross (unitRight)).unit(); 1448 1449 tp += -dx * unitRight + dy * unitUp; 1450 fVP.SetCurrentTargetPoint (tp - stp); 1451 1452 updateQWidget(); 1453 } 1415 1454 } else if (fMouseAction == ZOOM){ // zoom 1416 1455 if (mButtons & Qt::LeftButton) { 1417 Pick(pos_x,pos_y);1418 1456 G4cerr << "Zoom not implemented for the moment\n" << G4endl; 1419 }1420 } else if (fMouseAction == MOVE){ // pick1421 if (mButtons & Qt::LeftButton) {1422 Pick(pos_x,pos_y);1423 1457 } 1424 1458 }
Note: See TracChangeset
for help on using the changeset viewer.