VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Friends
makVrv::DtOsgShadowTechnique Class Reference

The DtOsgShadowTechnique class implements a robust shadow mapping system.

Inheritance diagram for makVrv::DtOsgShadowTechnique:
Inheritance graph
[legend]

Classes

struct  CameraDescription
 

Public Member Functions

 DtOsgShadowTechnique (DtDe &de)
 
 DtOsgShadowTechnique (const DtOsgShadowTechnique &es, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
 
virtual osg::Object * cloneType () const
 
virtual osg::Object * clone (const osg::CopyOp &copyop) const
 
virtual bool isSameKindAs (const osg::Object *obj) const
 
virtual const charlibraryName () const
 
virtual const charclassName () const
 
virtual void init ()
 
virtual void postConstructionInit ()
 
virtual void update (osg::NodeVisitor &nv)
 
virtual void cull (osgUtil::CullVisitor &cv)
 
virtual void cleanSceneGraph ()
 
void setChannelShadowState (DtOsgChannel *osgChannel, bool enable)
 
bool getChannelShadowSettings (DtOsgChannel *osgChannel, DtShadowSettingsObject **shadowSettingObject, bool *isPlanView)
 
void setGlobalLight (osg::LightSource *light)
 
const osg::LightSource * getGlobalLight () const
 
const osg::StateSet * mapCameraToStateSet (const osg::Camera *camera) const
 
virtual void resizeGLObjectBuffers (unsigned int maxSize) override
 
virtual void releaseGLObjects (osg::State *=0) const override
 

Static Public Member Functions

static const std::string & shadowCameraPrefixString (void)
 

Public Attributes

class DtShadowTweakablesmyShadowUI
 

Static Public Attributes

static const int MAX_NUM_CASCADES = 6
 

Protected Types

typedef std::map< const
osg::Camera *, osg::ref_ptr
< DtPerChannelData > > 
PerChannelDataMap
 
typedef std::vector
< osg::ref_ptr
< DtPerChannelData > > 
PerChannelDataVector
 

Protected Member Functions

virtual void reInitialize (unsigned int quality)
 
virtual void cleanupOldPerChannelData ()
 
virtual bool configureShadowTraversalNodeMask (bool traverseEntities, bool traverseProps, bool traverseTerrain)
 
virtual void slot_refresh_maps ()
 
virtual std::string generateVertexShader (DtPerChannelData *perChannelData, DtShadowSettingsObject *shadowSettingObject)
 
virtual std::string generateFragmentShader (DtPerChannelData *perChannelData, DtShadowSettingsObject *shadowSettingObject)
 
unsigned int getFilterCount (DtShadowSettingsObject *shadowSettingObject)
 
bool getReceiveShadows (const DtShadowSettingsObject *shadowSettings) const
 
virtual void computeFrustumPoints (const osg::Matrix &projectionMat, bool reverseZ, const osg::Matrix &inverseViewMat, double nearPlane, double farPlane, osg::Vec3d *outFrustumPoints)
 
virtual void chooseComputeShadowFunction (std::stringstream &sstr, DtPerChannelData *perChannelData, DtShadowSettingsObject *shadowSettings)
 
virtual ~DtOsgShadowTechnique ()
 

Protected Attributes

PerChannelDataMap myPerChannelDataMap
 
PerChannelDataVector myPerChannelDataDeleteList
 
osg::ref_ptr< osg::LightSource > myGlobalLight
 
osg::ref_ptr< osg::Uniform > myLightDirectionUniform
 
osg::ref_ptr< osg::Uniform > myReceiveShadowsUniform
 
DtDemyDe
 
osg::ref_ptr< osg::Program > myVsmBlurTextureProgram
 
osg::ref_ptr< osg::Program > myVsmBlurTexArrayProgram
 
osg::ref_ptr< osg::Program > myVsmPassthroughArrayProgram
 
osg::ref_ptr< osg::Program > myVsmPassthroughProgram
 
osg::ref_ptr< osg::Program > myEsmBlurTextureProgram
 
osg::ref_ptr< osg::Program > myEsmBlurTexArrayProgram
 
osg::ref_ptr< osg::Program > myEVsmBlurTextureProgram
 
osg::ref_ptr< osg::Program > myEVsmBlurTexArrayProgram
 
std::vector< osg::ref_ptr
< osg::Camera > > 
myDeferredDeleteCamera
 
tbb::mutex myDeferredCameraDeletionMutex
 
bool myMulticastIsSupported
 
bool myShadingRateIsSupported
 
DtSkyObjectManagermySkyObjectManager
 
boost::signalslib::connection myTerrainPatchAddedConnection
 
boost::signalslib::connection myTerrainPatchDeletedConnection
 

Static Protected Attributes

static const std::string myShadowCameraPrefixString
 

Private Member Functions

std::string generateFragmentComputeShadowFunction (DtPerChannelData *perChannelData, DtShadowSettingsObject *shadowSettingObject)
 
std::string generateFragmentComputeShadowFunctionEsm (DtPerChannelData *perChannelData, DtShadowSettingsObject *shadowSettingObject)
 
std::string generateFragmentComputeShadowFunctionVsm (DtPerChannelData *perChannelData, DtShadowSettingsObject *shadowSettingObject)
 
std::string generateFragmentUniformAndVariables (DtPerChannelData *perChannelData, DtShadowSettingsObject *shadowSettingObject)
 
std::string generateFragmentMain (DtPerChannelData *perChannelData, DtShadowSettingsObject *shadowSettingObject)
 
bool getCameraSettings (osg::Camera *viewCamera, DtPerChannelData **perChannelData, DtShadowSettingsObject **shadowSettingObject, bool *isPlanView)
 
void initPerChannelData (DtPerChannelData *perChannelData, DtShadowSettingsObject *shadowSettingObject)
 
void installReceiverVPandSharedStateSet (DtPerChannelData *perChannelData, DtShadowSettingsObject *shadowSettingObject)
 
void triggerExternalModuleShaderRefresh ()
 
void updateCascadeImportance (DtPerChannelData *perChannelData, DtShadowSettingsObject *shadowSettingObject)
 
osg::Program * getProgramFromFile (const std::string &szVertexShader, const std::string &szFragmentShader)
 
void installPreFilter (DtPerChannelData *perChannelData, DtShadowSettingsObject *shadowSettingObject, osg::Camera *depthCamera, osg::Camera *xBlurCamera, osg::Camera *yBlurCamera, osg::Texture2DArray *texture, osg::StateSet *stateSet, unsigned int textureUnit)
 
void installPreFilter (DtPerChannelData *perChannelData, DtShadowSettingsObject *shadowSettingObject, osg::Camera *depthCamera, osg::Camera *xBlurCamera, osg::Camera *yBlurCamera, unsigned int textureLayer, osg::Texture2DArray *texture2DArray, osg::Texture2DArray *preFilterTexture2DArray1, osg::Texture2DArray *preFilterTexture2DArray2)
 
void setupReverseZBuffer (osg::Camera *depthCamera, osg::Camera *xBlurCamera, osg::Camera *yBlurCamera)
 
void setupBlurCamera (osg::Camera *camera, osg::ref_ptr< osg::Program > &blurProgram, const osg::Vec2 &direction)
 
osg::Texture2D * createTexture2D (int width, int height, GLenum internalFormat, GLenum sourceFormat, GLenum sourceType, bool shadowComparisonMode, osg::Texture2D::FilterMode minFilter=osg::Texture2D::NEAREST, osg::Texture2D::FilterMode magFilter=osg::Texture2D::NEAREST)
 
osg::Texture2DArray * createTexture2DArray (int width, int height, int depth, GLenum internalFormat, GLenum sourceFormat, GLenum sourceType, bool shadowComparisonMode, osg::Texture2DArray::FilterMode minFilter=osg::Texture2DArray::NEAREST, osg::Texture2DArray::FilterMode magFilter=osg::Texture2DArray::NEAREST)
 
osg::Camera * createCamera (int width, int height, GLbitfield clearMask)
 
osg::Geode * createFullScreenQuad (const osg::Vec2 &size, const osg::Vec2 &uvStart, const osg::Vec2 &uvStop)
 
osg::Camera * createHudCamera (int width, int height, GLbitfield clearMask, const char *name=NULL)
 
double computeUniformSplit (double nearDistance, double farDistance, unsigned int splitIndex, unsigned int numSplits)
 
double computeLogarithmicSplit (double nearDistance, double farDistance, unsigned int splitIndex, unsigned int numSplits)
 
CameraDescription constructSplitLightCamera (const DtCurrentPassData &d, int split_index, bool farCascade=false)
 
void updateCameras (const DtCurrentPassData &d)
 
void getSplitCameraDistances (const DtCurrentPassData &d, int split_index, double &splitCamNear, double &splitCamFar)
 
void setDirty (bool dirty)
 
void frustumBoundingBoxLightViewSpace (const DtCurrentPassData &d, int split_index, const osg::Matrix &lightViewMatrix, double nearPlane, double farPlane, osg::Vec3d &minFrustum, osg::Vec3d &maxFrustum)
 

Friends

struct DtCurrentPassData
 

Member Typedef Documentation

typedef std::map< const osg::Camera*, osg::ref_ptr<DtPerChannelData> > makVrv::DtOsgShadowTechnique::PerChannelDataMap
protected

Constructor & Destructor Documentation

makVrv::DtOsgShadowTechnique::DtOsgShadowTechnique ( DtDe de)

CTOR.

makVrv::DtOsgShadowTechnique::DtOsgShadowTechnique ( const DtOsgShadowTechnique es,
const osg::CopyOp &  copyop = osg::CopyOp::SHALLOW_COPY 
)

DTOR.

virtual makVrv::DtOsgShadowTechnique::~DtOsgShadowTechnique ( )
protectedvirtual

DTOR.

Member Function Documentation

virtual osg::Object* makVrv::DtOsgShadowTechnique::cloneType ( ) const
inlinevirtual

Creates a new object of Type DtOsgShadowTechnique.

virtual osg::Object* makVrv::DtOsgShadowTechnique::clone ( const osg::CopyOp &  copyop) const
inlinevirtual

Creates a new copy of DtOsgShadowTechnique object.

virtual bool makVrv::DtOsgShadowTechnique::isSameKindAs ( const osg::Object *  obj) const
inlinevirtual

Returns true if object is of the DtOsgShadowTechnique class. Otherwise, returns false.

virtual const char* makVrv::DtOsgShadowTechnique::libraryName ( ) const
inlinevirtual

Returns the namespace string.

virtual const char* makVrv::DtOsgShadowTechnique::className ( ) const
inlinevirtual

Returns the class name string.

virtual void makVrv::DtOsgShadowTechnique::init ( )
virtual

Overrides the osgShadow::ShadowTechnique::init method.

virtual void makVrv::DtOsgShadowTechnique::postConstructionInit ( )
virtual

another init function

virtual void makVrv::DtOsgShadowTechnique::update ( osg::NodeVisitor &  nv)
virtual

Overrides the osgShadow::ShadowTechnique::update method.

virtual void makVrv::DtOsgShadowTechnique::cull ( osgUtil::CullVisitor &  cv)
virtual

Overrides the osgShadow::ShadowTechnique::cull method.

virtual void makVrv::DtOsgShadowTechnique::cleanSceneGraph ( )
virtual

Overrides the osgShadow::ShadowTechnique::cleanSceneGraph method.

void makVrv::DtOsgShadowTechnique::setChannelShadowState ( DtOsgChannel osgChannel,
bool  enable 
)

Set the shadow mode for channels.

bool makVrv::DtOsgShadowTechnique::getChannelShadowSettings ( DtOsgChannel osgChannel,
DtShadowSettingsObject **  shadowSettingObject,
bool isPlanView 
)

Gets the shadow settings for this channel.

void makVrv::DtOsgShadowTechnique::setGlobalLight ( osg::LightSource *  light)
inline

Sets global light source.

const osg::LightSource* makVrv::DtOsgShadowTechnique::getGlobalLight ( ) const
inline

Gets global light source.

static const std::string& makVrv::DtOsgShadowTechnique::shadowCameraPrefixString ( void  )
static
const osg::StateSet* makVrv::DtOsgShadowTechnique::mapCameraToStateSet ( const osg::Camera *  camera) const

returns shared state set uniform infor for this camera, may be null

virtual void makVrv::DtOsgShadowTechnique::resizeGLObjectBuffers ( unsigned int  maxSize)
overridevirtual

override from osg::ShadowTechnique

virtual void makVrv::DtOsgShadowTechnique::releaseGLObjects ( osg::State *  = 0) const
overridevirtual

override from osg::ShadowTechnique

virtual void makVrv::DtOsgShadowTechnique::reInitialize ( unsigned int  quality)
protectedvirtual

Re-initialize perChannelData using the specified quality setting.

virtual void makVrv::DtOsgShadowTechnique::cleanupOldPerChannelData ( )
protectedvirtual

Since the perChannelData can hold graphics objects we need to clear them in the main render thread. only call this from the main render thread.

virtual bool makVrv::DtOsgShadowTechnique::configureShadowTraversalNodeMask ( bool  traverseEntities,
bool  traverseProps,
bool  traverseTerrain 
)
protectedvirtual
virtual void makVrv::DtOsgShadowTechnique::slot_refresh_maps ( )
protectedvirtual
virtual std::string makVrv::DtOsgShadowTechnique::generateVertexShader ( DtPerChannelData perChannelData,
DtShadowSettingsObject shadowSettingObject 
)
protectedvirtual

Generates an optimized vertex shader given the shadow settings.

virtual std::string makVrv::DtOsgShadowTechnique::generateFragmentShader ( DtPerChannelData perChannelData,
DtShadowSettingsObject shadowSettingObject 
)
protectedvirtual

Generates an optimized fragment shader given the shadow settings.

unsigned int makVrv::DtOsgShadowTechnique::getFilterCount ( DtShadowSettingsObject shadowSettingObject)
protected

Gets the number of taps for percentage closer filtering(PCF)

bool makVrv::DtOsgShadowTechnique::getReceiveShadows ( const DtShadowSettingsObject shadowSettings) const
protected

True if scene receives shadows from any light casting source. This is used to bypass some shadow work otherwise.

virtual void makVrv::DtOsgShadowTechnique::computeFrustumPoints ( const osg::Matrix &  projectionMat,
bool  reverseZ,
const osg::Matrix &  inverseViewMat,
double  nearPlane,
double  farPlane,
osg::Vec3d *  outFrustumPoints 
)
protectedvirtual

Computes 8 world space frustum points: (near bl, br, tl, tr), (far bl, br, tl, tr). The frustum is computed from the given projection and view matrix. The points will be located in world space at the given near and far frustum plane distances.

Parameters
projectionMatThe projection matrix
reverseZSet to true if the projection matrix is using reverse Z
inverseViewMatThe inverse view matrix
nearPlanethe desired near plane distance to project the near points to
farPlanethe desired far plane distance to project the far points to
outFrustumPointsshould be an array of 8 osg::Vec3d to accept the computed points
virtual void makVrv::DtOsgShadowTechnique::chooseComputeShadowFunction ( std::stringstream &  sstr,
DtPerChannelData perChannelData,
DtShadowSettingsObject shadowSettings 
)
protectedvirtual

Uses internal logic to choose how to generate the fragment compute shadow function.

std::string makVrv::DtOsgShadowTechnique::generateFragmentComputeShadowFunction ( DtPerChannelData perChannelData,
DtShadowSettingsObject shadowSettingObject 
)
private

Generates an optimized fragment compute shadow function given the shadow settings.

std::string makVrv::DtOsgShadowTechnique::generateFragmentComputeShadowFunctionEsm ( DtPerChannelData perChannelData,
DtShadowSettingsObject shadowSettingObject 
)
private

Generates an optimized fragment compute shadow function given the shadow settings exponetial shadow mapping (ESM)

std::string makVrv::DtOsgShadowTechnique::generateFragmentComputeShadowFunctionVsm ( DtPerChannelData perChannelData,
DtShadowSettingsObject shadowSettingObject 
)
private

Generates an optimized fragment compute shadow function given the shadow settings exponetial shadow mapping (VSM)

std::string makVrv::DtOsgShadowTechnique::generateFragmentUniformAndVariables ( DtPerChannelData perChannelData,
DtShadowSettingsObject shadowSettingObject 
)
private

Generates an optimized fragment uniforms and variables given the shadow settings.

std::string makVrv::DtOsgShadowTechnique::generateFragmentMain ( DtPerChannelData perChannelData,
DtShadowSettingsObject shadowSettingObject 
)
private

Generates an optimized fragment main given the shadow settings.

bool makVrv::DtOsgShadowTechnique::getCameraSettings ( osg::Camera *  viewCamera,
DtPerChannelData **  perChannelData,
DtShadowSettingsObject **  shadowSettingObject,
bool isPlanView 
)
private

Gets camera shadow settings.

void makVrv::DtOsgShadowTechnique::initPerChannelData ( DtPerChannelData perChannelData,
DtShadowSettingsObject shadowSettingObject 
)
private

Initializes per channel data.

void makVrv::DtOsgShadowTechnique::installReceiverVPandSharedStateSet ( DtPerChannelData perChannelData,
DtShadowSettingsObject shadowSettingObject 
)
private

Initializes the virtual program and shared stateset for perChannelData.

void makVrv::DtOsgShadowTechnique::triggerExternalModuleShaderRefresh ( )
private
void makVrv::DtOsgShadowTechnique::updateCascadeImportance ( DtPerChannelData perChannelData,
DtShadowSettingsObject shadowSettingObject 
)
private

Updates Cascade Importance.

osg::Program* makVrv::DtOsgShadowTechnique::getProgramFromFile ( const std::string &  szVertexShader,
const std::string &  szFragmentShader 
)
private

Creates a Program with a vertex and fragment shader.

void makVrv::DtOsgShadowTechnique::installPreFilter ( DtPerChannelData perChannelData,
DtShadowSettingsObject shadowSettingObject,
osg::Camera *  depthCamera,
osg::Camera *  xBlurCamera,
osg::Camera *  yBlurCamera,
osg::Texture2DArray *  texture,
osg::StateSet *  stateSet,
unsigned int  textureUnit 
)
private

Installs PreFilter for texture 2d.

void makVrv::DtOsgShadowTechnique::installPreFilter ( DtPerChannelData perChannelData,
DtShadowSettingsObject shadowSettingObject,
osg::Camera *  depthCamera,
osg::Camera *  xBlurCamera,
osg::Camera *  yBlurCamera,
unsigned int  textureLayer,
osg::Texture2DArray *  texture2DArray,
osg::Texture2DArray *  preFilterTexture2DArray1,
osg::Texture2DArray *  preFilterTexture2DArray2 
)
private

Installs PreFilter for texture 2d Array.

void makVrv::DtOsgShadowTechnique::setupReverseZBuffer ( osg::Camera *  depthCamera,
osg::Camera *  xBlurCamera,
osg::Camera *  yBlurCamera 
)
private
void makVrv::DtOsgShadowTechnique::setupBlurCamera ( osg::Camera *  camera,
osg::ref_ptr< osg::Program > &  blurProgram,
const osg::Vec2 &  direction 
)
private
osg::Texture2D* makVrv::DtOsgShadowTechnique::createTexture2D ( int  width,
int  height,
GLenum  internalFormat,
GLenum  sourceFormat,
GLenum  sourceType,
bool  shadowComparisonMode,
osg::Texture2D::FilterMode  minFilter = osg::Texture2D::NEAREST,
osg::Texture2D::FilterMode  magFilter = osg::Texture2D::NEAREST 
)
private

Creates 2d texture.

osg::Texture2DArray* makVrv::DtOsgShadowTechnique::createTexture2DArray ( int  width,
int  height,
int  depth,
GLenum  internalFormat,
GLenum  sourceFormat,
GLenum  sourceType,
bool  shadowComparisonMode,
osg::Texture2DArray::FilterMode  minFilter = osg::Texture2DArray::NEAREST,
osg::Texture2DArray::FilterMode  magFilter = osg::Texture2DArray::NEAREST 
)
private

Creates 2d texture array.

osg::Camera* makVrv::DtOsgShadowTechnique::createCamera ( int  width,
int  height,
GLbitfield  clearMask 
)
private

Creates a simple camera.

osg::Geode* makVrv::DtOsgShadowTechnique::createFullScreenQuad ( const osg::Vec2 &  size,
const osg::Vec2 &  uvStart,
const osg::Vec2 &  uvStop 
)
private

Creates a full screen quad.

osg::Camera* makVrv::DtOsgShadowTechnique::createHudCamera ( int  width,
int  height,
GLbitfield  clearMask,
const char name = NULL 
)
private

Creates a hud camera with a full screen quad.

double makVrv::DtOsgShadowTechnique::computeUniformSplit ( double  nearDistance,
double  farDistance,
unsigned int  splitIndex,
unsigned int  numSplits 
)
private

Compute uniform split distance for specified cascade.

double makVrv::DtOsgShadowTechnique::computeLogarithmicSplit ( double  nearDistance,
double  farDistance,
unsigned int  splitIndex,
unsigned int  numSplits 
)
private

Compute logarithm split distance for specified cascade.

CameraDescription makVrv::DtOsgShadowTechnique::constructSplitLightCamera ( const DtCurrentPassData d,
int  split_index,
bool  farCascade = false 
)
private

Compute logarithm split distance for specified cascade.

void makVrv::DtOsgShadowTechnique::updateCameras ( const DtCurrentPassData d)
private
void makVrv::DtOsgShadowTechnique::getSplitCameraDistances ( const DtCurrentPassData d,
int  split_index,
double splitCamNear,
double splitCamFar 
)
private
void makVrv::DtOsgShadowTechnique::setDirty ( bool  dirty)
inlineprivate

Sets dirty for shadow technique's to true or false.

void makVrv::DtOsgShadowTechnique::frustumBoundingBoxLightViewSpace ( const DtCurrentPassData d,
int  split_index,
const osg::Matrix &  lightViewMatrix,
double  nearPlane,
double  farPlane,
osg::Vec3d &  minFrustum,
osg::Vec3d &  maxFrustum 
)
private

Friends And Related Function Documentation

friend struct DtCurrentPassData
friend

Member Data Documentation

class DtShadowTweakables* makVrv::DtOsgShadowTechnique::myShadowUI
const int makVrv::DtOsgShadowTechnique::MAX_NUM_CASCADES = 6
static
PerChannelDataMap makVrv::DtOsgShadowTechnique::myPerChannelDataMap
protected
PerChannelDataVector makVrv::DtOsgShadowTechnique::myPerChannelDataDeleteList
protected
osg::ref_ptr<osg::LightSource> makVrv::DtOsgShadowTechnique::myGlobalLight
protected
osg::ref_ptr<osg::Uniform> makVrv::DtOsgShadowTechnique::myLightDirectionUniform
protected
osg::ref_ptr<osg::Uniform> makVrv::DtOsgShadowTechnique::myReceiveShadowsUniform
protected
DtDe& makVrv::DtOsgShadowTechnique::myDe
protected
const std::string makVrv::DtOsgShadowTechnique::myShadowCameraPrefixString
staticprotected
osg::ref_ptr<osg::Program> makVrv::DtOsgShadowTechnique::myVsmBlurTextureProgram
protected
osg::ref_ptr<osg::Program> makVrv::DtOsgShadowTechnique::myVsmBlurTexArrayProgram
protected
osg::ref_ptr<osg::Program> makVrv::DtOsgShadowTechnique::myVsmPassthroughArrayProgram
protected
osg::ref_ptr<osg::Program> makVrv::DtOsgShadowTechnique::myVsmPassthroughProgram
protected
osg::ref_ptr<osg::Program> makVrv::DtOsgShadowTechnique::myEsmBlurTextureProgram
protected
osg::ref_ptr<osg::Program> makVrv::DtOsgShadowTechnique::myEsmBlurTexArrayProgram
protected
osg::ref_ptr<osg::Program> makVrv::DtOsgShadowTechnique::myEVsmBlurTextureProgram
protected
osg::ref_ptr<osg::Program> makVrv::DtOsgShadowTechnique::myEVsmBlurTexArrayProgram
protected
std::vector<osg::ref_ptr<osg::Camera> > makVrv::DtOsgShadowTechnique::myDeferredDeleteCamera
protected
tbb::mutex makVrv::DtOsgShadowTechnique::myDeferredCameraDeletionMutex
protected
bool makVrv::DtOsgShadowTechnique::myMulticastIsSupported
protected
bool makVrv::DtOsgShadowTechnique::myShadingRateIsSupported
protected
DtSkyObjectManager& makVrv::DtOsgShadowTechnique::mySkyObjectManager
protected
boost::signalslib::connection makVrv::DtOsgShadowTechnique::myTerrainPatchAddedConnection
protected
boost::signalslib::connection makVrv::DtOsgShadowTechnique::myTerrainPatchDeletedConnection
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)