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
makVrv::DtSilverliningGroup Class Reference

A group node which adds a silver-lining sky and will light all Children with the proper lighting parameters.

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

Public Member Functions

virtual ~DtSilverliningGroup ()
 
virtual void setGenerateCubeMaps (bool enabled)
 
virtual unsigned int findCubeMap (const osg::ref_ptr< const osg::Camera > &osgCamera) const
 
virtual void applyFog (osg::ref_ptr< const osg::Camera > osgCamera, SilverLining::ThreadCameraStreamData *slTcsData, SilverLining::Location *slLocation, bool adjustForCoverage)
 
virtual void deleteGeods ()
 
virtual void setForcedMoonPhase (float phase)
 
virtual void clearForcedMoonPhase ()
 
virtual bool moonPhaseIsForced () const
 
virtual float forcedMoonPhase () const
 
virtual void setForcedSunAndMoon (double sunLat, double sunLon, double moonLat, double moonLon, bool horizonCoords=true)
 
virtual void clearForcedSunAndMoon ()
 
virtual bool sunAndMoonPositionIsForced () const
 
virtual void getForcedSunAndMoonPosition (double &sunLat, double &sunLon, double &moonLat, double &moonLon, bool &horizonCoords) const
 
DtVector3< float > sunOrMoonPosition (const osg::Camera *osgCamera) const
 
virtual void setLightPollution (double Wm2)
 
virtual double lightPollution () const
 
virtual void setLocation (const DtVector &location, osg::ref_ptr< const osg::Camera > osgCamera, SilverLining::ThreadCameraStreamData *tcsData, bool useGlobalTimeZoneOverride, bool updateTimeInAtmosphere)
 
virtual void update (const osg::Matrix &modelViewMatrix, osg::ref_ptr< const osg::Camera > osgCamera, SilverLining::ThreadCameraStreamData *tcsData)
 
virtual void update2D (const osg::Matrixd &m, const osg::Camera *osgCamera)
 
virtual void removeCloudLayer (DtCloudLayerId layerId)
 
virtual void removeCloudLayers ()
 
virtual void setFogColor (const Vector4_32 &rgbA)
 
virtual void setFogHeight (float height)
 
virtual void setFogBlend (const Vector4_32 &rgbA, float density)
 
virtual void setFogOverride (osg::ref_ptr< const osg::Camera > osgCamera, const Vector4_32 &rgbA, float density, float cameraDepth)
 
virtual void setFogThresholdDistance (float distance)
 
virtual void setHorizonColor (const Vector4_32 &rgbA)
 
virtual void setCubeMapDirty ()
 
virtual void setUse16BitEnviroMap (bool flag)
 
virtual bool getUse16BitEnviroMap ()
 
virtual void setUsingSensorFXShader (bool flag)
 
virtual bool getUsingSensorFXShader ()
 
virtual void clearHorizonColor ()
 
virtual void clearFogOverride (osg::ref_ptr< const osg::Camera > osgCamera)
 
virtual void clearFogOverrideForAllCameras (void)
 
virtual bool useGlobalTimeZone () const
 
virtual float sunAlpha (const osg::Camera *osgCamera) const
 
virtual void setDrawSunAndMoonIntoEnvMap (const osg::Camera *osgCamera, bool draw)
 
virtual float getSkyCoverage (osg::ref_ptr< const osg::Camera > osgCamera) const
 
virtual void addCirroCumulus (DtCloudLayerId layerId, const DtVector &position, float orientation, const DtVector &bounds, bool infinite, bool relative, bool fadeAtAltitude, bool altitudeIsHAT)
 
virtual void addCirroStratus (DtCloudLayerId layerId, const DtVector &position, float orientation, const DtVector &bounds, bool infinite, bool relative, bool fadeAtAltitude, bool altitudeIsHAT)
 
virtual void addCirrusFibratus (DtCloudLayerId layerId, const DtVector &position, float orientation, const DtVector &bounds, bool infinite, bool relative, bool fadeAtAltitude, bool altitudeIsHAT)
 
virtual void addNimbostratus (DtCloudLayerId layerId, const DtVector &position, float orientation, const DtVector &bounds, double density, bool infinite, bool relative, bool fadeAtAltitude, bool altitudeIsHAT)
 
virtual void addCumulusMediocris (DtCloudLayerId layerId, const DtVector &position, float orientation, float cornerRadius, const DtVector &bounds, double density, bool infinite, bool relative, bool fadeAtAltitude, bool altitudeIsHAT)
 
virtual void addCumulusCongestus (DtCloudLayerId layerId, const DtVector &position, float orientation, float cornerRadius, const DtVector &bounds, double density, bool infinite, bool relative, bool fadeAtAltitude, bool altitudeIsHAT)
 
virtual void addCumulonimbusCappilatus (DtCloudLayerId layerId, const DtVector &position, float orientation, const DtVector &bounds, double density, bool relative, bool fadeAtAltitude, bool altitudeIsHAT)
 
virtual void addStratocumulus (DtCloudLayerId layerId, const DtVector &position, float orientation, float cornerRadius, const DtVector &bounds, double density, bool infinite, bool relative, bool fadeAtAltitude, bool altitudeIsHAT)
 
virtual void addGroundFog (DtCloudLayerId layerId, const DtVector &position, float orientation, float cornerRadius, const DtVector &bounds, double density, bool infinite, bool relative, bool fadeAtAltitude, bool altitudeIsHAT)
 
virtual void setCloudLayerEnabled (DtCloudLayerId layerId, bool enabled, SilverLining::ThreadCameraStreamData *tcsData)
 
virtual void setCloudLayerPositionAndOrientation (DtCloudLayerId layerId, const DtVector &position, float orientation)
 
virtual void setWind (const double directionDEN, const double minAltitude, const double maxAltitude, const double velocity)
 
virtual const Vector2_32wind (void) const
 
virtual void setAirTurbidity (float turbidity)
 
virtual void setVisibleDistance (const osg::Camera *osgCamera, float distance)
 
virtual float getVisibleDistance () const
 
virtual void createAtmosphere ()
 
virtual bool getFailedInit ()
 
virtual void addRain (float mmPerHour, bool global)
 
virtual void addSleet (float mmPerHour, bool global)
 
virtual void addSnow (float mmPerHour, bool global, bool wet)
 
virtual void clearAllPrecipitation (SilverLining::ThreadCameraStreamData *tcsData)
 
virtual bool realizeLayers (SilverLining::ThreadCameraStreamData *tcsData, DtSilverLiningGroupTcsUserData *userData)
 
virtual SilverLining::Atmosphere * findAtmosphere ()
 
virtual const
SilverLining::Atmosphere * 
findAtmosphere () const
 
virtual void getGMTDateTime (long &julianDate, double &GMTTod) const
 
virtual osg::Node * getCloudsNode ()
 
virtual osg::Node * getSkyNode ()
 
virtual void setSunMoonEnabled (bool drawSunMoon)
 
virtual bool sunMoonEnabled ()
 
virtual void setStarsEnabled (bool drawStars)
 
virtual bool starsEnabled ()
 
virtual void enableLighting (osg::ref_ptr< osg::Camera > osgCamera, bool enable)
 
void setEnableHDR (bool enable)
 
virtual osg::LightSource * skyLight (const osg::Camera *osgCamera)
 
virtual const osg::LightSource * skyLight (const osg::Camera *osgCamera) const
 
virtual const CloudLayerMapcloudLayerMap () const
 
virtual void fillCrepuscularRaysParameters (DtCrepuscularRaysParameters &params, const osg::Camera *osgCamera) const
 
virtual const DtCloudLayerManagercloudLayerManager (void) const
 
virtual DtCloudLayerManagercloudLayerManager (void)
 
virtual DtOsgFogComponentfindFogComponent () const
 
virtual
DtSilverLiningGroupTcsUserData
getOrCreateUserData (const osg::Camera *osgCamera)
 
virtual
DtSilverLiningGroupTcsUserData
findUserData (const osg::Camera *osgCamera)
 
virtual const
DtSilverLiningGroupTcsUserData
findUserData (const osg::Camera *osgCamera) const
 
virtual
SilverLining::ThreadCameraStreamData * 
findSilverLiningTcsData (const osg::Camera *osgCamera)
 
virtual
SilverLining::ThreadCameraStreamData * 
findSilverLiningTcsData (const osg::Camera *osgCamera) const
 
virtual void reloadShaders (const std::vector< unsigned int > &shaderVector, const std::string &userDefinedVertString, const std::string &userDefinedFragString)
 
virtual float fogDensity (const osg::Camera *osgCamera) const
 
virtual Vector4_32 fogColor (const osg::Camera *osgCamera) const
 
virtual Vector4_32 ambientColor (const osg::Camera *osgCamera) const
 
virtual Vector4_32 diffuseColor (const osg::Camera *osgCamera) const
 
virtual Vector3_32 lightPosition (const osg::Camera *osgCamera) const
 
virtual float smoothingDistance (void) const
 
virtual const
DtThreadCameraStreamDataManagerBase
tcsDataManager (void) const
 
virtual
DtThreadCameraStreamDataManagerBase
tcsDataManager (void)
 
virtual void setCubeMapDirtyState (int val)
 
virtual DtCloudDrawablecloudDrawable (void)
 
virtual void clearCachedProgramsAndUniformLocations (DtThreadCameraStreamDataManagerBase *tcsDataManager)
 
virtual
DtSilverLiningGroupSkyLightTcsUserData
getOrCreateSkyLightUserData (const osg::Camera *osgCamera)
 
virtual const
DtSilverLiningGroupSkyLightTcsUserData
findSkyLightUserData (const osg::Camera *osgCamera) const
 
virtual std::string userDefinedVertString (void) const
 
virtual std::string userDefinedFragString (void) const
 

Public Attributes

friend DtSilverliningGroupCreator
 

Protected Member Functions

 DtSilverliningGroup (DtDe &de)
 
DtDemyDe
 
OpenThreads::Mutex myMutex
 
SilverLining::Atmosphere * myAtmosphere
 
DtCloudLayerManagermyLayerManager
 
osg::ref_ptr< osg::Geode > mySkyGeode
 
osg::ref_ptr< osg::Geode > myCloudGeode
 
osg::ref_ptr< DtLightManagerGroupmyLightManagerGroup
 
Vector4_32 myFogColor
 
Vector4_32 myBlendedFogColor
 
Vector4_32 myHorizonColor
 
Vector2_32 myWind
 
bool myHasFixedHorizonColor
 
float myFogDensity
 
float myVisibility
 
float myTurbidity
 
bool myCubeMapEnabled
 
bool myMoonPhaseForced
 
float myForcedMoonPhase
 
bool mySunAndMoonPositionForced
 
float myForcedSunLat
 
float myForcedSunLon
 
float myForcedMoonLat
 
float myForcedMoonLon
 
bool myForcedSunAndMoonUsingHorizonCoords
 
float myStratocumulusVoxelDimension
 
bool myUse16BitEnviroMap
 
bool myUsingSensorFXShader
 
float myFogHeight
 
float myFogThresholdDistance
 
int myGlobalPrecipitationType
 
float myGlobalPrecipitationIntensity
 
osg::ref_ptr< DtOsgFogComponentmyFogComponent
 
osg::ref_ptr
< DtOsgGlobalShaderComponent
myGlobalShaderComponent
 
std::vector< unsigned intmyDefaultShaderVector
 
bool myDrawStars
 
bool myDrawSunMoon
 
DtSignalConnectionManager myConnections
 
bool myFailedInit
 
double myLastImGuiSimTime
 
bool myOverrideLightPositionEnabled
 
Vector3_32 myOverrideLightPosition
 
bool myUseAzimuthElevationForOverrideGui
 
bool myEnableSmoothClouds
 
float mySmoothCloudsDist
 
DtSilverLiningGroupTcsUserDataCreatormyUserDataCreator
 
DtGlDeleteObjectManagermyGlDeleteObjectManager
 
DtThreadCameraStreamDataManagermyGlobalTcsDataManager
 
DtSilverLiningGroupSkyLightTcsUserDataCreatormySkyLightUserDataCreator
 
DtOsgLightManagermyOsgLightManager
 
static std::atomic< inttheSlTcsDatasCount
 
static const bool theSlTcsDatasCountLog
 
static std::atomic< inttheCameraId
 
static const float theDefaultCubeMapUpdateAndRelightTime
 
static const float theAtmosphereTresholdTrigger
 
static bool theBillboardRotationEnabled
 
static const double theGeocTrueLightingAltitude
 
static const double theMaxPrecipitationAltitude
 
static const double theMaximumCloudVisibility
 
static const double theSkyFogginess
 
static const double theSkyHazeHeightFactor
 
static const double theSunAlphaFactor
 
static
DtDtSilverLiningGroupCameraObserver 
theCameraObserver
 
class DtDtSilverLiningGroupCameraObserver
 
class DtSlTcsDataDeleter
 
virtual void addLayer (DtCloudLayerId layerId, const DtSilverLiningCloudLayer &layer)
 
virtual int calculateZoneByLongitude (double longitude) const
 
virtual void setDateAndTime (unsigned short year, unsigned char month, unsigned char day, unsigned char hour, unsigned char minutes, double seconds, osg::ref_ptr< const osg::Camera > osgCamera, bool observeDaylightSavings, bool useGlobalTimeZoneOverride, bool updateTimeInAtmosphere)
 
virtual void fillConditionsFromSkyObjectAtCreation (DtOsgSkyObject *skyObject)
 
virtual void addPrecipitationToClouds (int type, float mmPerHour)
 
virtual void updatePrecipitation (const DtVector &location, SilverLining::ThreadCameraStreamData *tcsData) const
 
virtual void setCloudVisibility (const osg::Camera *osgCamera, SilverLining::ThreadCameraStreamData *slTcsData, SilverLining::Location *slLocation)
 
virtual void traverse (osg::NodeVisitor &nv)
 
virtual void updateCubeMap (osg::ref_ptr< const osg::Camera > osgCamera)
 
virtual void slot_reloadShader ()
 
virtual void updateImGui (float &x, float &y, float &z, SilverLining::ThreadCameraStreamData *slTcsData, SilverLining::Location *slLocation)
 
virtual void calculateAndFillFogParameters (osg::ref_ptr< const osg::Camera > osgCamera, SilverLining::ThreadCameraStreamData *slTcsData, SilverLining::Location *slLocation, DtSilverLiningFogParameters &fogParameters, bool adjustCoverage) const
 
virtual bool isTimeAndZoneTheSameExcludingMinutesAndSeconds (const SilverLining::LocalTime *lhs, const SilverLining::LocalTime *rhs) const
 
virtual void updateImGuiAndGetModifiersOffOfImgGui (DtCrepuscularRaysModifiers &modifiers, float r, float g, float b, float sunPosX, float sunPosY, float sunPosZ, float exposure) const
 
virtual void fillRaysParameters (SilverLining::Vector3 &sunClipPos, SilverLining::Vector4 &slparams, const SilverLining::ThreadCameraStreamData *tcsData, const SilverLining::Atmosphere *atmosphere) const
 
virtual void computeSunPositionClipSpace (SilverLining::Vector3 &sunClip, bool &clipped, bool &behind, const SilverLining::Vector3 &sunWorld, const SilverLining::ThreadCameraStreamData *tcsData) const
 
virtual void updateTimeInAtmosphere (osg::ref_ptr< const osg::Camera > osgCamera)
 
virtual const osg::Camera * actualCameraIfMultiView (const osg::Camera *_osgCamera) const
 
virtual void destroyAtmosphere (SilverLining::Atmosphere *atmosphere)
 
virtual void releaseAtmosphere ()
 
virtual void objectDeleted (void *object)
 
virtual void deleteSlTcsData (SilverLining::ThreadCameraStreamData *slTcsData, SilverLining::Atmosphere *atmosphere)
 
virtual int numOutstandingUserDatas (DtThreadCameraStreamDataManagerBase *tcsDataManager) const
 
virtual void copySlTcsDatasTo (tbb::concurrent_queue< SilverLining::ThreadCameraStreamData * > &slTcsDatas) const
 
virtual void markForceRelight (DtThreadCameraStreamDataManagerBase *tcsDataManager)
 
static void enableBillboardRotation (bool val)
 
static bool billboardRotationEnabled ()
 
static double maxPrecipitationAltitude (void)
 

Constructor & Destructor Documentation

virtual makVrv::DtSilverliningGroup::~DtSilverliningGroup ( )
virtual

DTOR.

makVrv::DtSilverliningGroup::DtSilverliningGroup ( DtDe de)
protected

CTOR.

Member Function Documentation

virtual void makVrv::DtSilverliningGroup::setGenerateCubeMaps ( bool  enabled)
virtual

Enable auto-generation of cube maps from the sky.

virtual unsigned int makVrv::DtSilverliningGroup::findCubeMap ( const osg::ref_ptr< const osg::Camera > &  osgCamera) const
virtual

Retrieve a texture ID for a cube map containing the local sky for a given camera.

virtual void makVrv::DtSilverliningGroup::applyFog ( osg::ref_ptr< const osg::Camera >  osgCamera,
SilverLining::ThreadCameraStreamData *  slTcsData,
SilverLining::Location *  slLocation,
bool  adjustForCoverage 
)
virtual

Apply fog for a given camera. adjust for coverage indicates whether to use the coverage of all the cloud layers for modulating the fog blend.

virtual void makVrv::DtSilverliningGroup::deleteGeods ( )
virtual

Tell the silver-lining group to delete its specific children.

virtual void makVrv::DtSilverliningGroup::setForcedMoonPhase ( float  phase)
virtual

Forces the moon phase regardless of simulated date. 0 = new moon, 1.0 = full moon.

virtual void makVrv::DtSilverliningGroup::clearForcedMoonPhase ( )
virtual

Clears a forced moon phase and goes back to simulating it based on the date.

virtual bool makVrv::DtSilverliningGroup::moonPhaseIsForced ( ) const
virtual

Retrieves whether a forced moon phase is being used.

virtual float makVrv::DtSilverliningGroup::forcedMoonPhase ( ) const
virtual

Retrieves the forced moon phase (if any)

virtual void makVrv::DtSilverliningGroup::setForcedSunAndMoon ( double  sunLat,
double  sunLon,
double  moonLat,
double  moonLon,
bool  horizonCoords = true 
)
virtual

Force latitude and longitude of the sun & moon to specified positions, using horizon (default) or ecliptic coordinates Note latitudes and longitudes are in radians.

virtual void makVrv::DtSilverliningGroup::clearForcedSunAndMoon ( )
virtual
virtual bool makVrv::DtSilverliningGroup::sunAndMoonPositionIsForced ( ) const
virtual

Retrieves whether a forced sun and moon is being used.

virtual void makVrv::DtSilverliningGroup::getForcedSunAndMoonPosition ( double sunLat,
double sunLon,
double moonLat,
double moonLon,
bool horizonCoords 
) const
virtual

Retrieves the forced sun an moon position (if any)

DtVector3<float> makVrv::DtSilverliningGroup::sunOrMoonPosition ( const osg::Camera *  osgCamera) const
virtual void makVrv::DtSilverliningGroup::setLightPollution ( double  Wm2)
virtual

Sets the simulated amount of nighttime light pollution, in watts per square meter. Defaults to zero. A reasonable value would be in the order of 0.01 */.

virtual double makVrv::DtSilverliningGroup::lightPollution ( ) const
virtual

Gets the simulated light pollution in watts per square meter.

virtual void makVrv::DtSilverliningGroup::setLocation ( const DtVector location,
osg::ref_ptr< const osg::Camera >  osgCamera,
SilverLining::ThreadCameraStreamData *  tcsData,
bool  useGlobalTimeZoneOverride,
bool  updateTimeInAtmosphere 
)
virtual

Set the location using a local coordinate (it will be converted to the global coordinate using the current coordinate system).

Reimplemented in makVrf::DtVrfSilverliningGroup.

virtual void makVrv::DtSilverliningGroup::update ( const osg::Matrix &  modelViewMatrix,
osg::ref_ptr< const osg::Camera >  osgCamera,
SilverLining::ThreadCameraStreamData *  tcsData 
)
virtual

Update the lighting.

virtual void makVrv::DtSilverliningGroup::update2D ( const osg::Matrixd &  m,
const osg::Camera *  osgCamera 
)
virtual

Update the lighting in 2D mode.

virtual void makVrv::DtSilverliningGroup::removeCloudLayer ( DtCloudLayerId  layerId)
virtual

Remove a cloud layer.

virtual void makVrv::DtSilverliningGroup::removeCloudLayers ( )
virtual

Remove all cloud layers.

virtual void makVrv::DtSilverliningGroup::setFogColor ( const Vector4_32 rgbA)
virtual

Set the fog color (which will be lit based on time of day) when visibility gets below the fog threshold distance.

virtual void makVrv::DtSilverliningGroup::setFogHeight ( float  height)
virtual

Sets the simulated height of the fog on the skybox only.

virtual void makVrv::DtSilverliningGroup::setFogBlend ( const Vector4_32 rgbA,
float  density 
)
virtual

Set parameters to blend with the fog specified in setFogColor. The the fog alpha is the blend parameter w/ 1.0 is 100% user set fog.

virtual void makVrv::DtSilverliningGroup::setFogOverride ( osg::ref_ptr< const osg::Camera >  osgCamera,
const Vector4_32 rgbA,
float  density,
float  cameraDepth 
)
virtual

Override all fog computations to the given fog color & density.

Parameters
cameraDepthis the depth of the camera when under water, it is used to modify the color and intensity of the fog override
virtual void makVrv::DtSilverliningGroup::setFogThresholdDistance ( float  distance)
virtual

Sets the visibility distance at which fog effects kick in instead of haze.

virtual void makVrv::DtSilverliningGroup::setHorizonColor ( const Vector4_32 rgbA)
virtual

Set the color of the sky at and below the horizon.

virtual void makVrv::DtSilverliningGroup::setCubeMapDirty ( )
virtual

Set the cube map dirty flag.

virtual void makVrv::DtSilverliningGroup::setUse16BitEnviroMap ( bool  flag)
virtual

Set the silverlining atmosphere to use a 16 bit environment map.

virtual bool makVrv::DtSilverliningGroup::getUse16BitEnviroMap ( )
virtual

Get whether or not the atmosphere should use a 16 bit environment map.

virtual void makVrv::DtSilverliningGroup::setUsingSensorFXShader ( bool  flag)
virtual

Set the flag that silverlining is using the sensorFX shaders.

virtual bool makVrv::DtSilverliningGroup::getUsingSensorFXShader ( )
virtual

Get the flag that silverlining is using the sensorFX shaders.

virtual void makVrv::DtSilverliningGroup::clearHorizonColor ( )
virtual

Clear usage of a set horizon color.

virtual void makVrv::DtSilverliningGroup::clearFogOverride ( osg::ref_ptr< const osg::Camera >  osgCamera)
virtual

Undo any override for fog previously set for this camera.

virtual void makVrv::DtSilverliningGroup::clearFogOverrideForAllCameras ( void  )
virtual

Undo any override for fog previously set for all cameras.

virtual bool makVrv::DtSilverliningGroup::useGlobalTimeZone ( ) const
virtual

Get the current value of using GMT time for observer.

virtual float makVrv::DtSilverliningGroup::sunAlpha ( const osg::Camera *  osgCamera) const
virtual

Gets the alpha value of the sun disc (affected by fog)

virtual void makVrv::DtSilverliningGroup::setDrawSunAndMoonIntoEnvMap ( const osg::Camera *  osgCamera,
bool  draw 
)
virtual

Sets whether the sun and moon are drawn into the environment map for reflections.

virtual float makVrv::DtSilverliningGroup::getSkyCoverage ( osg::ref_ptr< const osg::Camera >  osgCamera) const
virtual

Retrieve the percentage of sky occluded by clouds, above the current camera position.

virtual void makVrv::DtSilverliningGroup::addCirroCumulus ( DtCloudLayerId  layerId,
const DtVector position,
float  orientation,
const DtVector bounds,
bool  infinite,
bool  relative,
bool  fadeAtAltitude,
bool  altitudeIsHAT 
)
virtual

Add cirrocumulus clouds to the scene.

virtual void makVrv::DtSilverliningGroup::addCirroStratus ( DtCloudLayerId  layerId,
const DtVector position,
float  orientation,
const DtVector bounds,
bool  infinite,
bool  relative,
bool  fadeAtAltitude,
bool  altitudeIsHAT 
)
virtual

Add cirrostratus clouds to the scene.

virtual void makVrv::DtSilverliningGroup::addCirrusFibratus ( DtCloudLayerId  layerId,
const DtVector position,
float  orientation,
const DtVector bounds,
bool  infinite,
bool  relative,
bool  fadeAtAltitude,
bool  altitudeIsHAT 
)
virtual

Add cirrus fibratus clouds to the scene.

virtual void makVrv::DtSilverliningGroup::addNimbostratus ( DtCloudLayerId  layerId,
const DtVector position,
float  orientation,
const DtVector bounds,
double  density,
bool  infinite,
bool  relative,
bool  fadeAtAltitude,
bool  altitudeIsHAT 
)
virtual

Add nimbostratus clouds to the scene.

virtual void makVrv::DtSilverliningGroup::addCumulusMediocris ( DtCloudLayerId  layerId,
const DtVector position,
float  orientation,
float  cornerRadius,
const DtVector bounds,
double  density,
bool  infinite,
bool  relative,
bool  fadeAtAltitude,
bool  altitudeIsHAT 
)
virtual

Add cumulus meodiocris clouds to the scene.

virtual void makVrv::DtSilverliningGroup::addCumulusCongestus ( DtCloudLayerId  layerId,
const DtVector position,
float  orientation,
float  cornerRadius,
const DtVector bounds,
double  density,
bool  infinite,
bool  relative,
bool  fadeAtAltitude,
bool  altitudeIsHAT 
)
virtual

Add cumulus congestus clouds to the scene.

virtual void makVrv::DtSilverliningGroup::addCumulonimbusCappilatus ( DtCloudLayerId  layerId,
const DtVector position,
float  orientation,
const DtVector bounds,
double  density,
bool  relative,
bool  fadeAtAltitude,
bool  altitudeIsHAT 
)
virtual

Add cumulus cappilatus clouds to the scene.

virtual void makVrv::DtSilverliningGroup::addStratocumulus ( DtCloudLayerId  layerId,
const DtVector position,
float  orientation,
float  cornerRadius,
const DtVector bounds,
double  density,
bool  infinite,
bool  relative,
bool  fadeAtAltitude,
bool  altitudeIsHAT 
)
virtual

Add cumulus stratocumulus clouds to the scene.

virtual void makVrv::DtSilverliningGroup::addGroundFog ( DtCloudLayerId  layerId,
const DtVector position,
float  orientation,
float  cornerRadius,
const DtVector bounds,
double  density,
bool  infinite,
bool  relative,
bool  fadeAtAltitude,
bool  altitudeIsHAT 
)
virtual

Add cumulus ground fog clouds to the scene.

virtual void makVrv::DtSilverliningGroup::setCloudLayerEnabled ( DtCloudLayerId  layerId,
bool  enabled,
SilverLining::ThreadCameraStreamData *  tcsData 
)
virtual
virtual void makVrv::DtSilverliningGroup::setCloudLayerPositionAndOrientation ( DtCloudLayerId  layerId,
const DtVector position,
float  orientation 
)
virtual
virtual void makVrv::DtSilverliningGroup::setWind ( const double  directionDEN,
const double  minAltitude,
const double  maxAltitude,
const double  velocity 
)
virtual
virtual const Vector2_32& makVrv::DtSilverliningGroup::wind ( void  ) const
virtual

Access wind vector.

virtual void makVrv::DtSilverliningGroup::setAirTurbidity ( float  turbidity)
virtual
virtual void makVrv::DtSilverliningGroup::setVisibleDistance ( const osg::Camera *  osgCamera,
float  distance 
)
virtual
virtual float makVrv::DtSilverliningGroup::getVisibleDistance ( ) const
virtual
virtual void makVrv::DtSilverliningGroup::createAtmosphere ( )
virtual
virtual bool makVrv::DtSilverliningGroup::getFailedInit ( )
inlinevirtual
virtual void makVrv::DtSilverliningGroup::addRain ( float  mmPerHour,
bool  global 
)
virtual
virtual void makVrv::DtSilverliningGroup::addSleet ( float  mmPerHour,
bool  global 
)
virtual
virtual void makVrv::DtSilverliningGroup::addSnow ( float  mmPerHour,
bool  global,
bool  wet 
)
virtual
virtual void makVrv::DtSilverliningGroup::clearAllPrecipitation ( SilverLining::ThreadCameraStreamData *  tcsData)
virtual
virtual bool makVrv::DtSilverliningGroup::realizeLayers ( SilverLining::ThreadCameraStreamData *  tcsData,
DtSilverLiningGroupTcsUserData userData 
)
virtual

realize if necessary returns true if one more cloud layers are made in the call

virtual SilverLining::Atmosphere* makVrv::DtSilverliningGroup::findAtmosphere ( )
virtual
virtual const SilverLining::Atmosphere* makVrv::DtSilverliningGroup::findAtmosphere ( ) const
virtual
virtual void makVrv::DtSilverliningGroup::getGMTDateTime ( long julianDate,
double GMTTod 
) const
virtual
virtual osg::Node* makVrv::DtSilverliningGroup::getCloudsNode ( )
virtual
virtual osg::Node* makVrv::DtSilverliningGroup::getSkyNode ( )
virtual
virtual void makVrv::DtSilverliningGroup::setSunMoonEnabled ( bool  drawSunMoon)
virtual
virtual bool makVrv::DtSilverliningGroup::sunMoonEnabled ( )
virtual
virtual void makVrv::DtSilverliningGroup::setStarsEnabled ( bool  drawStars)
virtual
virtual bool makVrv::DtSilverliningGroup::starsEnabled ( )
virtual
virtual void makVrv::DtSilverliningGroup::enableLighting ( osg::ref_ptr< osg::Camera >  osgCamera,
bool  enable 
)
virtual
void makVrv::DtSilverliningGroup::setEnableHDR ( bool  enable)

allows a plugin to turn on or off HDR in silverlining Non virtual, called in the CTOR.

virtual osg::LightSource* makVrv::DtSilverliningGroup::skyLight ( const osg::Camera *  osgCamera)
virtual

getter for skyLight so Triton can use it for it's lighting

virtual const osg::LightSource* makVrv::DtSilverliningGroup::skyLight ( const osg::Camera *  osgCamera) const
virtual

getter for skyLight so Triton can use it for it's lighting (const)

virtual const CloudLayerMap& makVrv::DtSilverliningGroup::cloudLayerMap ( ) const
virtual
virtual void makVrv::DtSilverliningGroup::fillCrepuscularRaysParameters ( DtCrepuscularRaysParameters params,
const osg::Camera *  osgCamera 
) const
virtual

This is used by vrv's crepuscular rays post processor (DtVolumetricLighting) It uses silverlining to compute the screen space position of the sun.

virtual const DtCloudLayerManager* makVrv::DtSilverliningGroup::cloudLayerManager ( void  ) const
virtual

get the cloud layer manager, const version

virtual DtCloudLayerManager* makVrv::DtSilverliningGroup::cloudLayerManager ( void  )
virtual

get the cloud layer manager, non-const version

virtual DtOsgFogComponent* makVrv::DtSilverliningGroup::findFogComponent ( ) const
virtual

Returns the fog component.

virtual std::string makVrv::DtSilverliningGroup::userDefinedVertString ( void  ) const
virtual

returns the user string

virtual std::string makVrv::DtSilverliningGroup::userDefinedFragString ( void  ) const
virtual

returns the user string

virtual DtSilverLiningGroupTcsUserData* makVrv::DtSilverliningGroup::getOrCreateUserData ( const osg::Camera *  osgCamera)
virtual

Get or create the per camera, context user data for the camera in question.

virtual DtSilverLiningGroupTcsUserData* makVrv::DtSilverliningGroup::findUserData ( const osg::Camera *  osgCamera)
virtual

Find the per camera, context user data for the camera in question.

virtual const DtSilverLiningGroupTcsUserData* makVrv::DtSilverliningGroup::findUserData ( const osg::Camera *  osgCamera) const
virtual

Find the per camera, context user data for the camera in question (const)

virtual SilverLining::ThreadCameraStreamData* makVrv::DtSilverliningGroup::findSilverLiningTcsData ( const osg::Camera *  osgCamera)
virtual

Find the per camera, context user data for the camera in question Then, get its SilverLining::ThreadCameraStreamData.

virtual SilverLining::ThreadCameraStreamData* makVrv::DtSilverliningGroup::findSilverLiningTcsData ( const osg::Camera *  osgCamera) const
virtual

Find the per camera, context user data for the camera in question Then, get its SilverLining::ThreadCameraStreamData (const)

virtual void makVrv::DtSilverliningGroup::reloadShaders ( const std::vector< unsigned int > &  shaderVector,
const std::string &  userDefinedVertString,
const std::string &  userDefinedFragString 
)
virtual

reload the shaders

virtual float makVrv::DtSilverliningGroup::fogDensity ( const osg::Camera *  osgCamera) const
virtual

fog density for a given camera

virtual Vector4_32 makVrv::DtSilverliningGroup::fogColor ( const osg::Camera *  osgCamera) const
virtual

fog color for a given camera

virtual Vector4_32 makVrv::DtSilverliningGroup::ambientColor ( const osg::Camera *  osgCamera) const
virtual

ambient color for a given camera/view

virtual Vector4_32 makVrv::DtSilverliningGroup::diffuseColor ( const osg::Camera *  osgCamera) const
virtual

diffuse color for a given camera/view

virtual Vector3_32 makVrv::DtSilverliningGroup::lightPosition ( const osg::Camera *  osgCamera) const
virtual

light position for a given camera/view

virtual float makVrv::DtSilverliningGroup::smoothingDistance ( void  ) const
virtual
virtual const DtThreadCameraStreamDataManagerBase* makVrv::DtSilverliningGroup::tcsDataManager ( void  ) const
virtual

const

virtual DtThreadCameraStreamDataManagerBase* makVrv::DtSilverliningGroup::tcsDataManager ( void  )
virtual

non-const

virtual void makVrv::DtSilverliningGroup::setCubeMapDirtyState ( int  val)
virtual

function to set the cube map dirty state to a given val

virtual DtCloudDrawable* makVrv::DtSilverliningGroup::cloudDrawable ( void  )
virtual

access the cloud drawable

virtual void makVrv::DtSilverliningGroup::clearCachedProgramsAndUniformLocations ( DtThreadCameraStreamDataManagerBase tcsDataManager)
virtual

clear the map of cached uniforms for all views

virtual DtSilverLiningGroupSkyLightTcsUserData* makVrv::DtSilverliningGroup::getOrCreateSkyLightUserData ( const osg::Camera *  osgCamera)
virtual

skylight user data

virtual const DtSilverLiningGroupSkyLightTcsUserData* makVrv::DtSilverliningGroup::findSkyLightUserData ( const osg::Camera *  osgCamera) const
virtual

skylight user data

static void makVrv::DtSilverliningGroup::enableBillboardRotation ( bool  val)
static

Whether randomized billboard rotation is enabled This is static so that this can be set even before the sky object/atmosphere is created Hence, its a one off thing. It is used currently only by the auto tests.

static bool makVrv::DtSilverliningGroup::billboardRotationEnabled ( )
static

my atmosphere.

static double makVrv::DtSilverliningGroup::maxPrecipitationAltitude ( void  )
static

my atmosphere.

virtual void makVrv::DtSilverliningGroup::addLayer ( DtCloudLayerId  layerId,
const DtSilverLiningCloudLayer layer 
)
protectedvirtual

Add layer.

virtual int makVrv::DtSilverliningGroup::calculateZoneByLongitude ( double  longitude) const
protectedvirtual

my atmosphere.

virtual void makVrv::DtSilverliningGroup::setDateAndTime ( unsigned short  year,
unsigned char  month,
unsigned char  day,
unsigned char  hour,
unsigned char  minutes,
double  seconds,
osg::ref_ptr< const osg::Camera >  osgCamera,
bool  observeDaylightSavings,
bool  useGlobalTimeZoneOverride,
bool  updateTimeInAtmosphere 
)
protectedvirtual

Setup the date and time of silver lining.

Reimplemented in makVrf::DtVrfSilverliningGroup.

virtual void makVrv::DtSilverliningGroup::fillConditionsFromSkyObjectAtCreation ( DtOsgSkyObject skyObject)
protectedvirtual

Update all conditions from a DtOsgSkyObject.

Note
Current conditions will be cleared before update.
virtual void makVrv::DtSilverliningGroup::addPrecipitationToClouds ( int  type,
float  mmPerHour 
)
protectedvirtual

my atmosphere.

virtual void makVrv::DtSilverliningGroup::updatePrecipitation ( const DtVector location,
SilverLining::ThreadCameraStreamData *  tcsData 
) const
protectedvirtual

my atmosphere.

virtual void makVrv::DtSilverliningGroup::setCloudVisibility ( const osg::Camera *  osgCamera,
SilverLining::ThreadCameraStreamData *  slTcsData,
SilverLining::Location *  slLocation 
)
protectedvirtual

my atmosphere.

virtual void makVrv::DtSilverliningGroup::traverse ( osg::NodeVisitor &  nv)
protectedvirtual

Traverse.

virtual void makVrv::DtSilverliningGroup::updateCubeMap ( osg::ref_ptr< const osg::Camera >  osgCamera)
protectedvirtual

routes cube map to be updated information to the cloud drawable

virtual void makVrv::DtSilverliningGroup::slot_reloadShader ( )
protectedvirtual

handle the reload shaders signal so the fog shader can be reloaded.

virtual void makVrv::DtSilverliningGroup::updateImGui ( float &  x,
float &  y,
float &  z,
SilverLining::ThreadCameraStreamData *  slTcsData,
SilverLining::Location *  slLocation 
)
protectedvirtual

my atmosphere.

virtual void makVrv::DtSilverliningGroup::calculateAndFillFogParameters ( osg::ref_ptr< const osg::Camera >  osgCamera,
SilverLining::ThreadCameraStreamData *  slTcsData,
SilverLining::Location *  slLocation,
DtSilverLiningFogParameters fogParameters,
bool  adjustCoverage 
) const
protectedvirtual

calculate fog parameters for the current state of SL & values set here (myBlendedFogColor, myFogColor & DtEnvironmentInfo)

virtual bool makVrv::DtSilverliningGroup::isTimeAndZoneTheSameExcludingMinutesAndSeconds ( const SilverLining::LocalTime *  lhs,
const SilverLining::LocalTime *  rhs 
) const
protectedvirtual

helper

virtual void makVrv::DtSilverliningGroup::updateImGuiAndGetModifiersOffOfImgGui ( DtCrepuscularRaysModifiers &  modifiers,
float  r,
float  g,
float  b,
float  sunPosX,
float  sunPosY,
float  sunPosZ,
float  exposure 
) const
protectedvirtual

This is used to possibly override the values that silverlining computes in fillCrepuscularRaysParameters (it is called from within that function)

virtual void makVrv::DtSilverliningGroup::fillRaysParameters ( SilverLining::Vector3 &  sunClipPos,
SilverLining::Vector4 &  slparams,
const SilverLining::ThreadCameraStreamData *  tcsData,
const SilverLining::Atmosphere *  atmosphere 
) const
protectedvirtual

internal

virtual void makVrv::DtSilverliningGroup::computeSunPositionClipSpace ( SilverLining::Vector3 &  sunClip,
bool clipped,
bool behind,
const SilverLining::Vector3 &  sunWorld,
const SilverLining::ThreadCameraStreamData *  tcsData 
) const
protectedvirtual

internal

virtual void makVrv::DtSilverliningGroup::updateTimeInAtmosphere ( osg::ref_ptr< const osg::Camera >  osgCamera)
protectedvirtual

Update the time in the atmosphere.

virtual const osg::Camera* makVrv::DtSilverliningGroup::actualCameraIfMultiView ( const osg::Camera *  _osgCamera) const
protectedvirtual

If multiview, get the parent camera of the camera in question.

virtual void makVrv::DtSilverliningGroup::destroyAtmosphere ( SilverLining::Atmosphere *  atmosphere)
protectedvirtual

destroy the atmosphere

virtual void makVrv::DtSilverliningGroup::releaseAtmosphere ( )
protectedvirtual

enqueue atmosphere for deletion and release myAtmosphere

  1. can be called when hdr is turned off/on (atmosphere needs to be deleted and re-created)
  2. can be called when there are no outstanding user datas for the current atmosphere (meaning, all cameras are deleted(=no contexts exist for current atmosphere) and hence atmosphere should be released and subsequently destroyed)
virtual void makVrv::DtSilverliningGroup::objectDeleted ( void *  object)
protectedvirtual

called via the camera observer

virtual void makVrv::DtSilverliningGroup::deleteSlTcsData ( SilverLining::ThreadCameraStreamData *  slTcsData,
SilverLining::Atmosphere *  atmosphere 
)
protectedvirtual

delete tcs data, with optional logging

virtual int makVrv::DtSilverliningGroup::numOutstandingUserDatas ( DtThreadCameraStreamDataManagerBase tcsDataManager) const
protectedvirtual

number of outstanding user datas for a tcsDataManager

virtual void makVrv::DtSilverliningGroup::copySlTcsDatasTo ( tbb::concurrent_queue< SilverLining::ThreadCameraStreamData * > &  slTcsDatas) const
protectedvirtual

get all the sl tcs datas in the concurrent queue

virtual void makVrv::DtSilverliningGroup::markForceRelight ( DtThreadCameraStreamDataManagerBase tcsDataManager)
protectedvirtual

mark all views to force re-lighting

Friends And Related Function Documentation

observer can access internals

friend class DtSlTcsDataDeleter
friend

deleter can access internals

Member Data Documentation

friend makVrv::DtSilverliningGroup::DtSilverliningGroupCreator

only creator can created

DtDe& makVrv::DtSilverliningGroup::myDe
protected

my atmosphere.

OpenThreads::Mutex makVrv::DtSilverliningGroup::myMutex
mutableprotected

my atmosphere.

SilverLining::Atmosphere* makVrv::DtSilverliningGroup::myAtmosphere
protected

my atmosphere.

DtCloudLayerManager* makVrv::DtSilverliningGroup::myLayerManager
protected

my atmosphere.

osg::ref_ptr<osg::Geode> makVrv::DtSilverliningGroup::mySkyGeode
protected

my atmosphere.

osg::ref_ptr<osg::Geode> makVrv::DtSilverliningGroup::myCloudGeode
protected

my atmosphere.

osg::ref_ptr<DtLightManagerGroup> makVrv::DtSilverliningGroup::myLightManagerGroup
protected

my atmosphere.

Vector4_32 makVrv::DtSilverliningGroup::myFogColor
protected

my atmosphere.

Vector4_32 makVrv::DtSilverliningGroup::myBlendedFogColor
protected

my atmosphere.

Vector4_32 makVrv::DtSilverliningGroup::myHorizonColor
protected

my atmosphere.

Vector2_32 makVrv::DtSilverliningGroup::myWind
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myHasFixedHorizonColor
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myFogDensity
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myVisibility
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myTurbidity
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myCubeMapEnabled
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myMoonPhaseForced
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myForcedMoonPhase
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::mySunAndMoonPositionForced
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myForcedSunLat
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myForcedSunLon
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myForcedMoonLat
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myForcedMoonLon
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myForcedSunAndMoonUsingHorizonCoords
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myStratocumulusVoxelDimension
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myUse16BitEnviroMap
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myUsingSensorFXShader
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myFogHeight
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myFogThresholdDistance
protected

my atmosphere.

int makVrv::DtSilverliningGroup::myGlobalPrecipitationType
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myGlobalPrecipitationIntensity
protected

my atmosphere.

osg::ref_ptr<DtOsgFogComponent> makVrv::DtSilverliningGroup::myFogComponent
protected

my atmosphere.

osg::ref_ptr<DtOsgGlobalShaderComponent> makVrv::DtSilverliningGroup::myGlobalShaderComponent
protected

my atmosphere.

std::vector<unsigned int> makVrv::DtSilverliningGroup::myDefaultShaderVector
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myDrawStars
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myDrawSunMoon
protected

my atmosphere.

DtSignalConnectionManager makVrv::DtSilverliningGroup::myConnections
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myFailedInit
protected

my atmosphere.

double makVrv::DtSilverliningGroup::myLastImGuiSimTime
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myOverrideLightPositionEnabled
protected

my atmosphere.

Vector3_32 makVrv::DtSilverliningGroup::myOverrideLightPosition
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myUseAzimuthElevationForOverrideGui
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myEnableSmoothClouds
protected

my atmosphere.

float makVrv::DtSilverliningGroup::mySmoothCloudsDist
protected

my atmosphere.

DtSilverLiningGroupTcsUserDataCreator& makVrv::DtSilverliningGroup::myUserDataCreator
protected

my atmosphere.

DtGlDeleteObjectManager& makVrv::DtSilverliningGroup::myGlDeleteObjectManager
protected

my atmosphere.

std::atomic<int> makVrv::DtSilverliningGroup::theSlTcsDatasCount
staticprotected

my atmosphere.

const bool makVrv::DtSilverliningGroup::theSlTcsDatasCountLog
staticprotected

my atmosphere.

std::atomic<int> makVrv::DtSilverliningGroup::theCameraId
staticprotected

my atmosphere.

const float makVrv::DtSilverliningGroup::theDefaultCubeMapUpdateAndRelightTime
staticprotected

beyond this the cube map gets triggered to be updated. Its also the time used to fudge the current time in case of relighting in seconds

const float makVrv::DtSilverliningGroup::theAtmosphereTresholdTrigger
staticprotected

in seconds

bool makVrv::DtSilverliningGroup::theBillboardRotationEnabled
staticprotected

my atmosphere.

const double makVrv::DtSilverliningGroup::theGeocTrueLightingAltitude
staticprotected

my atmosphere.

const double makVrv::DtSilverliningGroup::theMaxPrecipitationAltitude
staticprotected

my atmosphere.

const double makVrv::DtSilverliningGroup::theMaximumCloudVisibility
staticprotected

my atmosphere.

const double makVrv::DtSilverliningGroup::theSkyFogginess
staticprotected

my atmosphere.

const double makVrv::DtSilverliningGroup::theSkyHazeHeightFactor
staticprotected

my atmosphere.

const double makVrv::DtSilverliningGroup::theSunAlphaFactor
staticprotected

my atmosphere.

DtDtSilverLiningGroupCameraObserver makVrv::DtSilverliningGroup::theCameraObserver
staticprotected

static so that the observer is never deleted before the camera

DtThreadCameraStreamDataManager& makVrv::DtSilverliningGroup::myGlobalTcsDataManager
protected

my atmosphere.

DtSilverLiningGroupSkyLightTcsUserDataCreator& makVrv::DtSilverliningGroup::mySkyLightUserDataCreator
protected

my atmosphere.

DtOsgLightManager& makVrv::DtSilverliningGroup::myOsgLightManager
protected

my atmosphere.


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

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)