Exemplo n.º 1
0
bool ViewData::handleEvent( const eq::EventType type,
                            const seq::KeyEvent& keyEvent )
{
    switch( type )
    {
    case eq::EVENT_KEY_PRESS:
        switch( keyEvent.key )
        {
        case ' ':
            setModelMatrix( _initialModelMatrix );
            return true;
        case 'n':
            _model->loadNextFrame();
            return true;
        case 'r':
            setRenderer(serializable::RendererType((int(getRenderer())+1) % (int(serializable::RendererType::OSPRAY)+1)));
            return true;
        case 'b':
            setBlur( !getBlur( ));
            return true;
        case '+':
            setBlurStrength( getBlurStrength() + 0.05f );
            return true;
        case '-':
            setBlurStrength( getBlurStrength() - 0.05f );
            return true;
        case 'l':
        {
            auto& canvas = _view.getConfig()->getCanvases().front();
            uint32_t index = canvas->getActiveLayoutIndex() + 1;
            const auto& layouts = canvas->getLayouts();
            index %= layouts.size();
            canvas->useLayout( index );

            const eq::Layout* layout = layouts[index];
            std::ostringstream stream;
            stream << "Layout ";
            if( layout )
            {
                const std::string& name = layout->getName();
                if( name.empty( ))
                    stream << index;
                else
                    stream << name;
            }
            else
                stream << "NONE";

            stream << " active";
            LBINFO << stream.str() << std::endl;
            return true;
        }
        }
    default:
        return seq::ViewData::handleEvent( type, keyEvent );
    }
}
Exemplo n.º 2
0
int main() {
    dmcr::SceneFactory factory = [](const std::string& /*str*/) {
        auto scene = std::make_shared<dmcr::KDTreeScene>();
        auto& c = scene->camera();
        c.setPosition(dmcr::Vector3f(9, 3, 5));
        c.setFov(M_PI / 2);
        c.setAspect(640.0 / 480.0);
        c.setLookAt(dmcr::Vector3f(6, 6, 0));
       
        scene->beginAddObjects();
        
        auto b = dmcr::make_unique<dmcr::Box>();
        b->setPosition(dmcr::Vector3f(5, 0, 0));
        b->setExtents(dmcr::Vector3f(10, 0.2, 10));
        b->setColor({1, 1, 1});
        b->setEmit(1);
        scene->addObject(std::move(b));
        b = dmcr::make_unique<dmcr::Box>();
        b->setPosition(dmcr::Vector3f(5, 11, 0));
        b->setExtents(dmcr::Vector3f(10, 0.2, 10));
        b->setColor({1, 1, 1});
        scene->addObject(std::move(b));

        for (int i = 0; i < 10; ++i) {
            for (int j = 0; j < 10; ++j) {
                auto a = dmcr::make_unique<dmcr::Sphere>();
                a->setPosition(dmcr::Vector3f(i + 0.5, j + 0.5, 0.5));
                a->setRadius(0.2);
                a->setColor({1.0, 1.0, 1.0});
                a->setBlur(0.8);
                a->setOpacity(1.0);
                scene->addObject(std::move(a));
            }
        }

        scene->endAddObjects();

        std::cout << "Scene constructed." << std::endl;

        return scene;
    };
    
    dmcr::TaskManager manager(factory);
    
    BenchmarkTaskProvider provider;
    
    manager.onNewTask(&provider, 1, 640, 480, 25, "");
    
    for (;;)
        sleep(1);
}