VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtOsgSkyObject.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
13 #include <vrvCore/DtSkyObject.h>
15 #include <osgParticle/PrecipitationEffect>
16 
17 namespace makVrv
18 {
19  class DtDe;
20  class DtWaterOnScreen;
21 
25  class DT_DLL_VRVOSG DtPrecipitationEffect : public osgParticle::PrecipitationEffect
26  {
27  public:
29  DtPrecipitationEffect(const DtPrecipitationEffect& copy, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
31 
32  virtual const char* libraryName() const { return "vrvOsg"; }
33  virtual const char* className() const { return "DtPrecipitationEffect"; }
34  virtual bool isSameKindAs(const osg::Object* obj) const { return dynamic_cast<const DtPrecipitationEffect*>(obj) != 0; }
35 
36  virtual void traverse(osg::NodeVisitor& nv);
37  };
38 
42  {
43  public:
44 
47 
49  virtual ~DtOsgSkyObject();
50 
54  virtual void setLocation(const DtVector& location);
55 
58  virtual const DtVector& location() const;
59 
68  virtual void addCloudLayer(int deckType, const DtVector& location,
69  const DtVector& bounds, double density, bool infinite, bool relative);
70 
81  virtual bool cloudLayer(int index, int& deckType, DtVector& location,
82  DtVector& bounds, double& density, bool& infinite, bool& relative) const;
83 
85  virtual int cloudLayerCount() const;
86 
88  virtual void removeCloudLayer(int index);
89 
91  virtual void removeCloudLayers();
92 
95  virtual void sendCloudLayers();
96 
98  virtual void setCloudLayerEnabled(int index, bool enabled);
99 
102  virtual float getSunAlpha() const;
103 
105  virtual void setDrawSunAndMoonIntoEnvMap(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 osg::Vec4& fogColor() const;
139 
145  virtual void setFogThresholdDistance(float distance);
146  virtual float fogThresholdDistance() const;
148 
151  virtual void setPrecipitationEnabled(bool enabled);
152  virtual bool precipitationEnabled() const;
154 
157  virtual void setPrecipitationVisibilityEffectsEnabled(bool enabled);
158  virtual bool precipitationVisibilityEffectsEnabled() const;
160 
164  virtual void setPrecipitationType(int type);
165  virtual int precipitationType() const;
167 
170  virtual void setPrecipitationIntensity(float intensity);
171  virtual float precipitationIntensity() const;
173 
175  virtual void setCloudLayerPosition(
176  int index, double xCoord, double yCoord);
177 
180  virtual void setWindSpeed(float metersPerSecond);
181  virtual float windSpeed() const;
183 
186  virtual void setWindDirection(float radians);
187  virtual float windDirection() const;
189 
192  virtual void setMinimumWindAltitude(float alt);
193  virtual float minimumWindAltitude() const;
195 
198  virtual void setMaximumWindAltitude(float alt);
199  virtual float maximumWindAltitude() const;
201 
204  virtual void setLensFlare(bool enabled);
205  virtual bool lensFlare() const;
207 
210  virtual void setCrepuscularRays(bool enabled);
211  virtual bool crepuscularRays() const;
213 
216  virtual void setRainSplashEffect();
218 
220  void setGenerateCubeMaps(bool enabled);
221 
224  GLuint getCubeMap(const osg::ref_ptr<osg::Camera> camera) const;
225 
228  GLuint getPrimaryCubeMap() const;
229 
231  void setFogOverride(osg::ref_ptr<osg::Camera> camera, const osg::Vec4f& fogColor, float fogDensity);
232 
234  void clearFogOverride(osg::ref_ptr<osg::Camera> camera);
235 
236  void clearFogOverrideForAllCameras(void);
237 
239  void setHorizonColor(const osg::Vec4f& horizonColor);
240 
242  void clearHorizonColor();
243 
245  void updatePrecipitation();
246 
248  DtSilverliningGroup *getDtSilverlining();
249 
250  void enableLighting(osg::ref_ptr<osg::Camera> camera, bool enable);
251 
254  bool shouldActivateRaindrops() const;
255 
256  protected:
257 
258  void updatePrecipitationOSG();
259  void updatePrecipitationSilverLining();
260 
261  void on_coordinateSystemChanged(const std::string& type);
262 
263  void applyCurrentSettings();
264 
265  protected:
266 
268  {
269  public:
270  CloudLayer(int type=0, const DtVector& location=DtVector(0, 0, 0),
271  const DtVector& bounds=DtVector(0, 0, 0), double density=0.0,
272  bool infinite=false, bool relative=false)
273  : myType(type)
274  , myLocation(location)
275  , myBounds(bounds)
276  , myDensity(density)
277  , myInfinite(infinite)
278  , myRelative(relative)
279  , myEnabled(false)
280  {}
281 
282  public:
283  int myType;
286  double myDensity;
289  bool myEnabled;
290  };
291  typedef std::vector<CloudLayer> CloudLayerList;
292 
295  osg::ref_ptr<DtSilverliningGroup> mySilverliningGroup;
298  osg::ref_ptr<osgParticle::PrecipitationEffect> myPrecipitationEffect;
305  float myFogHeight;
306  osg::Vec4f myFogColor;
308  float myWindSpeed;
317  };
318 }
319 

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)