VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtWeatherEffectDrawable.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <osg/Camera>
13 #include <osg/Drawable>
14 
15 #include <vrvCore/DtDe.h>
16 
17 #include <vrvOsg/DtWeatherEffect.h>
19 #include <vrvOsg/vrvOsg.h>
20 
22 
23 
24 namespace makVrv
25 {
26  // Forward declarations.
27  class DtWeatherLayerGroup;
28  class osg::Texture2D;
29 
30 
36  class DT_DLL_VRVOSG DtWeatherEffectDrawable : public osg::Drawable
37  {
38  public:
39 
42 
44  DtWeatherEffectDrawable(const DtWeatherEffectDrawable& orig, const osg::CopyOp& opr);
45 
47  virtual ~DtWeatherEffectDrawable();
48 
51  virtual void SetCameraBasis(const osg::Matrixd& basisRot);
52 
55  virtual void SetCulled(bool culled);
56 
57  private:
58 
61 
64 
66  DtWeatherEffectDrawable &operator=(const DtWeatherEffectDrawable &other);
67 
68  public:
69 
71  virtual osg::Object* clone(const osg::CopyOp& copyop) const { return new DtWeatherEffectDrawable(*this, copyop); }
72  virtual osg::Object* cloneType() const { return NULL; }
73 
75  virtual bool init();
76 
80  virtual osg::Texture2D* getTexture(const char* imagePath);
81 
83  virtual void releaseGLObjects(osg::State* state) const;
84 
86  virtual void drawImplementation(osg::RenderInfo& renderInfo) const;
87 
89  virtual void applyState(DtWeatherEffect::DrawData& drawData) const;
90 
91  protected:
92 
94  virtual bool loadShaders();
95 
97  virtual void connectSignals();
98 
100  virtual void disconnectSignals();
101 
103  virtual void slot_reloadShaders();
104 
107  virtual void setupSoftness(osg::Camera* camera) const;
108 
111  virtual float computeNearClip(osg::Camera* camera) const;
112 
114  virtual void clearTextureLibrary() const;
115 
116  protected:
117 
120  {
122  std::string myName;
123  };
124 
127 
129 
132 
133  osg::Matrixd myBasisRot;
134 
135  bool myCulled;
136 
137  private:
138 
146 
147  // weather effect specific
151 
153  mutable std::vector<TextureEntry*> myTextureLibrary;
154  };
155 
156 
159  {
160  public:
163 
166 
167  private:
172 
173  public:
175  virtual DtWeatherEffectDrawable* create(DtWeatherLayerGroup* weatherLayerGroup) const;
176 
179  static DtWeatherEffectDrawableCreator& instance(DtDe& de);
180 
182  static const std::string& theClassName();
183 
184  protected:
186  };
187 }
188 
189 
190 
osg::ref_ptr< osg::Uniform > myMutableIsReflectionUniform
Definition: DtWeatherEffectDrawable.h:144
osg::ref_ptr< osg::Uniform > myMutablePersMatrixUniform
Definition: DtWeatherEffectDrawable.h:142
osg::ref_ptr< osg::Texture2D > myTexture
Definition: DtWeatherEffectDrawable.h:121
Virtual base class.
Definition: DtVirtualBaseClass.h:22
A group node which serves as a root for weather layers.
Definition: DtWeatherLayerGroup.h:47
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::string myName
Definition: DtWeatherEffectDrawable.h:122
osg::ref_ptr< osg::Uniform > myMutableViewMatrixInvUniform
Definition: DtWeatherEffectDrawable.h:150
Contains makVrv::DtDe class.
osg::Matrixd myBasisRot
Definition: DtWeatherEffectDrawable.h:133
osg::ref_ptr< osg::Uniform > myMutableModelUpUniform
These are mutable because they are used as part of the const drawImplementation.
Definition: DtWeatherEffectDrawable.h:149
DtDe & myDe
Definition: DtWeatherEffectDrawable.h:185
virtual osg::Object * clone(const osg::CopyOp &copyop) const
required functions for derriving from osg::Drawable
Definition: DtWeatherEffectDrawable.h:71
A structure used to hold data for drawing.
Definition: DtWeatherEffect.h:45
Contains makVrv::DtOsgCullVisitor class.
Contains makVrv::DtVirtualBaseClass class.
A drawable for drawing weather effects such as hail.
Definition: DtWeatherEffectDrawable.h:36
Contains makVrv::DtWeatherEffect class.
DtWeatherLayerGroup * myWeatherLayerGroup
Definition: DtWeatherEffectDrawable.h:126
osg::ref_ptr< osg::Uniform > myMutableSoftnessUniform
Definition: DtWeatherEffectDrawable.h:145
osg::ref_ptr< osg::StateSet > myStateSet
Definition: DtWeatherEffectDrawable.h:131
osg::ref_ptr< osg::Uniform > myMutableInvPersMatrixUniform
needed for smoothness These are mutable because they are used as part of the const drawImplementation...
Definition: DtWeatherEffectDrawable.h:141
virtual osg::Object * cloneType() const
Definition: DtWeatherEffectDrawable.h:72
std::vector< TextureEntry * > myTextureLibrary
This is mutable because it&#39;s used as part of the const releaseGLObjects.
Definition: DtWeatherEffectDrawable.h:153
DtDe & myDe
Definition: DtWeatherEffectDrawable.h:125
creator for DtWeatherEffectDrawable
Definition: DtWeatherEffectDrawable.h:158
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
brief A structure used to hold information about a texture.
Definition: DtWeatherEffectDrawable.h:119
osg::ref_ptr< osg::Uniform > myMutableViewportUniform
Definition: DtWeatherEffectDrawable.h:143
Contains DLL export macros.
bool myCulled
Definition: DtWeatherEffectDrawable.h:135
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
bool myInitialized
Definition: DtWeatherEffectDrawable.h:128
osg::ref_ptr< osg::Texture2D > myTexture
Definition: DtWeatherEffectDrawable.h:130

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)