Exemplo n.º 1
0
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();
}
Exemplo n.º 4
0
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;
}
Exemplo n.º 5
0
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;
}