openscenegraph
MinimalCullBoundsShadowMap
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#ifndef OSGSHADOW_MINIMALCULLBOUNDSSHADOWMAP
18#define OSGSHADOW_MINIMALCULLBOUNDSSHADOWMAP 1
19
21
22namespace osgShadow {
23
25 : public MinimalShadowMap
26{
27 public :
32
35
38 const MinimalCullBoundsShadowMap& mcbsm,
40
43
44 protected:
47
49 {
50 virtual void init( ThisClass * st, osgUtil::CullVisitor * cv );
51
52 virtual void cullShadowReceivingScene( );
53
54 virtual void aimShadowCastingCamera( const osg::Light *light,
55 const osg::Vec4 &worldLightPos,
56 const osg::Vec3 &worldLightDir,
57 const osg::Vec3 &worldLightUp
58 = osg::Vec3(0,1,0) );
59
60 typedef std::vector< osgUtil::RenderLeaf* > RenderLeafList;
61
62 static unsigned RemoveOldRenderLeaves
63 ( RenderLeafList &rllNew, RenderLeafList &rllOld );
64
66
68 ( RenderLeafList &rll, osg::Matrix & projectionToWorld );
69
71 ( RenderLeafList &rll, osg::Matrix & projectionToWorld, osg::Polytope & polytope );
72
73 static void GetRenderLeaves
75 };
76
78};
79
80} // namespace osgShadow
81
82#endif
#define META_ViewDependentShadowTechniqueData(ShadowTechnique, TechniqueData)
Definition ViewDependentShadowTechnique:32
Definition MinimalCullBoundsShadowMap:26
MinimalShadowMap BaseClass
Definition MinimalCullBoundsShadowMap:31
META_Object(osgShadow, MinimalCullBoundsShadowMap)
MinimalCullBoundsShadowMap ThisClass
Definition MinimalCullBoundsShadowMap:29
MinimalCullBoundsShadowMap(const MinimalCullBoundsShadowMap &mcbsm, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
Definition MinimalShadowMap:25
Definition CullVisitor:49
Definition RenderBin:34
Definition BoundingBox:34
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
Definition Light:40
Definition Matrixd:27
Definition Polytope:26
Definition Vec3f:29
Definition Vec4f:28
Definition ConvexPolyhedron:33
#define OSGSHADOW_EXPORT
Definition osgShadow/Export:39
Definition MinimalCullBoundsShadowMap:49
static unsigned RemoveOldRenderLeaves(RenderLeafList &rllNew, RenderLeafList &rllOld)
static void GetRenderLeaves(osgUtil::RenderBin *rb, RenderLeafList &rll)
virtual void aimShadowCastingCamera(const osg::Light *light, const osg::Vec4 &worldLightPos, const osg::Vec3 &worldLightDir, const osg::Vec3 &worldLightUp=osg::Vec3(0, 1, 0))
static unsigned RemoveIgnoredRenderLeaves(RenderLeafList &rll)
virtual void init(ThisClass *st, osgUtil::CullVisitor *cv)
static osg::BoundingBox ComputeRenderLeavesBounds(RenderLeafList &rll, osg::Matrix &projectionToWorld, osg::Polytope &polytope)
std::vector< osgUtil::RenderLeaf * > RenderLeafList
Definition MinimalCullBoundsShadowMap:60
static osg::BoundingBox ComputeRenderLeavesBounds(RenderLeafList &rll, osg::Matrix &projectionToWorld)
Definition MinimalShadowMap:101