openscenegraph
MinimalDrawBoundsShadowMap
Go to the documentation of this file.
1/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
2 *
3 * This library is open source and may be redistributed and/or modified under
4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5 * (at your option) any later version. The full license is in LICENSE file
6 * included with this distribution, and on the openscenegraph.org website.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * OpenSceneGraph Public License for more details.
12 *
13 * ViewDependentShadow codes Copyright (C) 2008 Wojciech Lewandowski
14 * Thanks to to my company http://www.ai.com.pl for allowing me free this work.
15*/
16
17
18#ifndef OSGSHADOW_MINIMALDRAWBOUNDSSHADOWMAP
19#define OSGSHADOW_MINIMALDRAWBOUNDSSHADOWMAP 1
20
22
23namespace osgShadow {
24
26 : public MinimalShadowMap
27{
28 public :
33
36
39 const MinimalDrawBoundsShadowMap& mdbsm,
41
44
45 protected:
48
83
84 friend struct ViewData;
85
87
88
90
92 {
93 }
94
95 virtual void operator ()( const osg::Camera& camera ) const
96 {
97 if( _vd.valid() )
98 _vd->performBoundAnalysis( camera );
99 }
100
102 };
103
105
106 CameraCullCallback(ViewData * vd, osg::Callback * nc): _vd(vd), _nc(nc)
107 {
108 }
109
110 virtual bool run(osg::Object* object, osg::Object* data)
111 {
112 osgUtil::CullVisitor *cv = dynamic_cast< osgUtil::CullVisitor *>( data );
113
114 if( _nc.valid() )
115 _nc->run(object, data);
116 else
117 traverse(object, data);
118
119 if( cv )
120 _vd->recordShadowMapParams( );
121
122 return true;
123 }
124
125 protected:
128 };
129};
130
131} // namespace osgShadow
132
133#endif
Definition MinimalDrawBoundsShadowMap:27
MinimalDrawBoundsShadowMap ThisClass
Definition MinimalDrawBoundsShadowMap:30
META_ViewDependentShadowTechniqueData(ThisClass, ThisClass::ViewData)
MinimalDrawBoundsShadowMap(const MinimalDrawBoundsShadowMap &mdbsm, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
MinimalShadowMap BaseClass
Definition MinimalDrawBoundsShadowMap:32
META_Object(osgShadow, MinimalDrawBoundsShadowMap)
Definition MinimalShadowMap:25
Definition CullVisitor:49
Definition BoundingBox:34
Definition Callback:34
Definition Camera:45
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
Definition Image:179
Definition Matrixd:27
Definition Object:61
Definition Matrixd:412
Definition State:80
Definition Vec2s:20
Definition ref_ptr:32
T * get() const
Definition ref_ptr:117
Definition ConvexPolyhedron:33
#define OSGSHADOW_EXPORT
Definition osgShadow/Export:39
Definition MinimalDrawBoundsShadowMap:104
virtual bool run(osg::Object *object, osg::Object *data)
Definition MinimalDrawBoundsShadowMap:110
osg::observer_ptr< ViewData > _vd
Definition MinimalDrawBoundsShadowMap:126
CameraCullCallback(ViewData *vd, osg::Callback *nc)
Definition MinimalDrawBoundsShadowMap:106
osg::ref_ptr< osg::Callback > _nc
Definition MinimalDrawBoundsShadowMap:127
osg::observer_ptr< ViewData > _vd
Definition MinimalDrawBoundsShadowMap:101
CameraPostDrawCallback(ViewData *vd)
Definition MinimalDrawBoundsShadowMap:91
Definition MinimalDrawBoundsShadowMap:50
void setShadowCameraProjectionMatrixPtr(osg::RefMatrix *projection)
Definition MinimalDrawBoundsShadowMap:58
virtual void releaseGLObjects(osg::State *=0) const
osg::ref_ptr< osg::RefMatrix > _projection
Definition MinimalDrawBoundsShadowMap:51
virtual void performBoundAnalysis(const osg::Camera &camera)
ViewData(void)
Definition MinimalDrawBoundsShadowMap:78
osg::RefMatrix * getShadowCameraProjectionMatrixPtr(void)
Definition MinimalDrawBoundsShadowMap:61
virtual void resizeGLObjectBuffers(unsigned int maxSize)
virtual void init(ThisClass *st, osgUtil::CullVisitor *cv)
osg::ref_ptr< osg::Camera > _boundAnalysisCamera
Definition MinimalDrawBoundsShadowMap:55
osg::Vec2s _boundAnalysisSize
Definition MinimalDrawBoundsShadowMap:52
osg::ref_ptr< osg::Image > _boundAnalysisImage
Definition MinimalDrawBoundsShadowMap:53
osg::ref_ptr< osg::Texture2D > _boundAnalysisTexture
Definition MinimalDrawBoundsShadowMap:54
static osg::BoundingBox scanImage(const osg::Image *image, osg::Matrix m)
osg::observer_ptr< osg::Camera > _mainCamera
Definition MinimalDrawBoundsShadowMap:56
Definition MinimalShadowMap:101
Definition Camera:595