20 #include <matrix/vlVector.h>
23 #include <osg/Drawable>
24 #include <osg/TextureCubeMap>
43 class DtEnvironmentInfo;
44 class DtObserverObject;
45 class DtOsgCullVisitorParameters;
47 class DtPlanarReflection;
48 class DtTritonBreakingWavesMapManager;
49 class DtTritonBreakingWavesMapSuperManager;
50 class DtTritonCameraManager;
51 class DtTritonHeightMapManager;
52 class DtTritonHeightMapSuperManager;
53 class DtTritonPlanarReflectionManager;
54 class DtTritonShaderUniformManager;
57 class DtTritonImGuiHelper;
70 osg::TextureCubeMap* environmentMap = NULL,
85 virtual bool isSameKindAs(
const Object* obj)
const;
88 virtual Object* cloneType()
const;
91 virtual Object* clone(
const osg::CopyOp& copyop)
const;
97 virtual const Triton::Camera* closestCameraTo(
const DtVector& position)
const;
100 virtual Triton::Environment* environment();
103 virtual const Triton::Camera* tritonCamera(
const osg::Camera* osgCamera)
const;
106 virtual void setBeach(
const osg::Vec3& beachOrigin,
const osg::Vec3& normal);
112 virtual void drawImplementation(osg::RenderInfo& renderInfo)
const;
115 virtual void setPlanarReflectionsEnabled(
bool enabled);
116 virtual bool planarReflectionsFlag()
const;
119 virtual void setBreakingWaveAmplitude(
float meters);
121 virtual float getBreakingWaveAmplitude()
const;
125 virtual void setHeightMap(
bool enabled);
129 virtual bool heightMap()
const;
141 virtual void setBreakingWavesMap(
bool enabled);
145 virtual bool breakingWavesMap()
const;
150 virtual void setMaxReflectionWindSpeed(
double metersPerSecond);
153 virtual void setUnderwaterFogColor(
const osg::Vec4& color);
155 virtual const osg::Vec4& underwaterFogColor()
const;
159 virtual void setUnderwaterVisibility(
double visibility);
161 virtual double underwaterVisibility()
const;
165 virtual void setWaterVisibility(
double visibility);
168 virtual double waterVisibility()
const;
172 virtual void setSurgeDepth(
float depth);
174 virtual float surgeDepth()
const;
178 virtual bool isInitialized()
const;
182 virtual void setAllowUnderwaterEffects(
bool allow);
185 virtual bool allowUnderwaterEffects()
const;
189 virtual void setHeightMapResolution(
float metersPerTexel);
192 virtual float heightMapResolution()
const;
196 virtual void setBreakingWavesMapResolution(
float metersPerTexel);
199 virtual float breakingWavesMapResolution()
const;
203 virtual void enableReflections(
bool enabled);
206 virtual void releaseGLObjects(osg::State* state = 0)
const;
209 virtual void setHeightMapChanged();
212 virtual void setBreakingWavesMapChanged();
219 virtual osg::Group* getTritonGeode();
221 virtual const osg::Group* getTritonGeode()
const;
231 virtual int useSlowerHeightMapUpdate()
const;
234 virtual void setWindSpeed(
double windSpeed);
237 virtual bool geocentricFlag();
241 void setOceanMaskTextureEnabled(
bool myOceanMaskTextureEnabled);
242 bool isOceanMaskTextureEnabled()
const;
250 virtual void shaderUpdateLightUniforms(osg::RenderInfo& info,
void* context, Triton::Camera* camera)
const;
253 virtual void updateImguiAndConstantsOffOfImgui();
255 virtual void updateImguiHeightMapDebugOverlay(
bool needUpdate, osg::RenderInfo& renderInfo);
259 virtual bool setup(osg::RenderInfo& renderInfo);
262 virtual void cleanup(
void);
265 virtual void removePlanarReflections();
268 virtual void slot_reloadShader();
271 virtual void initShaderUniformHandles(
void* context, Triton::Camera* camera)
const;
274 virtual void applyLighting(osg::RenderInfo& info,
void* context, Triton::Camera* camera)
const;
277 virtual void applyQuality()
const;
280 virtual void setUpNearFarIfNecessary(
void)
const;
283 virtual void updateShader(osg::Node* node, osg::State& state,
void* context, Triton::Camera* camera)
const;
286 virtual void setSpecularThreshold(
float threshold);
288 virtual float specularThreshold()
const;
292 virtual void flushInvalidCameras();
296 virtual void onPostTick(
void);
299 virtual void prepEnvironmentMap(
const DtOsgSkyObject* skyObject,
const osg::Camera* camera,
const osg::State& state)
const;
308 virtual void setupTritonLightFogVisibility(
const osg::Camera* camera,
DtOsgSkyObject* skyObject,
bool isAboveWater,
bool skyEnabled)
const;
311 virtual void setUpTritonParticlesAdditiveBlend(
void)
const;
320 virtual void updatePrecipitation(
DtOsgSkyObject* skyObject,
bool isAboveWater)
const;
323 virtual void setUpViewport(Triton::Camera* tritonCamera, osg::Camera* camera)
const;
326 virtual void checkGlErrors(
void)
const;
329 virtual void restoreOsgState(osg::State& state)
const;
332 virtual void updatePlanarReflectionCamera(
DtPlanarReflection* planarReflection,
bool skyEnabled)
const;
336 virtual void slot_windowToBeDestroyed(
DtWindow* window);
342 virtual void addGraphicsContextIfNecessary(osg::GraphicsContext* key);
345 virtual void setUpOceanMaskIfNecessary();
348 virtual const osg::StateSet* shadowTechniqueStateSet(
const osg::Camera* osgCamera)
const;
351 virtual void updateSunIntensity(
void)
const;
354 virtual void updateLighingBasedonSensorFX(osg::Camera* osgCamera)
const;
double myNearZConfig
Definition: DtTritonDrawable.h:442
std::vector< osg::ref_ptr< osg::Camera > > myDebugVisualsCameras
Definition: DtTritonDrawable.h:406
A class to manage automatic periodic updating of a height map generated from the database dynamically...
Definition: DtTritonHeightMapManager.h:122
bool myMutableOceanMaskTextureSetup
Definition: DtTritonDrawable.h:419
bool myHeightMapFlag
Definition: DtTritonDrawable.h:368
Abstract Base class.
Definition: DtWindow.h:25
The DtEnvironmentInfo class is responsible for holding data related to the environment such as sky li...
Definition: DtEnvironmentInfo.h:25
std::map< osg::GraphicsContext *, void * > ContextToHandleMap
Definition: DtTritonDrawable.h:64
osg::Vec4 myUnderwaterFogColor
Definition: DtTritonDrawable.h:379
DtVector4< double > myVrvLatLongMinMax
Definition: DtTritonDrawable.h:421
double myFarZConfig
Definition: DtTritonDrawable.h:443
osg::ref_ptr< osg::ClipNode > myClipNode
Definition: DtTritonDrawable.h:394
DtTritonImGuiHelper * myImGuiHelper
Definition: DtTritonDrawable.h:447
Definition: featureContext.h:37
bool myOceanMaskTextureEnabled
Definition: DtTritonDrawable.h:444
unsigned int GLuint
Definition: DtGlTextureBufferObject.h:17
A class to manage multiple DtTritonHeightMapManager(s) (one per camera)
Definition: DtTritonHeightMapSuperManager.h:33
float myDefaultVisibility
Definition: DtTritonDrawable.h:370
An OSG implementation of the sky.
Definition: DtOsgSkyObject.h:46
A class for managing multiple breaking wave map managers. There is a manager for each osg camera...
Definition: DtTritonBreakingWavesMapSuperManager.h:28
A camera for rendering Triton's planar reflection texture.
Definition: DtPlanarReflection.h:27
GLuint myDefaultVertShaderId
Definition: DtTritonDrawable.h:399
Triton::Ocean * myOcean
Definition: DtTritonDrawable.h:361
osg::ref_ptr< osg::Texture > myDebugHeightMapVisualTexture
Definition: DtTritonDrawable.h:409
osg::ref_ptr< osg::TextureCubeMap > myCubeMap
Definition: DtTritonDrawable.h:357
makVrv::DtEnvironmentInfo & myEnvironmentInfo
Definition: DtTritonDrawable.h:384
Contains the declaration of the makVrv::DtTritonManager class.
Definition: DtTritonManager.h:193
bool myGeocentricFlag
Definition: DtTritonDrawable.h:366
DtTritonShaderUniformManager * myShaderUniformManger
Definition: DtTritonDrawable.h:414
const DtTritonManager & myTritonManager
Definition: DtTritonDrawable.h:403
bool myNearFarValuesInitializedFromConfig
Definition: DtTritonDrawable.h:441
Contains DLL export macros.
float mySpecularThreshold
Definition: DtTritonDrawable.h:377
DtSignalConnectionManager myConnections
Definition: DtTritonDrawable.h:404
Triton::Environment * myEnvironment
Definition: DtTritonDrawable.h:360
osg::Vec3 myOceanFloorOrigin
Definition: DtTritonDrawable.h:365
float myLightThreshold
Definition: DtTritonDrawable.h:376
bool myAllowUnderwater
Definition: DtTritonDrawable.h:375
bool myMutableSimFrozen
Definition: DtTritonDrawable.h:435
bool myBreakingWavesMapFlag
Definition: DtTritonDrawable.h:369
#define DT_DLL_VRVTRITON
Definition: vrvTriton.h:19
ContextToHandleMap myOsgGcToOsGc
Definition: DtTritonDrawable.h:416
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
The osg cull vistor parameters class provides additional culling and intersector parameters for choos...
Definition: DtOsgCullVisitorParameters.h:38
bool myInitializationComplete
Definition: DtTritonDrawable.h:372
double myUnderwaterVisibility
Definition: DtTritonDrawable.h:380
float mySurgeDepth
Definition: DtTritonDrawable.h:371
double myDefaultDampingDistance
Definition: DtTritonDrawable.h:363
std::vector< unsigned int > myMutableUserShaderVector
Definition: DtTritonDrawable.h:439
DtTritonHeightMapSuperManager * myHeightMapSuperManager
Definition: DtTritonDrawable.h:388
boost::signal< void()> signal_postInitialize
Emitted when Triton has been initialized.
Definition: DtTritonDrawable.h:245
bool mySetupFailed
Definition: DtTritonDrawable.h:423
makVrv::DtDe & myDe
Definition: DtTritonDrawable.h:386
osg::ref_ptr< osg::Texture2D > myOceanMaskTexture
Definition: DtTritonDrawable.h:418
bool myMutableShadersDirty
Definition: DtTritonDrawable.h:427
DtTritonCameraManager * myTritonCameraManager
Definition: DtTritonDrawable.h:392
std::vector< osg::ref_ptr< osg::Texture > > myDebugVisualsTextures
Definition: DtTritonDrawable.h:407
osg::ref_ptr< osg::Camera > myDebugHeightMapCamera
Definition: DtTritonDrawable.h:408
osg::Vec3 myOceanFloorNormal
Definition: DtTritonDrawable.h:364
Base class to provide boost signal/slot management.
DtTritonManager::TritonQuality myQuality
Definition: DtTritonDrawable.h:401
Definition: DtTritonManager.h:48
bool myShowDebugHeightMapOverlay
Definition: DtTritonDrawable.h:410
A class to manage automatic periodic updating of a breaking wave direction map generated from shapefi...
Definition: DtTritonBreakingWavesMapManager.h:28
class for managing the planar reflections used by triton drawable.
Definition: DtTritonPlanarReflectionManager.h:38
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
An OSG Drawable representing Triton's infinite ocean.
Definition: DtTritonDrawable.h:61
TritonQuality
Definition: DtTritonManager.h:192
DtTritonPlanarReflectionManager * myPlanarReflectionManager
Definition: DtTritonDrawable.h:412
double myWindSpeed
Definition: DtTritonDrawable.h:396
bool myMutableDisableDrawing
Definition: DtTritonDrawable.h:431
bool mySavedPrecipitationState
Definition: DtTritonDrawable.h:373
class for managing the link between the triton camera's and the osg cameras
Definition: DtTritonCameraManager.h:42
Definition: DtTritonImGuiHelper.h:26
GLuint myDefaultFragShaderId
Definition: DtTritonDrawable.h:398
Triton::ResourceLoader * myResourceLoader
Definition: DtTritonDrawable.h:359
float myBreakerAmplitude
Definition: DtTritonDrawable.h:382
DtTritonBreakingWavesMapSuperManager * myBreakingWavesMapSuperManager
Definition: DtTritonDrawable.h:390