VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtWaterOnScreenEffect.h
Go to the documentation of this file.
1 /*****************************************************************************
2 * Copyright (c) 2020 MAK Technologies, Inc.
3 * All rights reserved.
4 *****************************************************************************/
5 
6 #pragma once
7 
11 
13 
18 
20 
21 #include <osg/Texture2D>
22 #include <osg/Image>
23 
24 namespace makVrv
25 {
26  class DtDropParticle;
27  class DtRaindropParticle;
28  class DtSplashParticle;
29  class DtWindow;
30  class DtObserverObject;
31 
36  {
37  public:
39  DtWaterOnScreen(DtDe& de, const std::string& postProcessType, bool handles2D);
40 
42  virtual ~DtWaterOnScreen();
43  private:
46 
49 
51  DtWaterOnScreen& operator=(const DtWaterOnScreen&);
52  public:
54  virtual void activateRaindrops(bool on);
55 
58  virtual void activateSplashes(bool on);
59 
61  virtual void activateSpray(bool on);
62 
64  virtual void setIsUnderwater(bool underwater);
65 
68  virtual void addRainDrop(float x, float y, float radius);
69 
72  virtual void addOceanSplash(float intensity);
73 
75  virtual void setSplashIntensity(float intensity);
76 
78  virtual void setSprayIntensity(float intensity);
79 
81  virtual bool update(DtChannel *channel);
82 
84  virtual int numActiveDrops() const;
85 
87  virtual void setWaterOnScreenSize(double size);
88 
92  virtual void addSplashEffects(const DtObserverObject *observer, bool hasWaveSplashEffect);
93 
97  virtual void addSprayEffects(const DtObserverObject *observer, bool hasOceanSprayEffect);
98  public:
100  static double waterOnScreenSize();
101 
102  protected:
103  virtual void initialize();
104 
105  virtual void clearNormalMap();
106 
107  virtual void updateAndDrawDrops(double elapsedTime);
108 
109  virtual void addRaindrops(double time, float heading, float observerVelocity);
110 
111  virtual void addSpray(double time, float heading);
112 
113  virtual void clearDrops();
114 
115  virtual void reset();
116 
117  virtual void setActiveStatus();
118 
119  virtual void slot_windowRemoved(DtWindow* window);
120 
121  virtual void slot_waterOnScreenSizeChanged(double value);
122  protected:
123 
127 
129  double myLastDropEmissionTime, myLastSprayEmissionTime;
130 
131  bool myRaindropsActiveFlag, mySplashesActiveFlag, mySprayActiveFlag;
132  bool myActiveFlag, myUnderwaterFlag;
133 
134  float mySplashIntensity, mySprayIntensity;
135 
137 
138  static double myWaterOnScreenSize;
139 
141 
142  unsigned char myNormalMapClearData[TEXSIZE*TEXSIZE * 4];
144  unsigned char myNormalImageData[TEXSIZE*TEXSIZE * 4];
145 
147 
149  };
150 
151  //
152  // Creator
153  //
154 
159  : public DtPostProcessorCreator
160  {
161  public:
163  friend class DtPostProcessManager;
164 
167 
169  virtual ~DtWaterOnScreenCreator();
170 
171  protected:
173  virtual DtPostProcessor* create(DtDe& de, const std::string& postProcessType);
174  };
175 }
Abstract Base class.
Definition: DtWindow.h:25
DtDe & myDe
Definition: DtWaterOnScreenEffect.h:126
double myLastSprayEmissionTime
Definition: DtWaterOnScreenEffect.h:129
int myNumActiveDrops
Definition: DtWaterOnScreenEffect.h:136
This class provides an OSG-specific implementation of water drops on the screen.
Definition: DtWaterOnScreenEffect.h:35
static double myWaterOnScreenSize
Definition: DtWaterOnScreenEffect.h:138
voidpf void uLong size
Definition: ioapi.h:39
DtPostProcessorCreator is the common base class for all post processor creators.
Definition: DtPostProcessor.h:213
bool myNormalMapClearDataInitialized
Definition: DtWaterOnScreenEffect.h:143
osg::ref_ptr< osg::Image > myNormalImage
Definition: DtWaterOnScreenEffect.h:125
The abstract Channel Class.
Definition: DtChannel.h:29
bool mySprayActiveFlag
Definition: DtWaterOnScreenEffect.h:131
osg::ref_ptr< DtWaterOnScreenDrawable > myWaterOnScreenDrawable
Definition: DtWaterOnScreenEffect.h:148
This abstract base class defines the interface for OS-specific keyboard and mouse event listeners...
Definition: DtObserverObject.h:29
This class provides the OSG-specific management of post-processing effects.
Definition: DtPostProcessManager.h:25
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
A DtWaterOnScreenCreator instance is registered with the post process element factory to create DtPos...
Definition: DtWaterOnScreenEffect.h:158
#define DT_DLL_VRVPOSTPROCESSOR
Definition: vrvPostProcessor.h:19
Internal struct for one cell of our grid of glass properties.
Definition: DtGridCell.h:19
#define GRID_DIMENSION
Definition: DtWaterOnScreenDefines.h:56
Contains DLL export macros.
bool myUnderwaterFlag
Definition: DtWaterOnScreenEffect.h:132
Base class to provide boost signal/slot management.
DtSignalConnectionManager mySignals
Definition: DtWaterOnScreenEffect.h:146
osg::ref_ptr< osg::Texture2D > myNormalMap
Definition: DtWaterOnScreenEffect.h:124
Contains makVrv::DtGridCell struct.
float mySprayIntensity
Definition: DtWaterOnScreenEffect.h:134
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Contains makVrv::DtWaterOnScreenDrawable class.
double myLastUpdateTime
Definition: DtWaterOnScreenEffect.h:128
This class provides the OSG-specific implementation of a post processor.
Definition: DtPostProcessor.h:62

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)