VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOsgSkyObject.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
15 #include <vrvCore/DtSkyObject.h>
17 #include <osg/TextureCubeMap>
18 
19 #include <unordered_map>
20 
21 namespace makVrv
22 {
23  class DtDe;
24  class DtWaterOnScreen;
25 
29  {
30  public:
31 
34 
36  virtual ~DtOsgSkyObject();
37 
41  virtual void setLocation(const DtVector& location);
42 
45  virtual const DtVector& location() const;
46 
57 
58  virtual void addCloudLayer(DtCloudLayerId layerId);
59  virtual void setCloudLayerDeckType(DtCloudLayerId layerId, int deckType);
60  virtual void setCloudLayerCornerRadius(DtCloudLayerId layerId, float corner);
61  virtual void setCloudLayerBounds(DtCloudLayerId layerId, const DtVector& bounds);
62  virtual void setCloudLayerDensity(DtCloudLayerId layerId, double density);
63  virtual void setCloudLayerInfiniteFlag(DtCloudLayerId layerId, bool infinite);
64  virtual void setCloudLayerRelativeFlag(DtCloudLayerId layerId, bool relative);
65  virtual void setCloudLayerFadeAtAltitudeFlag(DtCloudLayerId layerId, bool fadeAtAltitude);
66  virtual void setCloudLayerAltitudeIsHATFlag(DtCloudLayerId layerId, bool altitudeIsHAT);
67 
68 
79  virtual CloudLayer* findCloudLayer(DtCloudLayerId layerId);
80 
82  //virtual int cloudLayerCount() const;
83 
85  virtual void removeCloudLayer(DtCloudLayerId layerId);
86 
88  virtual void removeCloudLayers();
89 
92  virtual void sendCloudLayers();
93 
95  virtual void sendCloudLayer(DtCloudLayerId layerId);
96 
98  virtual void setCloudLayerEnabled(DtCloudLayerId layerId, bool enabled);
99 
102  virtual float sunAlpha(const osg::Camera* osgCamera) const;
103 
105  virtual void setDrawSunAndMoonIntoEnvMap(const osg::Camera* osgCamera, bool draw);
106 
109  virtual void setAirTurbidity(float turbidity);
110  virtual float airTurbidity() const;
112 
115  virtual void setAmbientAirTemperature(float temperature);
116  virtual float ambientAirTemperature() const;
118 
121  virtual void setVisibleDistance(float distance);
122  virtual float visibleDistance() const;
124 
127  virtual void setFogHeight(float meters);
128  virtual float fogHeight() const;
130 
136  virtual void setFogColor(const DtVector& color);
137  virtual const Vector4_32& fogColor() const;
141  virtual void setGroundFogColor(const DtVector& color) override;
142  virtual const Vector3_32& groundFogColor() const;
144 
150  virtual void setFogThresholdDistance(float distance);
151  virtual float fogThresholdDistance() const;
153 
156  virtual void setPrecipitationEnabled(bool enabled);
157  virtual bool precipitationEnabled() const;
159 
162  virtual void setPrecipitationVisibilityEffectsEnabled(bool enabled);
163  virtual bool precipitationVisibilityEffectsEnabled() const;
165 
169  virtual void setPrecipitationType(int type);
170  virtual int precipitationType() const;
172 
175  virtual void setPrecipitationIntensity(float intensity);
176  virtual float precipitationIntensity() const;
178 
186  virtual bool computeLocalPrecipitation(const DtVector& location, int& type, float& intensity) const;
188 
196  virtual bool computeLocalGroundRainAccumulation(const DtVector& location,
197  float& depth, float& blend) const;
199 
201  virtual void setCloudLayerPositionAndOrientation(DtCloudLayerId layerId, const DtVector& position, float orientation);
202 
205  virtual void setWindSpeed(float metersPerSecond);
206  virtual float windSpeed() const;
208 
209 
211  virtual void setWindDirection(float radians);
213  virtual float windDirection() const;
216  virtual float windDirectionInDegrees() const;
217 
218 
221  virtual void setMinimumWindAltitude(float alt);
222  virtual float minimumWindAltitude() const;
224 
227  virtual void setMaximumWindAltitude(float alt);
228  virtual float maximumWindAltitude() const;
230 
233  virtual void setRainSplashEffect();
235 
237  void setGenerateCubeMaps(bool enabled);
238 
241  GLuint getCubeMap(const osg::ref_ptr<const osg::Camera> camera, osg::State &state) const;
242 
246  void setFogOverride(osg::ref_ptr<const osg::Camera> camera, const Vector4_32& fogColor, float fogDensity, float cameraDepth );
247 
249  void clearFogOverride(osg::ref_ptr<const osg::Camera> camera);
250 
251  void clearFogOverrideForAllCameras(void);
252 
254  void setHorizonColor(const Vector4_32& horizonColor);
255 
257  void clearHorizonColor();
258 
260  void updatePrecipitation();
261 
263  const DtSilverliningGroup *getDtSilverlining() const;
264  DtSilverliningGroup* getDtSilverlining();
265 
269  DtWeatherAreaGroup* findWeatherAreaGroup();
270 
274  DtWeatherLayerGroup* findWeatherLayerGroup();
275 
276  void enableLighting(osg::ref_ptr<osg::Camera> camera, bool enable);
277 
280  virtual bool shouldActivateRaindrops() const;
281 
282  virtual double maxPrecipitationAltitude(void) const;
283 
284 
290  virtual bool bindFogFroxelTexture(const int unit, const unsigned int renderContextId);
291 
293  virtual float fogFroxelMaxDistance() const;
294  protected:
295  void updatePrecipitationSilverLining();
296  protected:
297  virtual void sendCloudLayer(const CloudLayer& layer);
298 protected:
299 
300  typedef std::unordered_map<DtCloudLayerId, CloudLayer> CloudLayerMap;
301 
315  float myFogHeight;
319  float myWindSpeed;
327 
328  //default cube map for when the sky is turned off.
330 
331  };
332 }
333 
float myWindDirection
Definition: DtOsgSkyObject.h:320
float mySavedVisibility
Definition: DtOsgSkyObject.h:325
bool myPrecipitationEnabled
Definition: DtOsgSkyObject.h:309
Contains makVrv::DtWeatherAreaGroup class.
float myAirTemperature
Definition: DtOsgSkyObject.h:313
osg::ref_ptr< osg::TextureCubeMap > myDefaultCubeMap
Definition: DtOsgSkyObject.h:329
int myPrecipitationEffectType
Definition: DtOsgSkyObject.h:310
float myAirTurbidity
Definition: DtOsgSkyObject.h:312
A group node which serves as a root for weather layers.
Definition: DtWeatherLayerGroup.h:46
The base sky object.
Definition: DtSkyObject.h:29
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Definition: featureContext.h:37
osg::ref_ptr< DtWeatherLayerGroup > myWeatherLayerGroup
Definition: DtOsgSkyObject.h:305
unsigned int GLuint
Definition: DtGlTextureBufferObject.h:18
An OSG implementation of the sky.
Definition: DtOsgSkyObject.h:28
A group node which serves as a root for weather areas, patchy ground fog areas and effects...
Definition: DtWeatherAreaGroup.h:75
DtVector myLocation
Definition: DtOsgSkyObject.h:307
A group node which adds a silver-lining sky and will light all Children with the proper lighting para...
Definition: DtSilverliningGroup.h:97
Definition: DtSkyObject.h:36
Contains makVrv::DtSkyObject class.
float myVisibleDistance
Definition: DtOsgSkyObject.h:314
float myWindAltMinimum
Definition: DtOsgSkyObject.h:321
Vector3_32 myGroundFogColor
Definition: DtOsgSkyObject.h:317
bool myLensFlareEnabled
Definition: DtOsgSkyObject.h:323
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
float myFogHeight
Definition: DtOsgSkyObject.h:315
float myWindSpeed
Definition: DtOsgSkyObject.h:319
Contains makVrv::DtWeatherLayerGroup class.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
osg::ref_ptr< DtWeatherAreaGroup > myWeatherAreaGroup
Definition: DtOsgSkyObject.h:304
bool myPrecipitationVisibilityEffects
Definition: DtOsgSkyObject.h:326
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
bool myVisibilitySaved
Definition: DtOsgSkyObject.h:324
float myFogThreshold
Definition: DtOsgSkyObject.h:318
osg::ref_ptr< DtSilverliningGroup > mySilverliningGroup
Definition: DtOsgSkyObject.h:303
Base class to provide boost signal/slot management.
A weather layer uses one or more weather effects to create a top level visual.
Definition: DtWeatherLayer.h:47
std::unordered_map< DtCloudLayerId, CloudLayer > CloudLayerMap
Definition: DtOsgSkyObject.h:300
long long DtCloudLayerId
Definition: DtCloudLayer.h:26
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
float myWindAltMaximum
Definition: DtOsgSkyObject.h:322
DtSignalConnectionManager mySignals
Definition: DtOsgSkyObject.h:302
float myPrecipitationIntensity
Definition: DtOsgSkyObject.h:311
Contains makVrv::DtSilverliningGroup class.
Vector4_32 myFogColor
Definition: DtOsgSkyObject.h:316
CloudLayerMap myCloudLayerMap
Definition: DtOsgSkyObject.h:308
DtWeatherLayer * myHailLayer
Definition: DtOsgSkyObject.h:306

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)