bool FrameRenderer::renderImpl(SoSeparator * ivRoot, Renderable &renderable) { SoSeparator * worldIVRoot = GraspItGUI::getInstance()->getIVmgr()->getWorld()->getIVRoot(); SbName pc2Name("PointCloudRoot2"); SoNodeList pointCloud2 = getChildByName(worldIVRoot, pc2Name); assert(renderable.has_renderableframe()); SbName frameName(renderable.renderableframe().c_str()); ivRoot = getOrAddSeparator(worldIVRoot, frameName); SoTransform * tran; if(ivRoot->getNumChildren() && ivRoot->getChild(0)->getTypeId() == SoTransform::getClassTypeId()) { tran = static_cast<SoTransform *>(ivRoot->getChild(0)); // DBGA("IVRoot child number: " << ivRoot->getNumChildren()); } else { tran = new SoTransform(); ivRoot->insertChild(tran, 0); } Quaternion q(renderable.frame().orientation().w(),renderable.frame().orientation().x(), renderable.frame().orientation().y(),renderable.frame().orientation().z()); tran->rotation.setValue(q.toSbRotation()); float units = 1.0; if(renderable.frame().has_units()) units = 1000.0/renderable.frame().units(); tran->translation.setValue(renderable.frame().translation().x() * units, renderable.frame().translation().y() * units, renderable.frame().translation().z() * units); return true; }
void ExtractOneThumbnailJob::execute() { if ( m_wasCanceled || frameName().exists() ) emit completed(); else { DB::ImageInfoPtr info = DB::ImageDB::instance()->info(m_fileName); const int length = info->videoLength(); ImageManager::ExtractOneVideoFrame::extract(m_fileName, length*m_index/10.0, this, SLOT(frameLoaded(QImage))); } }
void ExtractOneThumbnailJob::frameLoaded(const QImage& image) { if ( !image.isNull() ) { #if 0 QImage img = image; { QPainter painter(&img); QFont fnt; fnt.setPointSize(24); painter.setFont(fnt); painter.drawText(QPoint(100,100),QString::number(m_index)); } #endif Utilities::saveImage(frameName(), image, "JPEG"); } else { // Create empty file to avoid that we recheck at next start up. QFile file(frameName().absolute()); file.open(QFile::WriteOnly); file.close(); } emit completed(); }
SoSeparator *Renderer::getRenderRoot(SbName &childName, Renderable &renderable) { SoSeparator * ivRoot = GraspItGUI::getInstance()->getIVmgr()->getWorld()->getIVRoot(); if(renderable.has_renderableframe()) { SbName frameName(renderable.renderableframe().c_str()); ivRoot = getOrAddSeparator(ivRoot, frameName); } if(ivRoot && childName.getLength() > 0) { ivRoot = getOrAddSeparator(ivRoot, childName); } return ivRoot; }
static int ActorL_SetSprite(lua_State* luaVM) { int nargs = lua_gettop(luaVM); switch(nargs) { case 2: { Actor* actor = luaW_check<Actor>(luaVM, 1); if (actor) { std::string frameName(lua_tostring(luaVM, 2)); actor->setFrame(frameName); } break; } } return 0; }