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);
90 virtual bool isSameKindAs(
const Object* obj)
const;
93 virtual Object* cloneType()
const;
96 virtual Object* clone(
const osg::CopyOp& copyop)
const;
102 virtual const Triton::Camera* closestCameraTo(
const DtVector& position)
const;
105 virtual Triton::Environment* environment();
108 virtual const Triton::Camera* tritonCamera(
const osg::Camera* osgCamera)
const;
111 virtual void setBeach(
const osg::Vec3& beachOrigin,
const osg::Vec3& normal);
114 virtual void syncHeightMapToGpu(
DtHeightMapManager* heightMapMgr,
const osg::State* state,
const osg::Camera* camera);
117 virtual void drawImplementation(osg::RenderInfo& renderInfo)
const;
120 virtual void setPlanarReflectionsEnabled(
bool enabled);
121 virtual bool planarReflectionsFlag()
const;
124 virtual void setBreakingWaveAmplitude(
float meters);
126 virtual float getBreakingWaveAmplitude()
const;
130 virtual void setHeightMap(
bool enabled);
134 virtual bool heightMap()
const;
138 virtual void setBreakingWavesMap(
bool enabled);
142 virtual bool breakingWavesMap()
const;
147 virtual void setMaxReflectionWindSpeed(
double metersPerSecond);
150 virtual void setUnderwaterFogColor(
const osg::Vec4& color);
152 virtual const osg::Vec4& underwaterFogColor()
const;
156 virtual void setUnderwaterVisibility(
double visibility);
158 virtual double underwaterVisibility()
const;
162 virtual void setWaterVisibility(
double visibility);
165 virtual double waterVisibility()
const;
169 virtual void setSurgeDepth(
float depth);
171 virtual float surgeDepth()
const;
175 virtual bool isInitialized()
const;
179 virtual void setAllowUnderwaterEffects(
bool allow);
182 virtual bool allowUnderwaterEffects()
const;
186 virtual void setHeightMapResolution(
float metersPerTexel);
189 virtual float heightMapResolution()
const;
193 virtual void setBreakingWavesMapResolution(
float metersPerTexel);
196 virtual float breakingWavesMapResolution()
const;
200 virtual void enableReflections(
bool enabled);
203 virtual void releaseGLObjects(osg::State* state = 0)
const;
206 virtual void setHeightMapChanged();
209 virtual void setBreakingWavesMapChanged();
216 virtual osg::Group* getTritonGeode();
218 virtual const osg::Group* getTritonGeode()
const;
228 virtual void setWindSpeed(
double windSpeed);
231 virtual bool geocentricFlag();
235 virtual void setOceanMaskTextureEnabled(
bool myOceanMaskTextureEnabled);
236 virtual 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 applySpectralModel(
void)
const;
283 virtual void setUpNearFarIfNecessary(
void)
const;
286 virtual void updateShader(osg::Node* node, osg::State& state,
void* context, Triton::Camera* camera)
const;
289 virtual void setSpecularThreshold(
float threshold);
291 virtual float specularThreshold()
const;
298 virtual void slot_heightMapCameraChanged();
301 virtual void flushInvalidCameras();
305 virtual void onPostTick(
void);
308 virtual void prepEnvironmentMap(
const DtOsgSkyObject* skyObject,
const osg::Camera* camera,
const osg::State& state)
const;
317 virtual void setupTritonLightFogVisibility(
const osg::Camera* camera,
DtOsgSkyObject* skyObject,
bool isAboveWater,
bool skyEnabled)
const;
320 virtual void setUpTritonParticlesAdditiveBlend(
void)
const;
329 virtual void setUpViewport(Triton::Camera* tritonCamera, osg::Camera* camera)
const;
332 virtual void checkGlErrors(
void)
const;
335 virtual void restoreOsgState(osg::State& state)
const;
338 virtual void updatePlanarReflectionCamera(
DtPlanarReflection* planarReflection,
bool skyEnabled)
const;
342 virtual void slot_windowToBeDestroyed(
DtWindow* window);
348 virtual void addGraphicsContextIfNecessary(osg::GraphicsContext* key);
351 virtual void setUpOceanMaskIfNecessary();
354 virtual const osg::StateSet* shadowTechniqueStateSet(
const osg::Camera* osgCamera)
const;
357 virtual void updateSunIntensity(
const osg::Camera* osgCamera)
const;
360 virtual void updateLighingBasedonSensorFX(osg::Camera* osgCamera)
const;
double myNearZConfig
Definition: DtTritonDrawable.h:436
std::vector< osg::ref_ptr< osg::Camera > > myDebugVisualsCameras
Definition: DtTritonDrawable.h:404
DtTritonRenderingParameters myRenderingParameters
Definition: DtTritonDrawable.h:445
bool myMutableOceanMaskTextureSetup
Definition: DtTritonDrawable.h:417
bool myHeightMapFlag
Definition: DtTritonDrawable.h:374
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:27
std::map< osg::GraphicsContext *, void * > ContextToHandleMap
Definition: DtTritonDrawable.h:65
osg::Vec4 myUnderwaterFogColor
Definition: DtTritonDrawable.h:384
DtVector4< double > myVrvLatLongMinMax
Definition: DtTritonDrawable.h:419
double myFarZConfig
Definition: DtTritonDrawable.h:437
osg::ref_ptr< osg::ClipNode > myClipNode
Definition: DtTritonDrawable.h:397
DtTritonImGuiHelper * myImGuiHelper
Definition: DtTritonDrawable.h:441
Definition: featureContext.h:37
bool myOceanMaskTextureEnabled
Definition: DtTritonDrawable.h:438
float myDefaultVisibility
Definition: DtTritonDrawable.h:376
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:367
osg::ref_ptr< osg::Texture > myDebugHeightMapVisualTexture
Definition: DtTritonDrawable.h:407
osg::ref_ptr< osg::TextureCubeMap > myCubeMap
Definition: DtTritonDrawable.h:363
makVrv::DtEnvironmentInfo & myEnvironmentInfo
Definition: DtTritonDrawable.h:389
Contains the declaration of the makVrv::DtTritonManager class.
bool myGeocentricFlag
Definition: DtTritonDrawable.h:372
DtTritonShaderUniformManager * myShaderUniformManger
Definition: DtTritonDrawable.h:412
const DtTritonManager & myTritonManager
Definition: DtTritonDrawable.h:401
bool myNearFarValuesInitializedFromConfig
Definition: DtTritonDrawable.h:435
Contains DLL export macros.
float mySpecularThreshold
Definition: DtTritonDrawable.h:382
DtSignalConnectionManager myConnections
Definition: DtTritonDrawable.h:402
Triton::Environment * myEnvironment
Definition: DtTritonDrawable.h:366
structure used to communicated triton rendering parameters between imgui/system to triton ...
Definition: DtTritonRenderingParameters.h:20
osg::Vec3 myOceanFloorOrigin
Definition: DtTritonDrawable.h:371
Contains makVrv::DtTritonRenderingParameters structure.
float myLightThreshold
Definition: DtTritonDrawable.h:381
bool myAllowUnderwater
Definition: DtTritonDrawable.h:380
bool myBreakingWavesMapFlag
Definition: DtTritonDrawable.h:375
#define DT_DLL_VRVTRITON
Definition: vrvTriton.h:19
ContextToHandleMap myOsgGcToOsGc
Definition: DtTritonDrawable.h:414
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:42
bool myInitializationComplete
Definition: DtTritonDrawable.h:378
double myUnderwaterVisibility
Definition: DtTritonDrawable.h:385
float mySurgeDepth
Definition: DtTritonDrawable.h:377
double myDefaultDampingDistance
Definition: DtTritonDrawable.h:369
std::vector< unsigned int > myMutableUserShaderVector
Definition: DtTritonDrawable.h:433
bool mySetupFailed
Definition: DtTritonDrawable.h:421
makVrv::DtDe & myDe
Definition: DtTritonDrawable.h:391
osg::ref_ptr< osg::Texture2D > myOceanMaskTexture
Definition: DtTritonDrawable.h:416
bool myMutableShadersDirty
Definition: DtTritonDrawable.h:425
DtTritonCameraManager * myTritonCameraManager
Definition: DtTritonDrawable.h:395
std::vector< osg::ref_ptr< osg::Texture > > myDebugVisualsTextures
Definition: DtTritonDrawable.h:405
osg::ref_ptr< osg::Camera > myDebugHeightMapCamera
Definition: DtTritonDrawable.h:406
osg::Vec3 myOceanFloorNormal
Definition: DtTritonDrawable.h:370
Base class to provide boost signal/slot management.
Definition: DtTritonManager.h:48
bool myShowDebugHeightMapOverlay
Definition: DtTritonDrawable.h:408
A class to manage automatic periodic updating of a breaking wave direction map generated from shapefi...
Definition: DtTritonBreakingWavesMapManager.h:40
class for managing the planar reflections used by triton drawable.
Definition: DtTritonPlanarReflectionManager.h:51
A class to manage automatic periodic updating of a height map generated from the database dynamically...
Definition: DtHeightMapManager.h:95
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
An OSG Drawable representing Triton's infinite ocean. /ingroup vrvTriton.
Definition: DtTritonDrawable.h:62
DtTritonPlanarReflectionManager * myPlanarReflectionManager
Definition: DtTritonDrawable.h:410
boost::signalslib::signal< void()> signal_postInitialize
Emitted when Triton has been initialized.
Definition: DtTritonDrawable.h:245
double myWindSpeed
Definition: DtTritonDrawable.h:399
bool myMutableDisableDrawing
Definition: DtTritonDrawable.h:429
class for managing the link between the triton camera's and the osg cameras
Definition: DtTritonCameraManager.h:51
Definition: DtTritonImGuiHelper.h:26
Triton::ResourceLoader * myResourceLoader
Definition: DtTritonDrawable.h:365
float myBreakerAmplitude
Definition: DtTritonDrawable.h:387
DtTritonBreakingWavesMapSuperManager * myBreakingWavesMapSuperManager
Definition: DtTritonDrawable.h:393