VR-Forces 4.3 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 
106  virtual void setAirTurbidity(float turbidity);
107  virtual float airTurbidity() const;
109 
112  virtual void setAmbientAirTemperature(float temperature);
113  virtual float ambientAirTemperature() const;
115 
118  virtual void setVisibleDistance(float distance);
119  virtual float visibleDistance() const;
121 
124  virtual void setFogHeight(float meters);
125  virtual float fogHeight() const;
127 
133  virtual void setFogColor(const DtVector& color);
134  virtual const osg::Vec4& fogColor() const;
136 
142  virtual void setFogThresholdDistance(float distance);
143  virtual float fogThresholdDistance() const;
145 
148  virtual void setPrecipitationEnabled(bool enabled);
149  virtual bool precipitationEnabled() const;
151 
154  virtual void setPrecipitationVisibilityEffectsEnabled(bool enabled);
155  virtual bool precipitationVisibilityEffectsEnabled() const;
157 
161  virtual void setPrecipitationType(int type);
162  virtual int precipitationType() const;
164 
167  virtual void setPrecipitationIntensity(float intensity);
168  virtual float precipitationIntensity() const;
170 
172  virtual void setCloudLayerPosition(
173  int index, double xCoord, double yCoord);
174 
177  virtual void setWindSpeed(float metersPerSecond);
178  virtual float windSpeed() const;
180 
183  virtual void setWindDirection(float radians);
184  virtual float windDirection() const;
186 
189  virtual void setMinimumWindAltitude(float alt);
190  virtual float minimumWindAltitude() const;
192 
195  virtual void setMaximumWindAltitude(float alt);
196  virtual float maximumWindAltitude() const;
198 
201  virtual void setLensFlare(bool enabled);
202  virtual bool lensFlare() const;
204 
207  virtual void setCrepuscularRays(bool enabled);
208  virtual bool crepuscularRays() const;
210 
213  virtual void setRainSplashEffect();
215 
217  void setGenerateCubeMaps(bool enabled);
218 
221  GLuint getCubeMap(const osg::ref_ptr<osg::Camera> camera) const;
222 
225  GLuint getPrimaryCubeMap() const;
226 
228  void setFogOverride(osg::ref_ptr<osg::Camera> camera, const osg::Vec4f& fogColor, float fogDensity);
229 
231  void clearFogOverride(osg::ref_ptr<osg::Camera> camera);
232 
233  void clearFogOverrideForAllCameras(void);
234 
236  void setHorizonColor(const osg::Vec4f& horizonColor);
237 
239  void clearHorizonColor();
240 
242  void updatePrecipitation();
243 
245  DtSilverliningGroup *getDtSilverlining();
246 
247  void enableLighting(osg::ref_ptr<osg::Camera> camera, bool enable);
248 
251  bool shouldActivateRaindrops() const;
252 
253  protected:
254 
255  void updatePrecipitationOSG();
256  void updatePrecipitationSilverLining();
257 
258  void on_coordinateSystemChanged(const std::string& type);
259 
260  void applyCurrentSettings();
261 
262  protected:
263 
265  {
266  public:
267  CloudLayer(int type=0, const DtVector& location=DtVector(0, 0, 0),
268  const DtVector& bounds=DtVector(0, 0, 0), double density=0.0,
269  bool infinite=false, bool relative=false)
270  : myType(type)
271  , myLocation(location)
272  , myBounds(bounds)
273  , myDensity(density)
274  , myInfinite(infinite)
275  , myRelative(relative)
276  , myEnabled(false)
277  {}
278 
279  public:
280  int myType;
283  double myDensity;
286  bool myEnabled;
287  };
288  typedef std::vector<CloudLayer> CloudLayerList;
289 
292  osg::ref_ptr<DtSilverliningGroup> mySilverliningGroup;
295  osg::ref_ptr<osgParticle::PrecipitationEffect> myPrecipitationEffect;
302  float myFogHeight;
303  osg::Vec4f myFogColor;
305  float myWindSpeed;
314  };
315 }
316 

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)