18 #ifndef OSGSHADOW_MINIMALDRAWBOUNDSSHADOWMAP
19 #define OSGSHADOW_MINIMALDRAWBOUNDSSHADOWMAP 1
21 #include <osgShadow/MinimalShadowMap>
59 { _projection = projection; }
62 {
return _projection.
get(); }
66 virtual void cullShadowReceivingScene( );
68 virtual void createDebugHUD( );
70 virtual void recordShadowMapParams( );
72 virtual void cullBoundAnalysisScene( );
76 virtual void performBoundAnalysis(
const osg::Camera& camera );
78 ViewData(
void ): _boundAnalysisSize( 64, 64 ) {}
86 struct CameraPostDrawCallback : public
osg::Camera::DrawCallback {
88 CameraPostDrawCallback(
ViewData * vd ): _vd( vd )
95 _vd->performBoundAnalysis( camera );
112 _nc->run(
object, data);
114 traverse(
object, data);
117 _vd->recordShadowMapParams( );
CameraCullCallback(ViewData *vd, osg::Callback *nc)
osg::observer_ptr< ViewData > _vd
osg::Vec2s _boundAnalysisSize
osg::ref_ptr< osg::Camera > _boundAnalysisCamera
osg::ref_ptr< osg::Texture2D > _boundAnalysisTexture
osg::ref_ptr< osg::RefMatrix > _projection
void setShadowCameraProjectionMatrixPtr(osg::RefMatrix *projection)
#define META_Object(library, name)
virtual bool run(osg::Object *object, osg::Object *data)
osg::observer_ptr< osg::Camera > _mainCamera
MinimalShadowMap BaseClass
osg::RefMatrix * getShadowCameraProjectionMatrixPtr(void)
MinimalDrawBoundsShadowMap ThisClass
osg::ref_ptr< osg::Callback > _nc
META_ViewDependentShadowTechniqueData(ThisClass, ThisClass::ViewData) struct CameraPostDrawCallback
osg::observer_ptr< ViewData > _vd
osg::ref_ptr< osg::Image > _boundAnalysisImage