void GL_widget_3::export_to_vector(QString file_name) { if (file_name.toUpper().endsWith(".PS")) setSnapshotFormat("PS"); if (file_name.toUpper().endsWith(".PDF")) setSnapshotFormat("PDF"); saveSnapshot(file_name, true); // something different here }
void CutyCapt::TryDelayedRender() { if (!mPage->getAlertString().isEmpty()) return; if (mDelay > 0) { QTimer::singleShot(mDelay, this, SLOT(Delayed())); return; } saveSnapshot(); QApplication::exit(); }
void Viewer::render_video() { setSnapshotFormat("PNG"); for (int alpha=0 ; alpha <= 100 ; alpha++ ) { emit (valueChanged(alpha)); std::cout<<alpha<<std::endl; QString alpha_str; alpha_str.setNum(alpha); displayMessage(QString("alpha: ") + alpha_str + QString("%"),10000); for (int fr=0 ; fr < 50 ; fr++) { Vec cam = camera()->position(); Vec ori = sceneCenter(); Vec new_cam = next_around_circle(0.01f,cam,ori); camera()->setPosition(new_cam); camera()->lookAt(ori); this->showEntireScene(); saveSnapshot(true); } } }
int QGLViewer::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: viewerInitialized(); break; case 1: drawNeeded(); break; case 2: drawFinished((*reinterpret_cast< bool(*)>(_a[1]))); break; case 3: animateNeeded(); break; case 4: helpRequired(); break; case 5: axisIsDrawnChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; case 6: gridIsDrawnChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; case 7: FPSIsDisplayedChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; case 8: textIsEnabledChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; case 9: cameraIsEditedChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; case 10: stereoChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; case 11: pointSelected((*reinterpret_cast< const QMouseEvent*(*)>(_a[1]))); break; case 12: mouseGrabberChanged((*reinterpret_cast< qglviewer::MouseGrabber*(*)>(_a[1]))); break; case 13: setAxisIsDrawn((*reinterpret_cast< bool(*)>(_a[1]))); break; case 14: setAxisIsDrawn(); break; case 15: setGridIsDrawn((*reinterpret_cast< bool(*)>(_a[1]))); break; case 16: setGridIsDrawn(); break; case 17: setFPSIsDisplayed((*reinterpret_cast< bool(*)>(_a[1]))); break; case 18: setFPSIsDisplayed(); break; case 19: setTextIsEnabled((*reinterpret_cast< bool(*)>(_a[1]))); break; case 20: setTextIsEnabled(); break; case 21: setCameraIsEdited((*reinterpret_cast< bool(*)>(_a[1]))); break; case 22: setCameraIsEdited(); break; case 23: toggleAxisIsDrawn(); break; case 24: toggleGridIsDrawn(); break; case 25: toggleFPSIsDisplayed(); break; case 26: toggleTextIsEnabled(); break; case 27: toggleCameraIsEdited(); break; case 28: setBackgroundColor((*reinterpret_cast< const QColor(*)>(_a[1]))); break; case 29: setForegroundColor((*reinterpret_cast< const QColor(*)>(_a[1]))); break; case 30: setSceneRadius((*reinterpret_cast< float(*)>(_a[1]))); break; case 31: setSceneCenter((*reinterpret_cast< const qglviewer::Vec(*)>(_a[1]))); break; case 32: setSceneBoundingBox((*reinterpret_cast< const qglviewer::Vec(*)>(_a[1])),(*reinterpret_cast< const qglviewer::Vec(*)>(_a[2]))); break; case 33: showEntireScene(); break; case 34: setCamera((*reinterpret_cast< qglviewer::Camera*const(*)>(_a[1]))); break; case 35: setManipulatedFrame((*reinterpret_cast< qglviewer::ManipulatedFrame*(*)>(_a[1]))); break; case 36: setMouseGrabber((*reinterpret_cast< qglviewer::MouseGrabber*(*)>(_a[1]))); break; case 37: setFullScreen((*reinterpret_cast< bool(*)>(_a[1]))); break; case 38: setFullScreen(); break; case 39: setStereoDisplay((*reinterpret_cast< bool(*)>(_a[1]))); break; case 40: setStereoDisplay(); break; case 41: toggleFullScreen(); break; case 42: toggleStereoDisplay(); break; case 43: toggleCameraMode(); break; case 44: saveSnapshot((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break; case 45: saveSnapshot((*reinterpret_cast< bool(*)>(_a[1]))); break; case 46: saveSnapshot(); break; case 47: saveSnapshot((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break; case 48: saveSnapshot((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 49: setSnapshotFileName((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 50: setSnapshotFormat((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 51: setSnapshotCounter((*reinterpret_cast< int(*)>(_a[1]))); break; case 52: setSnapshotQuality((*reinterpret_cast< int(*)>(_a[1]))); break; case 53: { bool _r = openSnapshotFormatDialog(); if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break; case 54: snapshotToClipboard(); break; case 55: copyBufferToTexture((*reinterpret_cast< GLint(*)>(_a[1])),(*reinterpret_cast< GLenum(*)>(_a[2]))); break; case 56: copyBufferToTexture((*reinterpret_cast< GLint(*)>(_a[1]))); break; case 57: setAnimationPeriod((*reinterpret_cast< int(*)>(_a[1]))); break; case 58: startAnimation(); break; case 59: stopAnimation(); break; case 60: animate(); break; case 61: toggleAnimation(); break; case 62: help(); break; case 63: aboutQGLViewer(); break; case 64: select((*reinterpret_cast< const QMouseEvent*(*)>(_a[1]))); break; case 65: select((*reinterpret_cast< const QPoint(*)>(_a[1]))); break; case 66: setSelectBufferSize((*reinterpret_cast< int(*)>(_a[1]))); break; case 67: setSelectRegionWidth((*reinterpret_cast< int(*)>(_a[1]))); break; case 68: setSelectRegionHeight((*reinterpret_cast< int(*)>(_a[1]))); break; case 69: setSelectedName((*reinterpret_cast< int(*)>(_a[1]))); break; case 70: setShortcut((*reinterpret_cast< KeyboardAction(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 71: setKeyboardAccelerator((*reinterpret_cast< KeyboardAction(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 72: setKeyDescription((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break; case 73: setKeyFrameKey((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 74: setPlayKeyFramePathStateKey((*reinterpret_cast< int(*)>(_a[1]))); break; case 75: setPlayPathStateKey((*reinterpret_cast< int(*)>(_a[1]))); break; case 76: setAddKeyFrameStateKey((*reinterpret_cast< int(*)>(_a[1]))); break; case 77: setPathKey((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 78: setPathKey((*reinterpret_cast< int(*)>(_a[1]))); break; case 79: setPlayPathKeyboardModifiers((*reinterpret_cast< QtKeyboardModifiers(*)>(_a[1]))); break; case 80: setAddKeyFrameKeyboardModifiers((*reinterpret_cast< QtKeyboardModifiers(*)>(_a[1]))); break; case 81: setMouseBinding((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< MouseHandler(*)>(_a[2])),(*reinterpret_cast< MouseAction(*)>(_a[3])),(*reinterpret_cast< bool(*)>(_a[4]))); break; case 82: setMouseBinding((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< MouseHandler(*)>(_a[2])),(*reinterpret_cast< MouseAction(*)>(_a[3]))); break; case 83: setWheelBinding((*reinterpret_cast< QtKeyboardModifiers(*)>(_a[1])),(*reinterpret_cast< MouseHandler(*)>(_a[2])),(*reinterpret_cast< MouseAction(*)>(_a[3])),(*reinterpret_cast< bool(*)>(_a[4]))); break; case 84: setWheelBinding((*reinterpret_cast< QtKeyboardModifiers(*)>(_a[1])),(*reinterpret_cast< MouseHandler(*)>(_a[2])),(*reinterpret_cast< MouseAction(*)>(_a[3]))); break; case 85: setHandlerKeyboardModifiers((*reinterpret_cast< MouseHandler(*)>(_a[1])),(*reinterpret_cast< QtKeyboardModifiers(*)>(_a[2]))); break; case 86: setHandlerStateKey((*reinterpret_cast< MouseHandler(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 87: setMouseStateKey((*reinterpret_cast< MouseHandler(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 88: initFromDOMElement((*reinterpret_cast< const QDomElement(*)>(_a[1]))); break; case 89: saveStateToFile(); break; case 90: { bool _r = restoreStateFromFile(); if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break; case 91: setStateFileName((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 92: saveToFile((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 93: saveToFile(); break; case 94: { bool _r = restoreFromFile((*reinterpret_cast< const QString(*)>(_a[1]))); if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break; case 95: { bool _r = restoreFromFile(); if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break; case 96: resetVisualHints(); break; case 97: delayedFullScreen(); break; case 98: hideMessage(); break; default: ; } _id -= 99; } return _id; }
void MainWindow::createMenus() { QAction* action; QString name; QMenu* menu; QMenu* subMenu; // ----- File Menu ----- menu = menuBar()->addMenu("File"); name = "About"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(showAbout())); name = "New Molecule"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(newMoleculeMenu())); action->setShortcut(QKeySequence::New); name = "New Viewer"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(newViewer())); name = "Open"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(openFile())); action->setShortcut(QKeySequence::Open); name = "Open Recent"; m_recentFilesMenu = menu->addMenu(name); updateRecentFilesMenu(); menu->addSeparator(); /* name = "Parse Test File"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(parseFile())); menu->addSeparator(); */ name = "Close Viewer"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(close())); action->setShortcut(QKeySequence::Close); name = "Save"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(saveAll())); action->setShortcut(QKeySequence::Save); name = "Save As"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(saveAs())); action->setShortcut(Qt::SHIFT + Qt::CTRL + Qt::Key_S); menu->addSeparator(); name = "Save Picture"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewer, SLOT(saveSnapshot())); action->setShortcut(Qt::CTRL + Qt::Key_P); name = "Record Animation"; action = menu->addAction(name); action->setCheckable(true); action->setChecked(false); connect(action, SIGNAL(triggered()), this, SLOT(toggleRecordingActive())); action->setShortcut(Qt::SHIFT + Qt::CTRL + Qt::Key_P); m_recordAnimationAction = action; name = "Show Message Log"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(showLogMessages())); action->setShortcut(Qt::CTRL + Qt::Key_L); name = "Quit"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(quit())); action->setShortcut(Qt::CTRL + Qt::Key_Q); // ----- Edit Menu ----- menu = menuBar()->addMenu("Edit"); name = "Undo"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_undoStack, SLOT(undo())); action->setShortcut(QKeySequence::Undo); connect(&m_undoStack, SIGNAL(canUndoChanged(bool)), action, SLOT(setEnabled(bool))); name = "Redo"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_undoStack, SLOT(redo())); action->setShortcut(QKeySequence::Redo); connect(&m_undoStack, SIGNAL(canRedoChanged(bool)), action, SLOT(setEnabled(bool))); menu->addSeparator(); name = "Cut"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(cutSelection())); action->setShortcut(Qt::CTRL + Qt::Key_X); name = "Copy"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(copySelectionToClipboard())); action->setShortcut(Qt::CTRL + Qt::Key_C); name = "Paste"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(pasteSelectionFromClipboard())); action->setShortcut(Qt::CTRL + Qt::Key_V); menu->addSeparator(); name = "Select All"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(selectAll())); action->setShortcut(Qt::CTRL + Qt::Key_A); name = "Select None"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SIGNAL(clearSelection())); action->setShortcut(Qt::SHIFT + Qt::CTRL + Qt::Key_A); name = "Invert Selection"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(invertSelection())); action->setShortcut(Qt::CTRL + Qt::Key_I); menu->addSeparator(); name = "Reindex Atoms"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(reindexAtoms())); menu->addSeparator(); name = "Preferences"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(showPreferences())); // ----- Display Menu ----- menu = menuBar()->addMenu("Display"); name = "Full Screen"; action = menu->addAction(name); action->setCheckable(true); action->setChecked(false); connect(action, SIGNAL(triggered()), this, SLOT(fullScreen())); action->setShortcut(Qt::CTRL + Qt::Key_0); m_fullScreenAction = action; name = "Reset View"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewer, SLOT(resetView())); action->setShortcut(Qt::CTRL + Qt::Key_R); name = "Show Axes"; action = menu->addAction(name); action->setCheckable(true); action->setChecked(false); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(toggleAxes())); connect(&m_viewerModel, SIGNAL(axesOn(bool)), action, SLOT(setChecked(bool))); action->setShortcut(Qt::Key_A); menu->addSeparator(); name = "Atom Labels"; subMenu = menu->addMenu(name); name = "Element"; action = subMenu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(setLabel())); action->setData(Layer::Atom::Element); action->setShortcut(Qt::Key_E); action->setCheckable(true); m_labelActions << action; name = "Index"; action = subMenu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(setLabel())); action->setData(Layer::Atom::Index); action->setShortcut(Qt::Key_I); action->setCheckable(true); m_labelActions << action; name = "Mass"; action = subMenu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(setLabel())); action->setData(Layer::Atom::Mass); action->setShortcut(Qt::Key_M); action->setCheckable(true); m_labelActions << action; /* name = "NMR Shifts"; action = subMenu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(setLabel())); action->setData(Layer::Atom::NmrShifts); action->setShortcut(Qt::Key_N); action->setCheckable(true); m_labelActions << action; */ name = "Partial Charge"; action = subMenu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(setLabel())); action->setData(Layer::Atom::Charge); action->setShortcut(Qt::Key_Q); action->setCheckable(true); m_labelActions << action; name = "Spin Densities"; action = subMenu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(setLabel())); action->setData(Layer::Atom::Spin); action->setShortcut(Qt::Key_S); action->setCheckable(true); m_labelActions << action; menu->addSeparator(); name = "Configure Appearance"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(configureAppearance())); // These are not working correctly at the moment. /* name = "Partial Charge Type"; QActionGroup* partialChargeGroup = new QActionGroup(this); subMenu = menu->addMenu(name); QString pc("Gasteiger"); action = subMenu->addAction(pc); action->setCheckable(true); action->setChecked(true); action->setData(pc); partialChargeGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setPartialChargeType())); pc = "Sanderson"; action = subMenu->addAction(pc); action->setCheckable(true); action->setData(pc); partialChargeGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setPartialChargeType())); pc = "Mulliken"; action = subMenu->addAction(pc); action->setCheckable(true); action->setData(pc); partialChargeGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setPartialChargeType())); */ // ----- Build Menu ----- menu = menuBar()->addMenu("Build"); name = "Fill Valencies With Hydrogens"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(addHydrogens())); action->setShortcut(Qt::CTRL + Qt::Key_F); name = "Reperceive Bonds"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(reperceiveBonds())); menu->addSeparator(); name = "Set Constraint"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(setConstraint())); action->setShortcut(Qt::CTRL + Qt::Key_K); name = "Minimize Structure"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(minimizeEnergy())); action->setShortcut(Qt::CTRL + Qt::Key_M); name = "Select Force Field"; QActionGroup* forceFieldGroup = new QActionGroup(this); subMenu = menu->addMenu(name); QString ff("MMFF94"); action = subMenu->addAction(ff); action->setCheckable(true); action->setData(ff); forceFieldGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setForceField())); if (Preferences::DefaultForceField() == ff) action->setChecked(true); ff = "MMFF94s"; action = subMenu->addAction(ff); action->setCheckable(true); action->setData(ff); forceFieldGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setForceField())); if (Preferences::DefaultForceField() == ff) action->setChecked(true); ff = "UFF"; action = subMenu->addAction(ff); action->setCheckable(true); action->setData(ff); forceFieldGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setForceField())); if (Preferences::DefaultForceField() == ff) action->setChecked(true); ff = "Ghemical"; action = subMenu->addAction(ff); action->setCheckable(true); action->setData(ff); forceFieldGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setForceField())); if (Preferences::DefaultForceField() == ff) action->setChecked(true); ff = "Gaff"; action = subMenu->addAction(ff); action->setCheckable(true); action->setData(ff); forceFieldGroup->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(setForceField())); if (Preferences::DefaultForceField() == ff) action->setChecked(true); menu->addSeparator(); name = "Translate To Center"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(translateToCenter())); action->setShortcut(Qt::CTRL + Qt::Key_T ); name = "Symmetrize Molecule"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(symmetrize())); action->setShortcut(Qt::CTRL + Qt::Key_Y ); name = "Set Symmetry Tolerance"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(adjustSymmetryTolerance())); name = "Auto-detect Symmetry"; action = menu->addAction(name); action->setCheckable(true); action->setChecked(false); connect(action, SIGNAL(triggered()), &m_viewerModel, SLOT(toggleAutoDetectSymmetry())); // ----- Calculation Menu ----- menu = menuBar()->addMenu("Calculation"); name = "Q-Chem Setup"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(openQChemUI())); action->setShortcut(Qt::CTRL + Qt::Key_U ); m_qchemSetupAction = action; name = "Job Monitor"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(showProcessMonitor())); action->setShortcut(Qt::CTRL + Qt::Key_J ); menu->addSeparator(); name = "Edit Servers"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(editServers())); name = "Remove All Processes"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), &(ProcessMonitor::instance()), SLOT(clearProcessList())); name = "Reset Password Vault Key"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(setVaultPassword())); // ----- Help Menu ----- menu = menuBar()->addMenu("Help"); name = "Show Help"; action = menu->addAction(name); connect(action, SIGNAL(triggered()), this, SLOT(showHelp())); }
void MainWindow::createConnections() { connect(&m_toolBar, SIGNAL(newMolecule()), &m_viewerModel, SLOT(newMoleculeMenu())); connect(&m_toolBar, SIGNAL(open()), this, SLOT(openFile())); connect(&m_toolBar, SIGNAL(save()), &m_viewerModel, SLOT(saveAll())); connect(&m_toolBar, SIGNAL(addHydrogens()), &m_viewerModel, SLOT(addHydrogens())); connect(&m_toolBar, SIGNAL(minimizeEnergy()), &m_viewerModel, SLOT(minimizeEnergy())); connect(&m_toolBar, SIGNAL(deleteSelection()), &m_viewerModel, SLOT(deleteSelection())); connect(&m_toolBar, SIGNAL(takeSnapshot()), &m_viewer, SLOT(saveSnapshot())); connect(&m_toolBar, SIGNAL(record(bool)), this, SLOT(setRecordingActive(bool))); connect(this, SIGNAL(recordingActive(bool)), &m_toolBar, SLOT(setRecordAnimationButtonChecked(bool))); connect(this, SIGNAL(recordingActive(bool)), &m_viewer, SLOT(setRecordingActive(bool))); connect(&m_viewer, SIGNAL(recordingCancelled()), this, SLOT(recordingCancelled())); connect(&m_toolBar, SIGNAL(fullScreen()), this, SLOT(fullScreen())); connect(&m_toolBar, SIGNAL(showHelp()), this, SLOT(showHelp())); connect(&m_toolBar, SIGNAL(viewerModeChanged(Viewer::Mode const)), &m_viewer, SLOT(setActiveViewerMode(Viewer::Mode const))); connect(&m_toolBar, SIGNAL(buildElementSelected(unsigned int)), &m_viewer, SLOT(setDefaultBuildElement(unsigned int))); connect(&m_toolBar, SIGNAL(buildFragmentSelected(QString const&, Viewer::Mode const)), &m_viewer, SLOT(setDefaultBuildFragment(QString const&, Viewer::Mode const))); // ViewerModel connect(&m_viewerModel, SIGNAL(updated()), &m_viewer, SLOT(updateGL())); connect(&m_viewerView, SIGNAL(doubleClicked(QModelIndex const&)), &m_viewerModel, SLOT(itemDoubleClicked(QModelIndex const&))); connect(&m_viewerView, SIGNAL(expanded(QModelIndex const&)), &m_viewerModel, SLOT(itemExpanded(QModelIndex const&))); connect(&m_viewerModel, SIGNAL(sceneRadiusChanged(double const)), &m_viewer, SLOT(setSceneRadius(double const))); connect(&m_viewerModel, SIGNAL(changeActiveViewerMode(Viewer::Mode const)), &m_viewer, SLOT(setActiveViewerMode(Viewer::Mode const))); connect(&m_viewerModel, SIGNAL(displayMessage(QString const&)), &m_viewer, SLOT(displayMessage(QString const&))); connect(&m_viewerModel, SIGNAL(postCommand(QUndoCommand*)), this, SLOT(addCommand(QUndoCommand*))); connect(&m_viewerModel, SIGNAL(foregroundColorChanged(QColor const&)), &m_viewer, SLOT(setForegroundColor(QColor const&))); connect(&(ProcessMonitor::instance()), SIGNAL(resultsAvailable(JobInfo*)), &m_viewerModel, SLOT(openCalculationResults(JobInfo*))); // Viewer connect(&m_viewer, SIGNAL(enableUpdate(bool const)), &m_viewerModel, SLOT(enableUpdate(bool const))); connect(&m_viewerModel, SIGNAL(pushAnimators(AnimatorList const&)), &m_viewer, SLOT(pushAnimators(AnimatorList const&))); connect(&m_viewerModel, SIGNAL(popAnimators(AnimatorList const&)), &m_viewer, SLOT(popAnimators(AnimatorList const&))); connect(&m_viewer, SIGNAL(postCommand(QUndoCommand*)), this, SLOT(addCommand(QUndoCommand*))); connect(&m_viewer, SIGNAL(openFileFromDrop(QString const&)), this, SLOT(openFile(QString const&))); connect(&m_viewer, SIGNAL(activeViewerModeChanged(Viewer::Mode const)), &m_toolBar, SLOT(setToolBarMode(Viewer::Mode const))); connect(&m_viewer, SIGNAL(escapeFullScreen()), this, SLOT(fullScreen())); connect(&m_viewer, SIGNAL(animationStep()), &m_viewerModel, SLOT(reperceiveBondsForAnimation())); // Selection connect(&m_viewerSelectionModel, SIGNAL(selectionChanged(QItemSelection const&, QItemSelection const&)), &m_viewerModel, SLOT(selectionChanged(QItemSelection const&, QItemSelection const&)) ); connect(&m_viewerModel, SIGNAL(selectionChanged(QItemSelection const&, QItemSelectionModel::SelectionFlags)), &m_viewerSelectionModel, SLOT(select(QItemSelection const&, QItemSelectionModel::SelectionFlags)) ); connect(&m_viewerModel, SIGNAL(clearSelection()), &m_viewerSelectionModel, SLOT(clearSelection())); connect(&m_viewer, SIGNAL(clearSelection()), &m_viewerSelectionModel, SLOT(clearSelection())); connect(&m_viewer, SIGNAL(select(QModelIndex const&, QItemSelectionModel::SelectionFlags)), &m_viewerSelectionModel, SLOT(select(QModelIndex const&, QItemSelectionModel::SelectionFlags))); connect(&m_viewerModel, SIGNAL(select(QModelIndex const&, QItemSelectionModel::SelectionFlags)), &m_viewerSelectionModel, SLOT(select(QModelIndex const&, QItemSelectionModel::SelectionFlags))); }
void PointCloudViewer::draw() { meddleMutex.lock(); if(resetRequested) { reset(); resetRequested = false; } glPushMatrix(); if(animationPlaybackEnabled) { double tm = ros::Time::now().toSec() - animationPlaybackTime; if(tm > kfInt->lastTime()) { animationPlaybackEnabled = false; tm = kfInt->lastTime(); } if(tm < kfInt->firstTime()) tm = kfInt->firstTime(); printf("anim at %.2f (%.2f to %.2f)\n", tm, kfInt->firstTime(), kfInt->lastTime()); kfInt->interpolateAtTime(tm); camera()->frame()->setFromMatrix(kfInt->frame()-> matrix()); double accTime = 0; for(unsigned int i=0;i<animationList.size();i++) { if(tm >= accTime && tm < accTime+animationList[i].duration && animationList[i].isFix) { camera()->frame()->setFromMatrix(animationList[i].frame.matrix()); printf("fixFrameto %d at %.2f (%.2f to %.2f)\n", i, tm, kfInt->firstTime(), kfInt->lastTime()); } accTime += animationList[i].duration; } accTime = 0; AnimationObject* lastAnimObj = 0; for(unsigned int i=0;i<animationList.size();i++) { accTime += animationList[i].duration; if(animationList[i].isSettings && accTime <= tm) lastAnimObj = &(animationList[i]); } if(lastAnimObj != 0) { absDepthVarTH = lastAnimObj->absTH; scaledDepthVarTH = lastAnimObj->scaledTH; minNearSupport = lastAnimObj->neighb; sparsifyFactor = lastAnimObj->sparsity; showKFCameras = lastAnimObj->showKeyframes; showConstraints = lastAnimObj->showLoopClosures; } } if(showCurrentCamera) currentCamDisplay->drawCam(2*lineTesselation, 0); if(showCurrentPointcloud) currentCamDisplay->drawPC(pointTesselation, 1); graphDisplay->draw(); glPopMatrix(); meddleMutex.unlock(); if(saveAllVideo) { double span = ros::Time::now().toSec() - lastRealSaveTime; if(span > 0.4) { setSnapshotQuality(100); printf("saved (img %d @ time %lf, saveHZ %f)!\n", lastCamID, lastAnimTime, 1.0/localMsBetweenSaves); char buf[500]; snprintf(buf,500,"%s%lf.png",save_folder.c_str(), ros::Time::now().toSec()); saveSnapshot(QString(buf)); lastRealSaveTime = ros::Time::now().toSec(); } } }
void AutoMapSaver::checkSave() { // Check if we have a proper map if (!GlobalMap().isValid() || !GlobalMainFrame().screenUpdatesEnabled()) { return; } // greebo: Check if we have a valid main window to grab the pointer wxFrame* mainWindow = GlobalMainFrame().getWxTopLevelWindow(); if (mainWindow == NULL || !mainWindow->IsActive()) { rMessage() << "AutoSaver: Main window not present or not shown on screen, " << "will wait for another period." << std::endl; return; } // Check, if changes have been made since the last autosave if (_changes == GlobalSceneGraph().root()->getUndoChangeTracker().changes()) { return; } // Check if the user is currently pressing a mouse button // Don't start the save if the user is holding a mouse button if (wxGetMouseState().ButtonIsDown(wxMOUSE_BTN_ANY)) { return; } _changes = GlobalSceneGraph().root()->getUndoChangeTracker().changes(); // Stop the timer before saving stopTimer(); if (_enabled) { // only snapshot if not working on an unnamed map if (_snapshotsEnabled && !GlobalMap().isUnnamed()) { try { saveSnapshot(); } catch (boost::filesystem::filesystem_error& f) { rError() << "AutoSaver::saveSnapshot: " << f.what() << std::endl; } } else { if (GlobalMap().isUnnamed()) { // Get the maps path (within the mod path) std::string autoSaveFilename = GlobalRegistry().get(RKEY_MAP_PATH); // Try to create the map folder, in case there doesn't exist one os::makeDirectory(autoSaveFilename); // Append the "autosave.map" to the filename autoSaveFilename += "autosave."; autoSaveFilename += game::current::getValue<std::string>(GKEY_MAP_EXTENSION); rMessage() << "Autosaving unnamed map to " << autoSaveFilename << std::endl; // Invoke the save call GlobalMap().saveDirect(autoSaveFilename); } else { // Construct the new filename (e.g. "test_autosave.map") std::string filename = GlobalMap().getMapName(); std::string extension = os::getExtension(filename); // Cut off the extension filename = filename.substr(0, filename.rfind('.')); filename += "_autosave"; filename += "." + extension; rMessage() << "Autosaving map to " << filename << std::endl; // Invoke the save call GlobalMap().saveDirect(filename); } } } else { rMessage() << "Autosave skipped..." << std::endl; } // Re-start the timer after saving has finished startTimer(); }
int CanvasState::save(int flags) { return saveSnapshot(flags); }
void CutyCapt::Delayed() { saveSnapshot(); QApplication::exit(); }
void CutyCapt::Timeout() { saveSnapshot(); QApplication::exit(); }
Snapshot::Snapshot(Rig* rig, Playback* pb) { saveSnapshot(rig, pb); }