21 #include <matrix/vlVector.h>
24 #include <osg/Drawable>
25 #include <osg/TextureCubeMap>
43 class DtHeightMapManager;
44 class DtObserverObject;
45 class DtOsgCullVisitorParameters;
47 class DtPlanarReflectionCamera;
48 class DtTritonBreakingWavesMapManager;
49 class DtTritonPlanarReflectionManager;
50 class DtTritonShaderUniformManager;
53 class DtTritonImGuiHelper;
54 class DtSkyObjectManager;
55 class DtTritonGroupTcsUserData;
56 class DtHeightMapSuperManager;
86 virtual void setUpEnvironment();
89 virtual void setUpOceanMask();
95 virtual Triton::Environment* environment();
98 virtual void drawImplementation(osg::RenderInfo& renderInfo)
const;
101 virtual void setUnderwaterFogColor(
const Vector4_32& color);
103 virtual const Vector4_32& underwaterFogColor()
const;
107 virtual void setUnderwaterVisibility(
double visibility);
109 virtual double underwaterVisibility()
const;
113 virtual bool isInitialized()
const;
117 virtual void setAllowUnderwaterEffects(
bool allow);
120 virtual bool allowUnderwaterEffects()
const;
123 virtual void releaseGLObjects(osg::State* state = 0)
const;
133 virtual osg::Group* getTritonGeode();
135 virtual const osg::Group* getTritonGeode()
const;
153 virtual void shaderUpdateLightUniforms(osg::RenderInfo& info
154 ,
const osg::Camera* osgCamera
158 virtual void slot_preObserverUpdate();
162 virtual bool setUpOcean();
165 virtual void cleanup(
void);
168 virtual void slot_reloadShader();
172 virtual void applyLighting(osg::RenderInfo& info,
const osg::Camera* osgCamera
176 virtual bool applyQuality()
const;
179 virtual void applySpectralModel(
void)
const;
182 virtual void updateShader(osg::Node* node, osg::State& state)
const;
185 virtual void onPostTick(
void);
191 virtual void prepHeightMapAndBreakingWavesMaps(
const DtHeightMapManager* heightMapMgr, osg::State& state, osg::RenderInfo& renderInfo
199 virtual void setupTritonLightFogVisibility(
const osg::Camera* camera,
DtOsgSkyObject* skyObject, std::pair<bool, float> isAboveWater,
bool skyEnabled,
DtTritonGroupTcsUserData* userData)
const;
202 virtual Vector4_32 calculateUnderWaterFogColor(
Vector4_32 ambientLight,
float cameraDepth )
const;
208 virtual std::pair<bool, float> isCameraAboveWater(
Triton::Ocean* ocean,
209 const Triton::Environment* environment,
const Triton::Camera* camera )
const;
212 virtual void setUpTritonParticlesAdditiveBlend(
void)
const;
221 virtual void setUpViewport(Triton::Camera* tritonCamera, osg::Camera* camera)
const;
224 virtual void restoreOsgState(osg::State& state)
const;
233 virtual void addGraphicsContextIfNecessary(osg::GraphicsContext* key);
237 virtual const osg::StateSet* shadowTechniqueStateSet(
const osg::Camera* osgCamera)
const;
240 virtual void updateSunIntensity(
const osg::Camera* osgCamera,
DtTritonGroupTcsUserData* userData,
double windSpeed)
const;
246 virtual void syncHeightMapToGpu(
const DtHeightMapManager* heightMapMgr,
const osg::State& state,
const osg::Camera* camera
250 virtual void logTritonInitializationInfo(
void)
const;
253 virtual void updateBreakingWavesParametersInTriton(
void);
255 virtual void slot_hdrEnabledChanged(
bool );
311 const float myWindSpeedUpperBound = 40.0f;
313 const float myMaxReflectionBlend = 0.5f;
DtTritonManager & myTritonManager
Definition: DtTritonDrawable.h:279
const bool myPlanarReflectionsEnabled
Definition: DtTritonDrawable.h:322
DtTritonRenderingParameters myRenderingParameters
Definition: DtTritonDrawable.h:305
std::map< osg::GraphicsContext *, void * > ContextToHandleMap
Definition: DtTritonDrawable.h:63
DtVector4< double > myVrvLatLongMinMax
Definition: DtTritonDrawable.h:286
osg::ref_ptr< osg::ClipNode > myClipNode
Definition: DtTritonDrawable.h:277
DtTritonImGuiHelper * myImGuiHelper
Definition: DtTritonDrawable.h:300
Definition: featureContext.h:37
const bool myHeightMapEnabled
Definition: DtTritonDrawable.h:319
Vector4_32 myUnderwaterFogColor
Definition: DtTritonDrawable.h:272
Definition: DtSkyObjectManager.h:30
An OSG implementation of the sky.
Definition: DtOsgSkyObject.h:28
Triton::Ocean * myOcean
Definition: DtTritonDrawable.h:259
const bool myBreakingWavesMapEnabled
Definition: DtTritonDrawable.h:321
Contains the declaration of the makVrv::DtTritonManager class.
Contains DLL export macros.
float mySpecularThreshold
Definition: DtTritonDrawable.h:270
DtSignalConnectionManager myConnections
Definition: DtTritonDrawable.h:280
Triton::Environment * myEnvironment
Definition: DtTritonDrawable.h:258
osg::Vec3 myOceanFloorOrigin
Definition: DtTritonDrawable.h:263
Contains makVrv::DtTritonRenderingParameters structure.
float myLightThreshold
Definition: DtTritonDrawable.h:269
This represents per camera, context (tcs) specific data for Triton.
Definition: DtTritonGroupTcsUserData.h:39
bool myAllowUnderwater
Definition: DtTritonDrawable.h:268
#define DT_DLL_VRVTRITON
Definition: vrvTriton.h:19
ContextToHandleMap myOsgGcToOsGc
Definition: DtTritonDrawable.h:282
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:43
bool myInitializationComplete
Definition: DtTritonDrawable.h:266
double myUnderwaterVisibility
Definition: DtTritonDrawable.h:273
bool myPreSubmergedHDROn
Definition: DtTritonDrawable.h:326
boost::signalslib::signal< void()> signal_environmentToBeDestroyed
Emitted when the Triton environment is to be destroyed.
Definition: DtTritonDrawable.h:148
double myDefaultDampingDistance
Definition: DtTritonDrawable.h:261
DtHeightMapSuperManager & myHeightMapSuperManager
dereferenced
Definition: DtTritonDrawable.h:316
std::vector< unsigned int > myMutableUserShaderVector
Definition: DtTritonDrawable.h:296
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
structure used to communicated triton rendering parameters between imgui/system to triton ...
Definition: DtTritonRenderingParameters.h:20
bool mySetupFailed
Definition: DtTritonDrawable.h:288
makVrv::DtDe & myDe
Definition: DtTritonDrawable.h:275
osg::ref_ptr< osg::Texture2D > myOceanMaskTexture
Definition: DtTritonDrawable.h:284
bool myMutableShadersDirty
Definition: DtTritonDrawable.h:292
osg::Vec3 myOceanFloorNormal
Definition: DtTritonDrawable.h:262
Base class to provide boost signal/slot management.
Definition: DtTritonManager.h:49
DtSkyObjectManager & mySkyObjectManager
Definition: DtTritonDrawable.h:307
A class to manage automatic periodic updating of a height map generated from the database dynamically...
Definition: DtHeightMapManager.h:47
DtUniqueID myHeightMapRegisteredId
Definition: DtTritonDrawable.h:298
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:72
An OSG Drawable representing Triton's infinite ocean. /ingroup vrvTriton.
Definition: DtTritonDrawable.h:60
boost::signalslib::signal< void()> signal_postInitialize
Emitted when Triton has been initialized.
Definition: DtTritonDrawable.h:145
const bool myBreakingWavesEnabled
Definition: DtTritonDrawable.h:320
Definition: DtTritonImGuiHelper.h:33
Triton::ResourceLoader * myResourceLoader
Definition: DtTritonDrawable.h:257
A class to manage multiple DtHeightMapManager(s) (one per camera)
Definition: DtHeightMapSuperManager.h:55