#ifndef COMPONENTS_SCENEUTIL_SHADOW_H #define COMPONENTS_SCENEUTIL_SHADOW_H #include #include #include #include "mwshadowtechnique.hpp" namespace SceneUtil { class ShadowManager { public: static void disableShadowsForStateSet(osg::ref_ptr stateSet); ShadowManager(osg::ref_ptr sceneRoot, osg::ref_ptr rootNode); virtual void setupShadowSettings(int castsShadowMask); virtual Shader::ShaderManager::DefineMap getShadowDefines(); virtual Shader::ShaderManager::DefineMap getShadowsDisabledDefines(); protected: bool mEnableShadows; osg::ref_ptr mShadowedScene; osg::ref_ptr mShadowSettings; osg::ref_ptr mShadowTechnique; }; } #endif //COMPONENTS_SCENEUTIL_SHADOW_H