21 #include <matrix/vlVector.h>
24 #include <osg/Drawable>
25 #include <osg/TextureCubeMap>
44 class DtEnvironmentInfo;
45 class DtHeightMapManager;
46 class DtHeightMapSuperManager;
47 class DtObserverObject;
48 class DtOsgCullVisitorParameters;
50 class DtPlanarReflection;
51 class DtTritonBreakingWavesMapManager;
52 class DtTritonBreakingWavesMapSuperManager;
53 class DtTritonCameraManager;
54 class DtTritonPlanarReflectionManager;
55 class DtTritonShaderUniformManager;
58 class DtTritonImGuiHelper;
71 osg::TextureCubeMap* environmentMap = NULL,
91 virtual bool isSameKindAs(
const Object* obj)
const;
94 virtual Object* cloneType()
const;
97 virtual Object* clone(
const osg::CopyOp& copyop)
const;
103 virtual const Triton::Camera* closestCameraTo(
const DtVector& position)
const;
106 virtual Triton::Environment* environment();
109 virtual const Triton::Camera* tritonCamera(
const osg::Camera* osgCamera)
const;
112 virtual void setBeach(
const osg::Vec3& beachOrigin,
const osg::Vec3& normal);
115 virtual void syncHeightMapToGpu(
DtHeightMapManager* heightMapMgr,
const osg::State* state,
const osg::Camera* camera);
118 virtual void drawImplementation(osg::RenderInfo& renderInfo)
const;
121 virtual void setPlanarReflectionsEnabled(
bool enabled);
122 virtual bool planarReflectionsFlag()
const;
125 virtual void setBreakingWaveAmplitude(
float meters);
127 virtual float getBreakingWaveAmplitude()
const;
131 virtual void setHeightMap(
bool enabled);
135 virtual bool heightMap()
const;
147 virtual void setBreakingWavesMap(
bool enabled);
151 virtual bool breakingWavesMap()
const;
156 virtual void setMaxReflectionWindSpeed(
double metersPerSecond);
159 virtual void setUnderwaterFogColor(
const osg::Vec4& color);
161 virtual const osg::Vec4& underwaterFogColor()
const;
165 virtual void setUnderwaterVisibility(
double visibility);
167 virtual double underwaterVisibility()
const;
171 virtual void setWaterVisibility(
double visibility);
174 virtual double waterVisibility()
const;
178 virtual void setSurgeDepth(
float depth);
180 virtual float surgeDepth()
const;
184 virtual bool isInitialized()
const;
188 virtual void setAllowUnderwaterEffects(
bool allow);
191 virtual bool allowUnderwaterEffects()
const;
195 virtual void setHeightMapResolution(
float metersPerTexel);
198 virtual float heightMapResolution()
const;
202 virtual void setBreakingWavesMapResolution(
float metersPerTexel);
205 virtual float breakingWavesMapResolution()
const;
209 virtual void enableReflections(
bool enabled);
212 virtual void releaseGLObjects(osg::State* state = 0)
const;
215 virtual void setHeightMapChanged();
218 virtual void setBreakingWavesMapChanged();
225 virtual osg::Group* getTritonGeode();
227 virtual const osg::Group* getTritonGeode()
const;
237 virtual void setWindSpeed(
double windSpeed);
240 virtual bool geocentricFlag();
244 virtual void setOceanMaskTextureEnabled(
bool myOceanMaskTextureEnabled);
245 virtual bool isOceanMaskTextureEnabled()
const;
259 virtual void shaderUpdateLightUniforms(osg::RenderInfo& info,
void* context, Triton::Camera* camera)
const;
262 virtual void updateImguiAndConstantsOffOfImgui();
264 virtual void updateImguiHeightMapDebugOverlay(
bool needUpdate, osg::RenderInfo& renderInfo);
268 virtual bool setup(osg::RenderInfo& renderInfo);
271 virtual void cleanup(
void);
274 virtual void removePlanarReflections();
277 virtual void slot_reloadShader();
280 virtual void initShaderUniformHandles(
void* context, Triton::Camera* camera)
const;
283 virtual void applyLighting(osg::RenderInfo& info,
void* context, Triton::Camera* camera)
const;
286 virtual void applyQuality()
const;
289 virtual void setUpNearFarIfNecessary(
void)
const;
292 virtual void updateShader(osg::Node* node, osg::State& state,
void* context, Triton::Camera* camera)
const;
295 virtual void setSpecularThreshold(
float threshold);
297 virtual float specularThreshold()
const;
304 virtual void slot_heightMapCameraChanged();
307 virtual void flushInvalidCameras();
311 virtual void onPostTick(
void);
314 virtual void prepEnvironmentMap(
const DtOsgSkyObject* skyObject,
const osg::Camera* camera,
const osg::State& state)
const;
323 virtual void setupTritonLightFogVisibility(
const osg::Camera* camera,
DtOsgSkyObject* skyObject,
bool isAboveWater,
bool skyEnabled)
const;
326 virtual void setUpTritonParticlesAdditiveBlend(
void)
const;
335 virtual void updatePrecipitation(
DtOsgSkyObject* skyObject,
bool isAboveWater)
const;
338 virtual void setUpViewport(Triton::Camera* tritonCamera, osg::Camera* camera)
const;
341 virtual void checkGlErrors(
void)
const;
344 virtual void restoreOsgState(osg::State& state)
const;
347 virtual void updatePlanarReflectionCamera(
DtPlanarReflection* planarReflection,
bool skyEnabled)
const;
351 virtual void slot_windowToBeDestroyed(
DtWindow* window);
357 virtual void addGraphicsContextIfNecessary(osg::GraphicsContext* key);
360 virtual void setUpOceanMaskIfNecessary();
363 virtual const osg::StateSet* shadowTechniqueStateSet(
const osg::Camera* osgCamera)
const;
366 virtual void updateSunIntensity(
void)
const;
369 virtual void updateLighingBasedonSensorFX(osg::Camera* osgCamera)
const;
double myNearZConfig
Definition: DtTritonDrawable.h:452
std::vector< osg::ref_ptr< osg::Camera > > myDebugVisualsCameras
Definition: DtTritonDrawable.h:416
DtTritonRenderingParameters myRenderingParameters
Definition: DtTritonDrawable.h:461
bool myMutableOceanMaskTextureSetup
Definition: DtTritonDrawable.h:429
bool myHeightMapFlag
Definition: DtTritonDrawable.h:383
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:65
osg::Vec4 myUnderwaterFogColor
Definition: DtTritonDrawable.h:394
DtVector4< double > myVrvLatLongMinMax
Definition: DtTritonDrawable.h:431
double myFarZConfig
Definition: DtTritonDrawable.h:453
osg::ref_ptr< osg::ClipNode > myClipNode
Definition: DtTritonDrawable.h:407
DtTritonImGuiHelper * myImGuiHelper
Definition: DtTritonDrawable.h:457
Definition: featureContext.h:37
bool myOceanMaskTextureEnabled
Definition: DtTritonDrawable.h:454
float myDefaultVisibility
Definition: DtTritonDrawable.h:385
An OSG implementation of the sky.
Definition: DtOsgSkyObject.h:28
A class for managing multiple breaking wave map managers. There is a manager for each osg camera...
Definition: DtTritonBreakingWavesMapSuperManager.h:39
A camera for rendering Triton's planar reflection texture.
Definition: DtPlanarReflection.h:27
Triton::Ocean * myOcean
Definition: DtTritonDrawable.h:376
osg::ref_ptr< osg::Texture > myDebugHeightMapVisualTexture
Definition: DtTritonDrawable.h:419
osg::ref_ptr< osg::TextureCubeMap > myCubeMap
Definition: DtTritonDrawable.h:372
makVrv::DtEnvironmentInfo & myEnvironmentInfo
Definition: DtTritonDrawable.h:399
Contains the declaration of the makVrv::DtTritonManager class.
Definition: DtTritonManager.h:199
bool myGeocentricFlag
Definition: DtTritonDrawable.h:381
DtTritonShaderUniformManager * myShaderUniformManger
Definition: DtTritonDrawable.h:424
const DtTritonManager & myTritonManager
Definition: DtTritonDrawable.h:413
bool myNearFarValuesInitializedFromConfig
Definition: DtTritonDrawable.h:451
Contains DLL export macros.
float mySpecularThreshold
Definition: DtTritonDrawable.h:392
DtSignalConnectionManager myConnections
Definition: DtTritonDrawable.h:414
Triton::Environment * myEnvironment
Definition: DtTritonDrawable.h:375
structure used to communicated triton rendering parameters between imgui/system to triton ...
Definition: DtTritonRenderingParameters.h:20
osg::Vec3 myOceanFloorOrigin
Definition: DtTritonDrawable.h:380
Contains makVrv::DtTritonRenderingParameters structure.
float myLightThreshold
Definition: DtTritonDrawable.h:391
bool myAllowUnderwater
Definition: DtTritonDrawable.h:390
bool myMutableSimFrozen
Definition: DtTritonDrawable.h:445
bool myBreakingWavesMapFlag
Definition: DtTritonDrawable.h:384
#define DT_DLL_VRVTRITON
Definition: vrvTriton.h:19
ContextToHandleMap myOsgGcToOsGc
Definition: DtTritonDrawable.h:426
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
The osg cull vistor parameters class provides additional culling and intersector parameters for choos...
Definition: DtOsgCullVisitorParameters.h:38
bool myInitializationComplete
Definition: DtTritonDrawable.h:387
double myUnderwaterVisibility
Definition: DtTritonDrawable.h:395
float mySurgeDepth
Definition: DtTritonDrawable.h:386
double myDefaultDampingDistance
Definition: DtTritonDrawable.h:378
std::vector< unsigned int > myMutableUserShaderVector
Definition: DtTritonDrawable.h:449
bool mySetupFailed
Definition: DtTritonDrawable.h:433
makVrv::DtDe & myDe
Definition: DtTritonDrawable.h:401
osg::ref_ptr< osg::Texture2D > myOceanMaskTexture
Definition: DtTritonDrawable.h:428
bool myMutableShadersDirty
Definition: DtTritonDrawable.h:437
DtTritonCameraManager * myTritonCameraManager
Definition: DtTritonDrawable.h:405
std::vector< osg::ref_ptr< osg::Texture > > myDebugVisualsTextures
Definition: DtTritonDrawable.h:417
osg::ref_ptr< osg::Camera > myDebugHeightMapCamera
Definition: DtTritonDrawable.h:418
osg::Vec3 myOceanFloorNormal
Definition: DtTritonDrawable.h:379
Base class to provide boost signal/slot management.
DtTritonManager::TritonQuality myQuality
Definition: DtTritonDrawable.h:411
Definition: DtTritonManager.h:48
bool myShowDebugHeightMapOverlay
Definition: DtTritonDrawable.h:420
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:48
A class to manage automatic periodic updating of a height map generated from the database dynamically...
Definition: DtHeightMapManager.h:94
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:62
TritonQuality
Definition: DtTritonManager.h:198
DtTritonPlanarReflectionManager * myPlanarReflectionManager
Definition: DtTritonDrawable.h:422
boost::signalslib::signal< void()> signal_postInitialize
Emitted when Triton has been initialized.
Definition: DtTritonDrawable.h:254
double myWindSpeed
Definition: DtTritonDrawable.h:409
bool myMutableDisableDrawing
Definition: DtTritonDrawable.h:441
bool mySavedPrecipitationState
Definition: DtTritonDrawable.h:388
class for managing the link between the triton camera's and the osg cameras
Definition: DtTritonCameraManager.h:42
Definition: DtTritonImGuiHelper.h:26
Triton::ResourceLoader * myResourceLoader
Definition: DtTritonDrawable.h:374
float myBreakerAmplitude
Definition: DtTritonDrawable.h:397
DtTritonBreakingWavesMapSuperManager * myBreakingWavesMapSuperManager
Definition: DtTritonDrawable.h:403