21 #include <matrix/vlVector.h>
24 #include <osg/Drawable>
25 #include <osg/TextureCubeMap>
28 #include <osgEarth/GDAL>
45 class DtHeightMapManager;
46 class DtObserverObject;
47 class DtOsgCullVisitorParameters;
49 class DtPlanarReflectionCamera;
50 class DtTritonBreakingWavesMapManager;
51 class DtTritonPlanarReflectionManager;
52 class DtTritonShaderUniformManager;
55 class DtTritonImGuiHelper;
56 class DtSkyObjectManager;
57 class DtTritonGroupTcsUserData;
58 class DtHeightMapSuperManager;
88 virtual void setUpEnvironment();
91 virtual void setUpOceanMask();
97 virtual Triton::Environment* environment();
100 virtual void drawImplementation(osg::RenderInfo& renderInfo)
const;
103 virtual void setUnderwaterFogColor(
const Vector4_32& color);
105 virtual const Vector4_32& underwaterFogColor()
const;
109 virtual void setUnderwaterVisibility(
double visibility);
111 virtual double underwaterVisibility()
const;
115 virtual bool isInitialized()
const;
119 virtual void setAllowUnderwaterEffects(
bool allow);
122 virtual bool allowUnderwaterEffects()
const;
125 virtual void releaseGLObjects(osg::State* state = 0)
const;
135 virtual osg::Group* getTritonGeode();
137 virtual const osg::Group* getTritonGeode()
const;
155 virtual void shaderUpdateLightUniforms(osg::RenderInfo& info
156 ,
const osg::Camera* osgCamera
160 virtual void slot_preObserverUpdate();
164 virtual bool setUpOcean();
167 virtual void cleanup(
void);
170 virtual void slot_reloadShader();
174 virtual void applyLighting(osg::RenderInfo& info,
const osg::Camera* osgCamera
178 virtual bool applyQuality()
const;
181 virtual void applySpectralModel(
void)
const;
184 virtual void updateShader(osg::Node* node, osg::State& state)
const;
187 virtual void onPostTick(
void);
193 virtual void prepHeightMapAndBreakingWavesMaps(
const DtHeightMapManager* heightMapMgr, osg::State& state, osg::RenderInfo& renderInfo
201 virtual void setupTritonLightFogVisibility(
const osg::Camera* camera,
DtOsgSkyObject* skyObject, std::pair<bool, float> isAboveWater,
bool skyEnabled,
DtTritonGroupTcsUserData* userData)
const;
204 virtual Vector4_32 calculateUnderWaterFogColor(
Vector4_32 ambientLight,
float cameraDepth )
const;
210 virtual std::pair<bool, float> isCameraAboveWater(
Triton::Ocean* ocean,
211 const Triton::Environment* environment,
const Triton::Camera* camera )
const;
214 virtual void setUpTritonParticlesAdditiveBlend(
void)
const;
223 virtual void setUpViewport(Triton::Camera* tritonCamera, osg::Camera* camera)
const;
226 virtual void restoreOsgState(osg::State& state)
const;
235 virtual void addGraphicsContextIfNecessary(osg::GraphicsContext* key);
239 virtual const osg::StateSet* shadowTechniqueStateSet(
const osg::Camera* osgCamera)
const;
242 virtual void updateSunIntensity(
const osg::Camera* osgCamera,
DtTritonGroupTcsUserData* userData,
double windSpeed)
const;
248 virtual void syncHeightMapToGpu(
const DtHeightMapManager* heightMapMgr,
const osg::State& state,
const osg::Camera* camera
252 virtual void logTritonInitializationInfo(
void)
const;
255 virtual void updateBreakingWavesParametersInTriton(
void);
257 virtual void slot_hdrEnabledChanged(
bool );
313 const float myWindSpeedUpperBound = 40.0f;
315 const float myMaxReflectionBlend = 0.5f;
DtTritonManager & myTritonManager
Definition: DtTritonDrawable.h:281
const bool myPlanarReflectionsEnabled
Definition: DtTritonDrawable.h:324
DtTritonRenderingParameters myRenderingParameters
Definition: DtTritonDrawable.h:307
std::map< osg::GraphicsContext *, void * > ContextToHandleMap
Definition: DtTritonDrawable.h:65
DtVector4< double > myVrvLatLongMinMax
Definition: DtTritonDrawable.h:288
osg::ref_ptr< osg::ClipNode > myClipNode
Definition: DtTritonDrawable.h:279
osg::ref_ptr< osgEarth::GDALImageLayer > myMaskImageLayer
Definition: DtTritonDrawable.h:329
DtTritonImGuiHelper * myImGuiHelper
Definition: DtTritonDrawable.h:302
Definition: featureContext.h:36
const bool myHeightMapEnabled
Definition: DtTritonDrawable.h:321
Vector4_32 myUnderwaterFogColor
Definition: DtTritonDrawable.h:274
Definition: DtSkyObjectManager.h:30
An OSG implementation of the sky.
Definition: DtOsgSkyObject.h:28
Triton::Ocean * myOcean
Definition: DtTritonDrawable.h:261
const bool myBreakingWavesMapEnabled
Definition: DtTritonDrawable.h:323
Contains the declaration of the makVrv::DtTritonManager class.
Contains DLL export macros.
float mySpecularThreshold
Definition: DtTritonDrawable.h:272
DtSignalConnectionManager myConnections
Definition: DtTritonDrawable.h:282
Triton::Environment * myEnvironment
Definition: DtTritonDrawable.h:260
osg::Vec3 myOceanFloorOrigin
Definition: DtTritonDrawable.h:265
Contains makVrv::DtTritonRenderingParameters structure.
float myLightThreshold
Definition: DtTritonDrawable.h:271
This represents per camera, context (tcs) specific data for Triton.
Definition: DtTritonGroupTcsUserData.h:39
bool myAllowUnderwater
Definition: DtTritonDrawable.h:270
#define DT_DLL_VRVTRITON
Definition: vrvTriton.h:19
ContextToHandleMap myOsgGcToOsGc
Definition: DtTritonDrawable.h:284
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:44
bool myInitializationComplete
Definition: DtTritonDrawable.h:268
double myUnderwaterVisibility
Definition: DtTritonDrawable.h:275
bool myPreSubmergedHDROn
Definition: DtTritonDrawable.h:328
boost::signalslib::signal< void()> signal_environmentToBeDestroyed
Emitted when the Triton environment is to be destroyed.
Definition: DtTritonDrawable.h:150
double myDefaultDampingDistance
Definition: DtTritonDrawable.h:263
DtHeightMapSuperManager & myHeightMapSuperManager
dereferenced
Definition: DtTritonDrawable.h:318
std::vector< unsigned int > myMutableUserShaderVector
Definition: DtTritonDrawable.h:298
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:290
makVrv::DtDe & myDe
Definition: DtTritonDrawable.h:277
osg::ref_ptr< osg::Texture2D > myOceanMaskTexture
Definition: DtTritonDrawable.h:286
bool myMutableShadersDirty
Definition: DtTritonDrawable.h:294
osg::Vec3 myOceanFloorNormal
Definition: DtTritonDrawable.h:264
Base class to provide boost signal/slot management.
Definition: DtTritonManager.h:49
DtSkyObjectManager & mySkyObjectManager
Definition: DtTritonDrawable.h:309
A class to manage automatic periodic updating of a height map generated from the database dynamically...
Definition: DtHeightMapManager.h:52
DtUniqueID myHeightMapRegisteredId
Definition: DtTritonDrawable.h:300
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:76
An OSG Drawable representing Triton's infinite ocean. /ingroup vrvTriton.
Definition: DtTritonDrawable.h:62
boost::signalslib::signal< void()> signal_postInitialize
Emitted when Triton has been initialized.
Definition: DtTritonDrawable.h:147
const bool myBreakingWavesEnabled
Definition: DtTritonDrawable.h:322
Definition: DtTritonImGuiHelper.h:33
Triton::ResourceLoader * myResourceLoader
Definition: DtTritonDrawable.h:259
A class to manage multiple DtHeightMapManager(s) (one per camera)
Definition: DtHeightMapSuperManager.h:55