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 ); } }
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); }