void MainWindow::addObjectFromScene() { disconnect(camera_, SIGNAL(imageReceived(const cv::Mat &)), this, SLOT(update(const cv::Mat &))); AddObjectDialog * dialog; bool resumeCamera = camera_->isRunning(); if(!ui_->actionStart_camera->isEnabled() || ui_->imageView_source->cvImage().empty()) { dialog = new AddObjectDialog(camera_, cv::Mat(), ui_->imageView_source->isMirrorView(), this); } else { dialog = new AddObjectDialog(0, ui_->imageView_source->cvImage(), ui_->imageView_source->isMirrorView(), this); } if(dialog->exec() == QDialog::Accepted) { ObjWidget * obj = dialog->retrieveObject(); if(obj) { objects_.push_back(obj); showObject(objects_.last()); updateData(); objectsModified_ = true; } } if(resumeCamera || ui_->imageView_source->cvImage().empty()) { this->startProcessing(); } else { connect(camera_, SIGNAL(imageReceived(const cv::Mat &)), this, SLOT(update(const cv::Mat &))); this->update(ui_->imageView_source->cvImage()); } delete dialog; }
bool CObjTreePlugin::srvInsertBBox(srs_env_model::InsertBoundingBox::Request &req, srs_env_model::InsertBoundingBox::Response &res) { res.object_id = insertBBox(req.object_id, req.pose, req.scale, INSERT); showObject(res.object_id); return true; }
bool CObjTreePlugin::srvInsertPlane(srs_env_model::InsertPlane::Request &req, srs_env_model::InsertPlane::Response &res) { res.object_id = insertPlane(req.plane, INSERT); showObject(res.object_id); return true; }
bool CObjTreePlugin::srvInsertBBoxByPosition(srs_env_model::InsertBoundingBox::Request &req, srs_env_model::InsertBoundingBox::Response &res) { if(m_octree.removeObject(req.object_id)) removePrimitiveMarker(req.object_id); res.object_id = insertBBox(req.object_id, req.pose, req.scale, UPDATE); if((unsigned int)req.object_id != res.object_id) removePrimitiveMarker(res.object_id); showObject(res.object_id); return true; }
bool CObjTreePlugin::srvInsertPlaneByPosition(srs_env_model::InsertPlane::Request &req, srs_env_model::InsertPlane::Response &res) { if(m_octree.removeObject(req.plane.id)) removePrimitiveMarker(req.plane.id); res.object_id = insertPlane(req.plane, UPDATE); if((unsigned int)req.plane.id != res.object_id) removePrimitiveMarker(res.object_id); showObject(res.object_id); return true; }
bool CObjTreePlugin::srvInsertPlanes(srs_env_model::InsertPlanes::Request &req, srs_env_model::InsertPlanes::Response &res) { std::vector<srs_env_model_msgs::PlaneDesc>::iterator i; std::vector<srs_env_model_msgs::PlaneDesc> &planes(req.plane_array.planes); for(i = planes.begin(); i != planes.end(); i++) { unsigned int id = insertPlane(*i, INSERT); res.object_ids.push_back(id); showObject(id); } return true; }
void kajiya2D::displayLevel() { int i = 0; objects::SpacialObject* tmpObject = globalGameObjectManager_->nextSpacialObject( i ); while( tmpObject != NULL ) { if(inputHandlerThread_->globalflags_.showSprites){ showObjectWithTextures( tmpObject ); } else{ showObject( tmpObject ); } i++; tmpObject = globalGameObjectManager_->nextSpacialObject( i ); } }
bool CObjTreePlugin::srvShowObject(srs_env_model::ShowObject::Request &req, srs_env_model::ShowObject::Response &res) { showObject(req.object_id); return true; }
ViewerWindow::ViewerWindow(QWidget* parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) , gameData(nullptr) , gameWorld(nullptr) , renderer(nullptr) { setMinimumSize(640, 480); QMenuBar* mb = this->menuBar(); QMenu* file = mb->addMenu("&File"); file->addAction("Open &Game", this, SLOT(loadGame())); file->addSeparator(); for(int i = 0; i < MaxRecentGames; ++i) { QAction* r = file->addAction(""); recentGames.append(r); connect(r, SIGNAL(triggered()), SLOT(openRecent())); } recentSep = file->addSeparator(); auto ex = file->addAction("E&xit"); ex->setShortcut(QKeySequence::Quit); connect(ex, SIGNAL(triggered()), QApplication::instance(), SLOT(closeAllWindows())); //----------------------- View Mode setup viewerWidget = new ViewerWidget; viewerWidget->context()->makeCurrent(); connect(this, SIGNAL(loadedData(GameWorld*)), viewerWidget, SLOT(dataLoaded(GameWorld*))); //------------- Object Viewer m_views[ViewMode::Object] = new ObjectViewer(viewerWidget); m_viewNames[ViewMode::Object] = "Objects"; //------------- Model Viewer m_views[ViewMode::Model] = new ModelViewer(viewerWidget); m_viewNames[ViewMode::Model] = "Model"; //------------- World Viewer m_views[ViewMode::World] = new WorldViewer(viewerWidget); m_viewNames[ViewMode::World] = "World"; //------------- display mode switching viewSwitcher = new QStackedWidget; auto signalMapper = new QSignalMapper(this); auto switchPanel = new QVBoxLayout(); int i = 0; for(auto viewer : m_views) { viewSwitcher->addWidget(viewer); connect(this, SIGNAL(loadedData(GameWorld*)), viewer, SLOT(showData(GameWorld*))); auto viewerButton = new QPushButton(m_viewNames[i].c_str()); signalMapper->setMapping(m_views[i], i); signalMapper->setMapping(viewerButton, i); connect(viewerButton, SIGNAL(clicked()), signalMapper, SLOT(map())); switchPanel->addWidget(viewerButton); i++; } // Map world viewer loading placements to switch to the world viewer connect(m_views[ViewMode::World], SIGNAL(placementsLoaded(QString)), signalMapper, SLOT(map())); switchView(ViewMode::Object); connect(m_views[ViewMode::Object], SIGNAL(showObjectModel(uint16_t)), this, SLOT(showObjectModel(uint16_t))); connect(m_views[ViewMode::Object], SIGNAL(showObjectModel(uint16_t)), m_views[ViewMode::Model], SLOT(showObject(uint16_t))); connect(this, SIGNAL(loadAnimations(QString)), m_views[ViewMode::Model], SLOT(loadAnimations(QString))); connect(signalMapper, SIGNAL(mapped(int)), this, SLOT(switchView(int))); connect(signalMapper, SIGNAL(mapped(int)), viewSwitcher, SLOT(setCurrentIndex(int))); switchPanel->addStretch(); auto mainlayout = new QHBoxLayout(); mainlayout->addLayout(switchPanel); mainlayout->addWidget(viewSwitcher); auto mainwidget = new QWidget(); mainwidget->setLayout(mainlayout); QMenu* data = mb->addMenu("&Data"); //data->addAction("Export &Model", objectViewer, SLOT(exportModel())); QMenu* anim = mb->addMenu("&Animation"); anim->addAction("Load &Animations", this, SLOT(openAnimations())); QMenu* map = mb->addMenu("&Map"); map->addAction("Load IPL", m_views[ViewMode::World], SLOT(loadPlacements())); this->setCentralWidget(mainwidget); updateRecentGames(); }