OSG  3.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ShadowVolume.h
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 
14 #ifndef OSGSHADOW_SHADOWVOLUME
15 #define OSGSHADOW_SHADOWVOLUME 1
16 
17 #include <osg/Camera>
18 #include <osg/Light>
19 #include <osg/Geode>
20 
21 #include <osgShadow/ShadowTechnique>
22 #include <osgShadow/OccluderGeometry>
23 
24 namespace osgShadow {
25 
28 {
29  public :
30  ShadowVolume();
31 
33 
35 
36 
37  void setDrawMode(osgShadow::ShadowVolumeGeometry::DrawMode drawMode);
39 
40  void setDynamicShadowVolumes(bool dynamicShadowVolumes);
41  bool getDynamicShadowVolumes() const { return _dynamicShadowVolumes; }
42 
44  virtual void init();
45 
47  virtual void update(osg::NodeVisitor& nv);
48 
50  virtual void cull(osgUtil::CullVisitor& cv);
51 
53  virtual void cleanSceneGraph();
54 
55 
56  protected :
57 
58  virtual ~ShadowVolume();
59 
62 
64 
67 
69 
72 
77 
78 
79 };
80 
81 }
82 
83 #endif
osg::ref_ptr< osg::Light > _diffuseLight
Definition: ShadowVolume.h:71
This class provides an object-oriented thread mutex interface.
Definition: Mutex.h:31
osg::ref_ptr< osg::Light > _ambientLight
Definition: ShadowVolume.h:70
osg::ref_ptr< osg::StateSet > _shadowVolumeStateSet
Definition: ShadowVolume.h:75
osg::ref_ptr< osg::StateSet > _ss1
Definition: ShadowVolume.h:73
#define OSGSHADOW_EXPORT
Definition: Export.h:39
#define META_Object(library, name)
Definition: Object.h:42
osg::ref_ptr< osg::StateSet > _mainShadowStateSet
Definition: ShadowVolume.h:74
bool getDynamicShadowVolumes() const
Definition: ShadowVolume.h:41
osgShadow::ShadowVolumeGeometry::DrawMode _drawMode
Definition: ShadowVolume.h:60
osg::ref_ptr< osgShadow::OccluderGeometry > _occluder
Definition: ShadowVolume.h:63
osgShadow::ShadowVolumeGeometry::DrawMode getDrawMode() const
Definition: ShadowVolume.h:38
osg::ref_ptr< osg::StateSet > _shadowedSceneStateSet
Definition: ShadowVolume.h:76
OpenThreads::Mutex _shadowVolumeMutex
Definition: ShadowVolume.h:65
osg::ref_ptr< osgShadow::ShadowVolumeGeometry > _shadowVolume
Definition: ShadowVolume.h:66