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

A drawable for drawing the cloud layer.

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

Public Member Functions

virtual ~DtCloudDrawable ()
 
virtual void drawImplementation (osg::RenderInfo &renderInfo) const
 
virtual void cleanupCloudLayer (SilverLining::Atmosphere *atmosphere, unsigned int layerHandle) const
 

Public Attributes

friend DtCloudDrawableCreator
 

Protected Member Functions

 DtCloudDrawable (DtDe &de, DtSilverliningGroup *parent)
 
virtual void fadeCloudsWithAltitude (const Vector3_64 &cameraPosition, SilverLining::CloudLayer *layer, SilverLining::ThreadCameraStreamData *tcsData, DtSilverLiningGroupTcsUserData *userData) const
 
virtual void fadeCloudsWithAltitude (const Vector3_64 &cameraPosition, SilverLining::Atmosphere *atmosphere, SilverLining::ThreadCameraStreamData *tcsData, DtSilverLiningGroupTcsUserData *userData) const
 
virtual void updateCloudAltitudes (const Vector3_64 &cameraPosition, SilverLining::Atmosphere *atmosphere, SilverLining::ThreadCameraStreamData *tcsData, DtSilverLiningGroupTcsUserData *userData) const
 
virtual bool updateShader (osg::Node *node, osg::State &state, SilverLining::Atmosphere *atmosphere, SilverLining::ThreadCameraStreamData *tcsData, DtSilverLiningGroupTcsUserData *userData) const
 
virtual void updateOpenGLState (osg::State &state, SilverLining::Atmosphere *atmosphere, osg::Camera *osgCamera, SilverLining::ThreadCameraStreamData *tcsData, DtSilverLiningGroupTcsUserData *userData) const
 
virtual void setIsReflectionUniform (const osg::Camera *osgCamera, SilverLining::Atmosphere *atm, bool isReflection, SilverLining::ThreadCameraStreamData *tcsData) const
 
virtual void slot_environmentChanged (const std::string &name)
 
virtual bool computeHeightAboveTerrain (const Vector3_64 &localPosition, double &heightOfGround, DtSilverLiningGroupTcsUserData *userData) const
 
virtual void updateCloudLayerAltitudes (SilverLining::Atmosphere *atmosphere, SilverLining::ThreadCameraStreamData *tcsData, DtSilverLiningGroupTcsUserData *userData) const
 
virtual void updateCubeMap (SilverLining::Atmosphere *atmosphere, SilverLining::ThreadCameraStreamData *tcsData, const osg::Camera *osgCamera, const Vector3_64 &cameraPosition, osg::State &state, DtSilverLiningGroupTcsUserData *userData) const
 
virtual bool updateDepthTextureIfNecessary (osg::RenderInfo &renderInfo) const
 
virtual bool anyLayerNeedsDepthTexture (void) const
 
virtual void unbindDepthTexture (osg::RenderInfo &renderInfo) const
 

Protected Attributes

std::vector< unsigned intmyUserShaderVector
 
DtSilverliningGroupmyParent
 
DtDemyDe
 
const bool myShadingRateIsSupported
 
DtSignalConnectionManager myConnections
 
DtFrameTextureBlitterManagermyFrameTextureBlitterManager
 

Private Member Functions

 DtCloudDrawable ()=delete
 
 DtCloudDrawable (const DtCloudDrawable &rhs)=delete
 
DtCloudDrawableoperator= (const DtCloudDrawable &rhs)=delete
 

Constructor & Destructor Documentation

virtual makVrv::DtCloudDrawable::~DtCloudDrawable ( )
virtual

DTOR.

makVrv::DtCloudDrawable::DtCloudDrawable ( DtDe de,
DtSilverliningGroup parent 
)
protected

CTOR.

makVrv::DtCloudDrawable::DtCloudDrawable ( )
privatedelete

not allowed

makVrv::DtCloudDrawable::DtCloudDrawable ( const DtCloudDrawable rhs)
privatedelete

Member Function Documentation

DtCloudDrawable& makVrv::DtCloudDrawable::operator= ( const DtCloudDrawable rhs)
privatedelete
virtual void makVrv::DtCloudDrawable::drawImplementation ( osg::RenderInfo &  renderInfo) const
virtual

Actually do the drawing.

virtual void makVrv::DtCloudDrawable::cleanupCloudLayer ( SilverLining::Atmosphere *  atmosphere,
unsigned int  layerHandle 
) const
virtual

Used to cleanup any SilverLining::CloudLayer specific state that the drawable has. currently only removes the entry in the default altitude map.

virtual void makVrv::DtCloudDrawable::fadeCloudsWithAltitude ( const Vector3_64 cameraPosition,
SilverLining::CloudLayer *  layer,
SilverLining::ThreadCameraStreamData *  tcsData,
DtSilverLiningGroupTcsUserData userData 
) const
protectedvirtual

fade clouds depending on the altitude, for a given layer

virtual void makVrv::DtCloudDrawable::fadeCloudsWithAltitude ( const Vector3_64 cameraPosition,
SilverLining::Atmosphere *  atmosphere,
SilverLining::ThreadCameraStreamData *  tcsData,
DtSilverLiningGroupTcsUserData userData 
) const
protectedvirtual

fade clouds depending on the altitude for all layers; calls the method above for each layer

virtual void makVrv::DtCloudDrawable::updateCloudAltitudes ( const Vector3_64 cameraPosition,
SilverLining::Atmosphere *  atmosphere,
SilverLining::ThreadCameraStreamData *  tcsData,
DtSilverLiningGroupTcsUserData userData 
) const
protectedvirtual

update cloud altitudes

virtual bool makVrv::DtCloudDrawable::updateShader ( osg::Node *  node,
osg::State &  state,
SilverLining::Atmosphere *  atmosphere,
SilverLining::ThreadCameraStreamData *  tcsData,
DtSilverLiningGroupTcsUserData userData 
) const
protectedvirtual
virtual void makVrv::DtCloudDrawable::updateOpenGLState ( osg::State &  state,
SilverLining::Atmosphere *  atmosphere,
osg::Camera *  osgCamera,
SilverLining::ThreadCameraStreamData *  tcsData,
DtSilverLiningGroupTcsUserData userData 
) const
protectedvirtual
virtual void makVrv::DtCloudDrawable::setIsReflectionUniform ( const osg::Camera *  osgCamera,
SilverLining::Atmosphere *  atm,
bool  isReflection,
SilverLining::ThreadCameraStreamData *  tcsData 
) const
protectedvirtual
virtual void makVrv::DtCloudDrawable::slot_environmentChanged ( const std::string &  name)
protectedvirtual

Slot when the environment is changed, for example, change from cloudy to snowy.

Parameters
nameThe new name of the environment
virtual bool makVrv::DtCloudDrawable::computeHeightAboveTerrain ( const Vector3_64 localPosition,
double heightOfGround,
DtSilverLiningGroupTcsUserData userData 
) const
protectedvirtual

compute height above terrain

virtual void makVrv::DtCloudDrawable::updateCloudLayerAltitudes ( SilverLining::Atmosphere *  atmosphere,
SilverLining::ThreadCameraStreamData *  tcsData,
DtSilverLiningGroupTcsUserData userData 
) const
protectedvirtual

update cloud layer altitude

virtual void makVrv::DtCloudDrawable::updateCubeMap ( SilverLining::Atmosphere *  atmosphere,
SilverLining::ThreadCameraStreamData *  tcsData,
const osg::Camera *  osgCamera,
const Vector3_64 cameraPosition,
osg::State &  state,
DtSilverLiningGroupTcsUserData userData 
) const
protectedvirtual

update cube map

virtual bool makVrv::DtCloudDrawable::updateDepthTextureIfNecessary ( osg::RenderInfo &  renderInfo) const
protectedvirtual

Copy the depth buffer from the currently bound frame buffer to a texture that the clouds can use for smoothing clouds near other objects. Returns true if the depth texture was actually updated and bound.

virtual bool makVrv::DtCloudDrawable::anyLayerNeedsDepthTexture ( void  ) const
protectedvirtual

Whether any cloud layer needs the depth texture (e.g. stratocumulus always needs it)

virtual void makVrv::DtCloudDrawable::unbindDepthTexture ( osg::RenderInfo &  renderInfo) const
protectedvirtual

After the drawable is done with the depth texture we need to unbind it so SLI is fast.

Member Data Documentation

friend makVrv::DtCloudDrawable::DtCloudDrawableCreator
std::vector<unsigned int> makVrv::DtCloudDrawable::myUserShaderVector
mutableprotected
DtSilverliningGroup* makVrv::DtCloudDrawable::myParent
protected
DtDe& makVrv::DtCloudDrawable::myDe
protected
const bool makVrv::DtCloudDrawable::myShadingRateIsSupported
protected
DtSignalConnectionManager makVrv::DtCloudDrawable::myConnections
protected
DtFrameTextureBlitterManager& makVrv::DtCloudDrawable::myFrameTextureBlitterManager
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)