VR-Forces 5.0.2 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 getCubeMap (const osg::ref_ptr< const osg::Camera > &osgCamera) const
 
virtual void installIntoChannel (DtChannel *)
 
virtual void applyFog (osg::ref_ptr< const osg::Camera > osgCamera, bool adjustForCoverage, SilverLining::ThreadCameraStreamData *tcsData)
 
virtual void deleteGeods ()
 
virtual void setGeocentricMode (bool mode)
 
virtual bool geocentricMode () const
 
virtual void setHiResCumulus (bool enabled)
 
virtual bool hiResCumulus () const
 
virtual void setLensFlare (bool enabled)
 
virtual bool lensFlare () const
 
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
 
virtual void setLightPollution (double Wm2)
 
virtual double lightPollution () const
 
virtual void setDateAndTime (unsigned short year, unsigned char month, unsigned char day, unsigned char hour, unsigned char minutes, double seconds, bool observeDaylightSavings, osg::ref_ptr< const osg::Camera > osgCamera, bool updateTimeInAtmosphere)
 
virtual void setLocation (const DtVector &location, osg::ref_ptr< const osg::Camera > osgCamera, SilverLining::ThreadCameraStreamData *tcsData, bool updateTimeInAtmosphere)
 
virtual void updateTimeInAtmosphere (osg::ref_ptr< const osg::Camera > osgCamera)
 
virtual void update (const osg::Matrix &modelViewMatrix, osg::ref_ptr< const osg::Camera > osgCamera, SilverLining::ThreadCameraStreamData *tcsData)
 
virtual void update2D (const osg::Matrix &m)
 
virtual void removeCloudLayer (DtCloudLayerId layerId)
 
virtual void removeCloudLayers ()
 
virtual void setFogColor (const osg::Vec4f &rgbA)
 
virtual void setFogHeight (float height)
 
virtual void setFogBlend (const osg::Vec4f &rgbA, float density)
 
virtual void setFogOverride (osg::ref_ptr< const osg::Camera > osgCamera, const osg::Vec4f &rgbA, float density)
 
virtual void setFogThresholdDistance (float distance)
 
virtual void setHorizonColor (const osg::Vec4f &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 getSunAlpha () const
 
virtual void setDrawSunAndMoonIntoEnvMap (bool draw)
 
virtual bool drawSunAndMoonIntoEnvMap () const
 
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, bool setForAll)
 
virtual void setCloudLayerPositionAndOrientation (DtCloudLayerId layerId, const DtVector &position, float orientation, SilverLining::ThreadCameraStreamData *tcsData, bool setForAll)
 
virtual void setWind (const double directionDEN, const double minAltitude, const double maxAltitude, const double velocity)
 
virtual void setAirTurbidity (float turbidity)
 
virtual void setVisibleDistance (float distance, SilverLining::ThreadCameraStreamData *tcsData, bool setForAll)
 
virtual float getVisibleDistance () const
 
virtual void createAtmosphere ()
 
virtual void destroyAtmosphere ()
 
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)
 
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 ()
 
virtual const CloudLayerMapcloudLayerMap () const
 
virtual osg::Vec3f & getLastUpVector ()
 
virtual void fillCrepuscularRaysParameters (DtCrepuscularRaysParameters &params, const osg::Camera *osgCamera) const
 
virtual void slot_windowToBeDestroyed (DtWindow *window)
 
virtual void addGraphicsContextIfNecessary (const osg::Camera *osgCamera)
 
virtual const
DtSilverLiningCameraManager
silverLiningCameraManager (void) const
 
virtual
DtSilverLiningCameraManager
silverLiningCameraManager (void)
 
virtual const DtCloudLayerManagercloudLayerManager (void) const
 
virtual DtCloudLayerManagercloudLayerManager (void)
 
virtual DtOsgFogComponentfindFogComponent () const
 

Public Attributes

friend DtSilverliningGroupCreator
 

Protected Member Functions

 DtSilverliningGroup (DtDe &de)
 
DtDemyDe
 
OpenThreads::Mutex myMutex
 
DtReferenceEllipsoid myRefEllip
 
DtGeodeticCoord myGeod
 
SilverLining::Atmosphere * myAtmosphere
 
SilverLining::LocalTime * myLocalTime
 
SilverLining::Location * myLocation
 
DtCloudLayerManagermyLayerManager
 
osg::ref_ptr< osg::Geode > mySkyGeode
 
osg::ref_ptr< osg::LightSource > mySkyLight
 
osg::ref_ptr< osg::Geode > myCloudGeode
 
osg::ref_ptr< DtLightManagerGroupmyLightManagerGroup
 
osg::Vec4f myFogColor
 
osg::Vec4f myBlendedFogColor
 
osg::Vec4f myHorizonColor
 
osg::Vec3f myLastUpVector
 
osg::Vec2f myWind
 
bool myHasFixedHorizonColor
 
float myFogDensity
 
float myVisibility
 
float myTurbidity
 
bool myGeocFlag
 
bool myNeedsResetFlag
 
bool myCubeMapEnabled
 
bool myLensFlareEnabled
 
bool myMoonPhaseForced
 
float myForcedMoonPhase
 
bool mySunAndMoonPositionForced
 
float myForcedSunLat
 
float myForcedSunLon
 
float myForcedMoonLat
 
float myForcedMoonLon
 
bool myForcedSunAndMoonUsingHorizonCoords
 
bool myHiResCumulus
 
bool myDrawSunAndMoonIntoEnvMap
 
float myStratocumulusVoxelDimension
 
bool myUse16BitEnviroMap
 
bool myUsingSensorFXShader
 
osg::ref_ptr< osg::Uniform > myLightLevelUniform
 
osg::ref_ptr< osg::Uniform > myLightAmbientUniform
 
float myFogHeight
 
float myFogThresholdDistance
 
float mySunAlpha
 
bool myCurveCloudsTowardGround
 
int myGlobalPrecipitationType
 
float myGlobalPrecipitationIntensity
 
bool myForceRelight
 
osg::ref_ptr< DtOsgFogComponentmyFogComponent
 
osg::ref_ptr
< DtOsgGlobalShaderComponent
myGlobalShaderComponent
 
std::vector< unsigned intmyDefaultShaderVector
 
bool myDrawStars
 
bool myDrawSunMoon
 
DtSignalConnectionManager myConnections
 
bool myUseGlobalTimeZone
 
bool myFailedInit
 
bool myLastAtmosphereFogEnabled
 
std::string myOriginalVoxelDimension
 
bool myOverrideLightPositionEnabled
 
osg::Vec3f myOverrideLightPosition
 
double myLastImGuiSimTime
 
bool myUseAzimuthElevationForOverrideGui
 
DtSilverLiningFogManagermyFogManager
 
DtSilverLiningContextManagermyContextManager
 
DtSilverLiningCameraManagermyCameraManager
 
DtCoordinateSystemmyCoordinateSystem = nullptr
 
static const float theDefaultCubeMapUpdateAndRelightTime
 
static const float theAtmosphereTresholdTrigger
 
static bool theBillboardRotationEnabled
 
virtual void addLayer (DtCloudLayerId layerId, const DtSilverLiningCloudLayer &layer)
 
virtual void destroyLayer (const DtSilverLiningCloudLayer &layer)
 
virtual int CalculateZoneByLongitude (double longitude) const
 
void setTimeAndLocationAtConstruction ()
 
void setUseGlobalTimeZone (bool b)
 
virtual void fillConditionsFromSkyObjectAtCreation (DtOsgSkyObject *skyObject)
 
virtual void addPrecipitationToClouds (int type, float mmPerHour)
 
virtual void updatePrecipitation (const DtVector &location, SilverLining::ThreadCameraStreamData *tcsData)
 
virtual void setCloudVisibility (SilverLining::ThreadCameraStreamData *tcsData, bool setForAll)
 
virtual void traverse (osg::NodeVisitor &nv)
 
virtual void resetLayers ()
 
virtual void forceResetLayers ()
 
virtual void updateCubeMap (osg::ref_ptr< const osg::Camera > osgCamera)
 
virtual void slot_reloadShader ()
 
virtual void updateLightOverrideGui (float x, float y, float z, SilverLining::ThreadCameraStreamData *tcsData)
 
virtual void calculateAndFillFogParameters (DtSilverLiningFogParameters &fogParameters, bool adjustCoverage, SilverLining::ThreadCameraStreamData *tcsData) const
 
virtual void createFogAttributeIfNeeded (void)
 
virtual void setCubeMapDirtyState (int val)
 
virtual DtSilverLiningCubeMapDatafindCubeMapData (osg::ref_ptr< const osg::Camera > osgCamera)
 
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, bool geocentricMode, const SilverLining::ThreadCameraStreamData *tcsData, const SilverLining::Atmosphere *atmosphere) const
 
virtual void computeSunPositionClipSpace (SilverLining::Vector3 &sunClip, bool &clipped, bool &behind, const SilverLining::Vector3 &sunWorld, bool geocentricMode, const SilverLining::ThreadCameraStreamData *tcsData) const
 
virtual void slot_coordinateSystemChanged ()
 
static void enableBillboardRotation (bool val)
 
static bool billboardRotationEnabled ()
 

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::getCubeMap ( 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::installIntoChannel ( DtChannel )
virtual
virtual void makVrv::DtSilverliningGroup::applyFog ( osg::ref_ptr< const osg::Camera >  osgCamera,
bool  adjustForCoverage,
SilverLining::ThreadCameraStreamData *  tcsData 
)
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::setGeocentricMode ( bool  mode)
virtual

Set the group to be in geocentric mode.

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

Get the simulation are in geocentric mode.

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

Sets use of high-resolution (lower performance) cumulus clouds.

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

Gets use of high-resolution cumulus clouds.

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

Set use of lens flare effects.

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

Get the use of lens flare effects.

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)

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::setDateAndTime ( unsigned short  year,
unsigned char  month,
unsigned char  day,
unsigned char  hour,
unsigned char  minutes,
double  seconds,
bool  observeDaylightSavings,
osg::ref_ptr< const osg::Camera >  osgCamera,
bool  updateTimeInAtmosphere 
)
virtual

Setup the date and time of silver lining.

Reimplemented in makVrf::DtVrfSilverliningGroup.

virtual void makVrv::DtSilverliningGroup::setLocation ( const DtVector location,
osg::ref_ptr< const osg::Camera >  osgCamera,
SilverLining::ThreadCameraStreamData *  tcsData,
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::updateTimeInAtmosphere ( osg::ref_ptr< const osg::Camera >  osgCamera)
virtual

Update the time in the atmosphere.

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::Matrix &  m)
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 osg::Vec4f &  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 osg::Vec4f &  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 osg::Vec4f &  rgbA,
float  density 
)
virtual

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

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 osg::Vec4f &  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::getSunAlpha ( ) const
virtual

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

virtual void makVrv::DtSilverliningGroup::setDrawSunAndMoonIntoEnvMap ( bool  draw)
virtual

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

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

Gets 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,
bool  setForAll 
)
virtual
virtual void makVrv::DtSilverliningGroup::setCloudLayerPositionAndOrientation ( DtCloudLayerId  layerId,
const DtVector position,
float  orientation,
SilverLining::ThreadCameraStreamData *  tcsData,
bool  setForAll 
)
virtual
virtual void makVrv::DtSilverliningGroup::setWind ( const double  directionDEN,
const double  minAltitude,
const double  maxAltitude,
const double  velocity 
)
virtual
virtual void makVrv::DtSilverliningGroup::setAirTurbidity ( float  turbidity)
virtual
virtual void makVrv::DtSilverliningGroup::setVisibleDistance ( float  distance,
SilverLining::ThreadCameraStreamData *  tcsData,
bool  setForAll 
)
virtual
virtual float makVrv::DtSilverliningGroup::getVisibleDistance ( ) const
virtual
virtual void makVrv::DtSilverliningGroup::createAtmosphere ( )
virtual
virtual void makVrv::DtSilverliningGroup::destroyAtmosphere ( )
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)
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 ( )
virtual

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

virtual const CloudLayerMap& makVrv::DtSilverliningGroup::cloudLayerMap ( ) const
virtual
virtual osg::Vec3f& makVrv::DtSilverliningGroup::getLastUpVector ( )
inlinevirtual
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 void makVrv::DtSilverliningGroup::slot_windowToBeDestroyed ( DtWindow window)
virtual

slot for when a window is about to be destroyed so we can let silverlining know to clean up the VAO's

virtual void makVrv::DtSilverliningGroup::addGraphicsContextIfNecessary ( const osg::Camera *  osgCamera)
virtual

gets the current graphics context handle and stores it in a map with the osg GraphicsContext so we can clean up VAO's correctly needs to have the osg::GraphicsContext be the current active context so it should really only be called from a drawImplemenation()

virtual const DtSilverLiningCameraManager* makVrv::DtSilverliningGroup::silverLiningCameraManager ( void  ) const
virtual

get the camera manager, const version

virtual DtSilverLiningCameraManager* makVrv::DtSilverliningGroup::silverLiningCameraManager ( void  )
virtual

get the camera manager, non-const version

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.

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.

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

Add layer.

virtual void makVrv::DtSilverliningGroup::destroyLayer ( const DtSilverLiningCloudLayer layer)
protectedvirtual

my atmosphere.

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

my atmosphere.

void makVrv::DtSilverliningGroup::setTimeAndLocationAtConstruction ( )
protected

Non virtual, called in the CTOR.

void makVrv::DtSilverliningGroup::setUseGlobalTimeZone ( bool  b)
protected

If set to true at next update use UTC time to position sun/moon, else use local timezone based on the position of the observer Non virtual, called in the CTOR/slot.

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 
)
protectedvirtual

my atmosphere.

virtual void makVrv::DtSilverliningGroup::setCloudVisibility ( SilverLining::ThreadCameraStreamData *  tcsData,
bool  setForAll 
)
protectedvirtual

my atmosphere.

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

Traverse.

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

my atmosphere.

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

my atmosphere.

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::updateLightOverrideGui ( float  x,
float  y,
float  z,
SilverLining::ThreadCameraStreamData *  tcsData 
)
protectedvirtual

my atmosphere.

virtual void makVrv::DtSilverliningGroup::calculateAndFillFogParameters ( DtSilverLiningFogParameters fogParameters,
bool  adjustCoverage,
SilverLining::ThreadCameraStreamData *  tcsData 
) const
protectedvirtual

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

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

Enables fog for local terrains if enabled in environment settings.

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

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

virtual DtSilverLiningCubeMapData* makVrv::DtSilverliningGroup::findCubeMapData ( osg::ref_ptr< const osg::Camera >  osgCamera)
protectedvirtual

find the cube map data for a given osg camera

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 fromw ithin that function)

virtual void makVrv::DtSilverliningGroup::fillRaysParameters ( SilverLining::Vector3 &  sunClipPos,
SilverLining::Vector4 &  slparams,
bool  geocentricMode,
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,
bool  geocentricMode,
const SilverLining::ThreadCameraStreamData *  tcsData 
) const
protectedvirtual

internal

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

slot for when the coordinate system changes

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.

DtReferenceEllipsoid makVrv::DtSilverliningGroup::myRefEllip
protected

my atmosphere.

DtGeodeticCoord makVrv::DtSilverliningGroup::myGeod
protected

my atmosphere.

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

my atmosphere.

SilverLining::LocalTime* makVrv::DtSilverliningGroup::myLocalTime
protected

my atmosphere.

SilverLining::Location* makVrv::DtSilverliningGroup::myLocation
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::LightSource> makVrv::DtSilverliningGroup::mySkyLight
protected

my atmosphere.

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

my atmosphere.

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

my atmosphere.

osg::Vec4f makVrv::DtSilverliningGroup::myFogColor
protected

my atmosphere.

osg::Vec4f makVrv::DtSilverliningGroup::myBlendedFogColor
protected

my atmosphere.

osg::Vec4f makVrv::DtSilverliningGroup::myHorizonColor
protected

my atmosphere.

osg::Vec3f makVrv::DtSilverliningGroup::myLastUpVector
protected

my atmosphere.

osg::Vec2f 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::myGeocFlag
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myNeedsResetFlag
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myCubeMapEnabled
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myLensFlareEnabled
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.

bool makVrv::DtSilverliningGroup::myHiResCumulus
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myDrawSunAndMoonIntoEnvMap
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myStratocumulusVoxelDimension
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myUse16BitEnviroMap
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myUsingSensorFXShader
protected

my atmosphere.

osg::ref_ptr<osg::Uniform> makVrv::DtSilverliningGroup::myLightLevelUniform
protected

my atmosphere.

osg::ref_ptr<osg::Uniform> makVrv::DtSilverliningGroup::myLightAmbientUniform
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myFogHeight
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myFogThresholdDistance
protected

my atmosphere.

float makVrv::DtSilverliningGroup::mySunAlpha
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myCurveCloudsTowardGround
protected

my atmosphere.

int makVrv::DtSilverliningGroup::myGlobalPrecipitationType
protected

my atmosphere.

float makVrv::DtSilverliningGroup::myGlobalPrecipitationIntensity
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myForceRelight
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::myUseGlobalTimeZone
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myFailedInit
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myLastAtmosphereFogEnabled
protected

my atmosphere.

std::string makVrv::DtSilverliningGroup::myOriginalVoxelDimension
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myOverrideLightPositionEnabled
protected

my atmosphere.

osg::Vec3f makVrv::DtSilverliningGroup::myOverrideLightPosition
protected

my atmosphere.

double makVrv::DtSilverliningGroup::myLastImGuiSimTime
protected

my atmosphere.

bool makVrv::DtSilverliningGroup::myUseAzimuthElevationForOverrideGui
protected

my atmosphere.

DtSilverLiningFogManager* makVrv::DtSilverliningGroup::myFogManager
protected

my atmosphere.

DtSilverLiningContextManager* makVrv::DtSilverliningGroup::myContextManager
protected

my atmosphere.

DtSilverLiningCameraManager* makVrv::DtSilverliningGroup::myCameraManager
protected

my atmosphere.

DtCoordinateSystem* makVrv::DtSilverliningGroup::myCoordinateSystem = nullptr
protected

local clone of the system wide coordinate system. for thread safety.

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.


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

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)