int GLWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QGLWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: clicked(); break; case 1: selectedRobot(); break; case 2: closeSignal((*reinterpret_cast< bool(*)>(_a[1]))); break; case 3: toggleFullScreen((*reinterpret_cast< bool(*)>(_a[1]))); break; case 4: robotTurnedOnOff((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break; case 5: moveRobot(); break; case 6: resetRobot(); break; case 7: selectRobot(); break; case 8: moveCurrentRobot(); break; case 9: resetCurrentRobot(); break; case 10: moveBall(); break; case 11: changeCameraMode(); break; case 12: yellowRobotsMenuTriggered((*reinterpret_cast< QAction*(*)>(_a[1]))); break; case 13: blueRobotsMenuTriggered((*reinterpret_cast< QAction*(*)>(_a[1]))); break; case 14: switchRobotOnOff(); break; case 15: moveRobotHere(); break; case 16: moveBallHere(); break; case 17: lockCameraToRobot(); break; case 18: lockCameraToBall(); break; default: ; } _id -= 19; } return _id; }
PGL_USING_NAMESPACE TOOLS_USING_NAMESPACE /* ----------------------------------------------------------------------- */ ViewCameraMenu::ViewCameraMenu(ViewCameraGL * camera,QWidget * parent, const char * name): QMenu(parent) { if(name)setObjectName(name); QPixmap home(ViewerIcon::getPixmap(ViewerIcon::home)); QPixmap read(ViewerIcon::getPixmap(ViewerIcon::fileopen)); QPixmap save(ViewerIcon::getPixmap(ViewerIcon::filefloppy)); QPixmap persp(ViewerIcon::getPixmap(ViewerIcon::perspective)); QPixmap ortho(ViewerIcon::getPixmap(ViewerIcon::orthographic)); QPixmap linked(ViewerIcon::getPixmap(ViewerIcon::linked)); QPixmap eyef(ViewerIcon::getPixmap(ViewerIcon::eyef)); QAction * action = addAction(home,tr("Home"), camera,SLOT(home()), Qt::CTRL+Qt::Key_I); addAction(tr("&Front View (YZ)"),camera,SLOT(YZView())); addAction(tr("&Right View (XZ)"),camera,SLOT(XZView())); addAction(tr("&Top View (XY)"), camera,SLOT(XYView())); addSeparator(); QMenu * __coordMenu = new QMenu(this); idGEOMcoord = __coordMenu->addAction(tr("GEOM System"), camera,SLOT(setGEOMCoordSys())); idGLcoord = __coordMenu->addAction(tr("GL System"), camera,SLOT(setGLCoordSys())); __coordMenu->addSeparator(); __coordMenu->addAction(tr("&Change"), camera,SLOT(changeCoordSys())); idGEOMcoord->setCheckable(true); idGLcoord->setCheckable(true); setCoordSys(camera->getCoordSys()); __coordMenu->setTitle(tr("Coordinates System")); addMenu(__coordMenu); addSeparator(); QMenu * __projectionMenu = new QMenu(this); idPerspective = __projectionMenu->addAction(persp,tr("&Perspective"), camera,SLOT(setPerspectiveMode())); idOrtho = __projectionMenu->addAction(ortho,tr("Ort&hographic"), camera,SLOT(setOrthographicMode())); __projectionMenu->addSeparator(); __projectionMenu->addAction(tr("&Change"), camera,SLOT(changeCameraMode()),Qt::CTRL+Qt::Key_D); idPerspective->setCheckable(true); idOrtho->setCheckable(true); __projectionMenu->setTitle(tr("Projection")); addMenu(__projectionMenu); setProjectionMode(camera->getProjectionMode()); QObject::connect(camera,SIGNAL(projectionChanged(bool)),this,SLOT(setProjectionMode(bool))); QObject::connect(camera,SIGNAL(coordSysChanged(int)),this,SLOT(setCoordSys(int))); addSeparator(); addAction(save,tr("&Save"), camera,SLOT(save())); addAction(read,tr("&Read"), camera,SLOT(read())); addSeparator(); QAction * idLock = addAction(linked,tr("&Auto Fit to Window"), camera,SLOT(lockDim())); if(camera)idLock->setChecked(camera->isDimLock()); QObject::connect(camera,SIGNAL(lockDimChanged(bool)),idLock,SLOT(setChecked(bool))); addAction(eyef,tr("&Fit to Window"), camera,SLOT(reDim())); }
void ViewCameraGL::fillToolBar(QToolBar * toolBar) { QPixmap home(ViewerIcon::getPixmap(ViewerIcon::home)); QPixmap persp(ViewerIcon::getPixmap(ViewerIcon::perspective)); QPixmap eye(ViewerIcon::getPixmap(ViewerIcon::eye)); QPixmap eyef(ViewerIcon::getPixmap(ViewerIcon::eyef)); drawArrow(&eye,2); QBitmap mask=eye.mask(); drawArrow(&mask,2); QAction * bt = toolBar->addAction(home,tr("Home Position"),this, SLOT(home())); bt->setWhatsThis(tr("<b>Home Position</b><br><br>" "Set the view to the Initial Position.<br>" "You can also use Menu <br><b>Tools > Camera > Home</b><br>")); bt = toolBar->addAction(eye,tr("Camera Position")); QMenu * selctmenu = new QMenu(toolBar); selctmenu->addAction(tr("Front View (YZ)"),this,SLOT(YZView())); selctmenu->addAction(tr("Right View (XZ)"),this,SLOT(XZView())); selctmenu->addAction(tr("Top View (XY)"),this,SLOT(XYView())); bt->setMenu(selctmenu); // bt2->setPopupDelay(0); bt = toolBar->addAction(eyef,tr("Fit to Window"),this, SLOT(reDim())); bt->setWhatsThis(tr("<b>Fit to Window</b><br><br>" "Set the view to fit the scene.<br>" "You can also use Menu <br><b>Tools > Camera > Fit to Window</b><br>")); bt = toolBar->addAction(persp,tr("Perspective Camera"), this, SLOT(changeCameraMode())); bt->setWhatsThis(tr("<b>Projection</b><br><br>" "Camera can be <b>Perspective</b> or <b>Orthographic</b>.<br><br>" "Setting this button <i>On</i> make the camera in Perspective mode, " "<i>Off</i> in Orthographic mode<br><br>" "You can also use Menu <br><b>Tools > Camera > Projection</b><br>" )); bt->setCheckable(true) ; bt->setChecked(__projectionmode); QObject::connect(this,SIGNAL(projectionChanged(bool)),bt,SLOT(setChecked(bool))); toolBar->addSeparator(); }
void Viewer::keyPressedEvent(sf::Event& e) { switch (e.key.code) { case sf::Keyboard::C: changeCameraMode(); break; case sf::Keyboard::F1: m_helpDisplayed = !m_helpDisplayed; break; case sf::Keyboard::F2: takeScreenshot(); break; case sf::Keyboard::F3: reloadShaderPrograms(); break; case sf::Keyboard::F4: if( m_animationIsStarted ) stopAnimation(); else startAnimation(); break; case sf::Keyboard::F5: resetAnimation(); for(RenderablePtr r : m_renderables) r->keyPressedEvent(e); break; case sf::Keyboard::W: if( e.key.control ) m_applicationRunning = false; break; case sf::Keyboard::Q: keyboard.left = true; keyboard.direction.x = -1; break; case sf::Keyboard::S: keyboard.backward = true; keyboard.direction.z = -1; break; case sf::Keyboard::D: keyboard.right = true; keyboard.direction.x = 1; break; case sf::Keyboard::Z: keyboard.forward = true; keyboard.direction.z = 1; break; case sf::Keyboard::Space: keyboard.fast = true; break; case sf::Keyboard::LShift: keyboard.slow = true; break; default: for(RenderablePtr r : m_renderables) r->keyPressedEvent(e); break; } }
GLWidget::GLWidget(QWidget *parent,ConfigWidget* _cfg) : QGLWidget(parent) { frames = 0; state = 0; first_time = true; cfg = _cfg; forms[0] = new RobotsFomation(-1); //outside forms[1] = new RobotsFomation(-2); //outside forms[2] = new RobotsFomation(1); //inside type 1 forms[3] = new RobotsFomation(2); //inside type 2 forms[4] = new RobotsFomation(3); //inside type 1 forms[5] = new RobotsFomation(4); //inside type 2 ssl = new SSLWorld(this,cfg,forms[2],forms[2]); Current_robot = 0; Current_team = 0; cammode = 0; setMouseTracking(true); blueRobotsMenu = new QMenu("&Blue Robots"); yellowRobotsMenu = new QMenu("&Yellow Robots"); blueRobotsMenu->addAction(tr("Put all inside with formation 1")); blueRobotsMenu->addAction(tr("Put all inside with formation 2")); blueRobotsMenu->addAction(tr("Put all outside")); blueRobotsMenu->addAction(tr("Put all out of field")); yellowRobotsMenu->addAction(tr("Put all inside with formation 1")); yellowRobotsMenu->addAction(tr("Put all inside with formation 2")); yellowRobotsMenu->addAction(tr("Put all outside")); yellowRobotsMenu->addAction(tr("Put all out of field")); robpopup = new QMenu(this); moveRobotAct = new QAction(tr("&Locate robot"),this); selectRobotAct = new QAction(tr("&Select robot"),this); resetRobotAct = new QAction(tr("&Reset robot"),this); onOffRobotAct = new QAction(tr("Turn &off"),this); lockToRobotAct = new QAction(tr("Loc&k camera to this robot"),this); robpopup->addAction(moveRobotAct); robpopup->addAction(resetRobotAct); robpopup->addAction(onOffRobotAct); robpopup->addAction(lockToRobotAct); robpopup->addMenu(blueRobotsMenu); robpopup->addMenu(yellowRobotsMenu); moveBallAct = new QAction(tr("&Locate ball"),this); lockToBallAct = new QAction(tr("Loc&k camera to ball"),this); ballpopup = new QMenu(this); ballpopup->addAction(moveBallAct); ballpopup->addAction(lockToBallAct); moveRobotHereAct = new QAction(tr("Locate current &robot here"),this); moveBallHereAct = new QAction(tr("Locate &ball here"),this); mainpopup = new QMenu(this); mainpopup->addAction(moveBallHereAct); mainpopup->addAction(moveRobotHereAct); cameraMenu = new QMenu("&Camera"); changeCamModeAct=new QAction(tr("Change &mode"),this); changeCamModeAct->setShortcut(QKeySequence("C")); cameraMenu->addAction(changeCamModeAct); cameraMenu->addAction(lockToRobotAct); cameraMenu->addAction(lockToBallAct); mainpopup->addMenu(cameraMenu); mainpopup->addMenu(blueRobotsMenu); mainpopup->addMenu(yellowRobotsMenu); connect(moveRobotAct, SIGNAL(triggered()), this, SLOT(moveRobot())); connect(selectRobotAct, SIGNAL(triggered()), this, SLOT(selectRobot())); connect(resetRobotAct, SIGNAL(triggered()), this, SLOT(resetRobot())); connect(moveBallAct, SIGNAL(triggered()), this, SLOT(moveBall())); connect(onOffRobotAct, SIGNAL(triggered()), this, SLOT(switchRobotOnOff())); connect(yellowRobotsMenu,SIGNAL(triggered(QAction*)),this,SLOT(yellowRobotsMenuTriggered(QAction*))); connect(blueRobotsMenu,SIGNAL(triggered(QAction*)),this,SLOT(blueRobotsMenuTriggered(QAction*))); connect(moveBallHereAct, SIGNAL(triggered()),this , SLOT(moveBallHere())); connect(moveRobotHereAct, SIGNAL(triggered()),this , SLOT(moveRobotHere())); connect(lockToRobotAct, SIGNAL(triggered()), this, SLOT(lockCameraToRobot())); connect(lockToBallAct, SIGNAL(triggered()), this, SLOT(lockCameraToBall())); connect(changeCamModeAct,SIGNAL(triggered()),this,SLOT(changeCameraMode())); setFocusPolicy(Qt::StrongFocus); fullScreen = false; ctrl = false; alt = false; kickingball = false; kickpower = 3.0; }