void RobotVisualization::setSegmentNamesEnabled(bool value) { segmentNamesEnabled_ = value; for (size_t i=0; i<segmentNames_.size(); i++){ OSGSegment* seg = getSegment(segmentNames_[i]); if(value) seg->attachTextLabel(); else seg->removeTextLabel(); } }
void RobotVisualization::setModelFile(QString modelFile) { //Extact file extension QStringList tokens = modelFile.split(QChar('.')); QString ext = tokens.back(); LOG_INFO("loading %s", modelFile.toLatin1().data()); bool st; st = load(modelFile); if(!st) LOG_FATAL_S << "cannot load " << modelFile.toStdString() << ", it either does not exist or is not a proper robot model file"; else _modelFile = modelFile; //emit propertyChanged("modelFile"); // Now create a RBS visualization for each of the frames in the model deleteFrameVisualizers(); vector<string> segments = getSegmentNames(); for (std::size_t i = 0; i != segments.size(); ++i) { OSGSegment* segment = getSegment(segments[i]); assert(segment); vizkit3d::RigidBodyStateVisualization* frame = new vizkit3d::RigidBodyStateVisualization(this); frame->setPluginName(QString::fromStdString(segments[i])); osg::ref_ptr<osg::Group> frame_attachment = frame->getRootNode(); osg::ref_ptr<osg::StateSet> state = frame_attachment->getOrCreateStateSet(); state->setMode(GL_DEPTH_TEST, osg::StateAttribute::OFF); segment->getGroup()->addChild(frame_attachment); _frameVisualizers[segments[i]] = frame; } setFramesEnabled(areFramesEnabled()); setSegmentNamesEnabled(areSegmentNamesEnabled()); emit childrenChanged(); }
void RobotVisualization::createFrameVisualizers() { deleteFrameVisualizers(); vector<string> segments = getSegmentNames(); for (std::size_t i = 0; i != segments.size(); ++i) { OSGSegment* segment = getSegment(segments[i]); assert(segment); vizkit3d::RigidBodyStateVisualization* frame = new vizkit3d::RigidBodyStateVisualization(this); frame->setPluginName(QString::fromStdString(segments[i])); osg::ref_ptr<osg::Group> frame_attachment = frame->getRootNode(); osg::ref_ptr<osg::StateSet> state = frame_attachment->getOrCreateStateSet(); state->setMode(GL_DEPTH_TEST, osg::StateAttribute::OFF); segment->getGroup()->addChild(frame_attachment); _frameVisualizers[segments[i]] = frame; } setFramesEnabled(areFramesEnabled()); setSegmentNamesEnabled(areSegmentNamesEnabled()); emit childrenChanged(); }
void RobotVisualization::hideSegmentText(QString link_name){ OSGSegment* seg = getSegment(link_name.toStdString()); seg->removeTextLabel(); }
void RobotVisualization::showSegmentText(QString link_name, QString text){ OSGSegment* seg = getSegment(link_name.toStdString()); seg->attachTextLabel(text.toStdString()); }