#ifndef MWVR_VRSHADOW_H #define MWVR_VRSHADOW_H #include <osg/Camera> #include <osgViewer/Viewer> #include <components/sceneutil/mwshadowtechnique.hpp> namespace MWVR { class UpdateShadowMapSlaveCallback : public osg::View::Slave::UpdateSlaveCallback { public: void updateSlave(osg::View& view, osg::View::Slave& slave) override; }; class VrShadow { using SharedShadowMapConfig = SceneUtil::MWShadowTechnique::SharedShadowMapConfig; public: VrShadow(); void configureShadowsForCamera(osg::Camera* camera, bool master); void updateShadowConfig(osg::View& view); private: osg::ref_ptr<SharedShadowMapConfig> mMasterConfig; osg::ref_ptr<SharedShadowMapConfig> mSlaveConfig; }; } #endif