void SeparateNodesExecutor::execute_server() { int count, id; *stream >>count; Data::Graph* currentGraph = Manager::GraphManager::getInstance()->getActiveGraph(); QMap<qlonglong, osg::ref_ptr<Data::Node> >* nodes = currentGraph -> getMetaNodes(); QLinkedList<osg::ref_ptr<Data::Node> >* selectedNodes = new QLinkedList<osg::ref_ptr<Data::Node> >(); for ( int i = 0; i < count; i++ ) { *stream >> id; if ( nodes->contains( id ) ) { selectedNodes->append( *nodes->find( id ) ); } } Server* server = Server::getInstance(); currentGraph->separateNodes( selectedNodes ); server->sendSeparateNodes( selectedNodes ); if ( ( ( QOSG::CoreWindow* )server->getCoreWindowReference() )->playing() ) { server->getLayoutThread()->play(); } return; }
void CoreWindow::separateNodes() { Data::Graph * currentGraph = Manager::GraphManager::getInstance()->getActiveGraph(); if (currentGraph != NULL) { QLinkedList<osg::ref_ptr<Data::Node> > * selectedNodes = viewerWidget->getPickHandler()->getSelectedNodes(); if(selectedNodes->count() > 0) { currentGraph->separateNodes(selectedNodes); } else { qDebug() << "[QOSG::CoreWindow::separateNodes] There are no nodes selected"; } if (isPlaying) layout->play(); } }