VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes
makVrv::DtTritonManager Class Reference
Inheritance diagram for makVrv::DtTritonManager:
Inheritance graph
[legend]

Public Types

enum  TritonQuality { TritonQuality_Good, TritonQuality_Better, TritonQuality_Best }
 
enum  TritonSpectralModel { TritonSpectralModel_JonSwap = 0, TritonSpectralModel_Pierson_Moskowitz, TritonSpectralModel_Tessendorf }
 

Public Member Functions

virtual ~DtTritonManager ()
 
virtual void addToScene ()
 
virtual void oceanLayerAdded ()
 
virtual void oceanLayerToBeDeleted ()
 
virtual void setSeaLevel (float level)
 
virtual float seaLevel () const
 
virtual void setElevationLod (double maxElevation)
 
virtual double elevationLod () const
 
virtual void setWind (double speed, double direction, double fetch=0.0)
 
virtual void setDouglasSeaState (DtDouglasSeaState::Scale seaState, double seaStateDirection, DtDouglasSwellState::Scale swellState, double swellStateDirection)
 
virtual void addSwell (float wavelength, float waveHeight, float radiansClockwiseFromNorth)
 
virtual void clearSwells ()
 
virtual void setChoppiness (float chop)
 
virtual bool getIsUnderwater (const osg::Camera *osgCamera) const
 
virtual void setUnderwaterVisibility (double distance)
 
virtual bool setUnderwaterFogColor (const DtVector &fogColor)
 
virtual void setUnderwaterFogEnabled (bool enabled)
 
virtual void setWaterColor (const DtVector &waterColor)
 
virtual DtVector waterColor () const
 
virtual double waterVisibility () const
 
virtual void setWaterVisibility (double distance)
 
virtual void setSurfaceTransparency (double transparency)
 
virtual bool setSurgeDepth (float depth)
 
virtual bool getSurgeDepth (float &depth) const
 
virtual void setDepthOffset (float offset)
 
virtual bool intersect (const DtVector &position, DtVector &positionOut, DtVector &normalOut, float waterlineAdjustment=0.0)
 
virtual bool intersectSeaLevel (const DtVector &position, const DtVector &direction, DtVector &positionOut)
 
virtual bool getHeight (const DtVector &position, const DtVector &direction, double &height, DtVector &normalOut)
 
virtual Triton::WakeGenerator * createWake (const Triton::WakeGeneratorParameters &parameters)
 
virtual Triton::RotorWash * createRotorWash (double rotorDiameter)
 
virtual Triton::Impact * createImpact (double impactorDiameter, double mass, double sprayScale)
 
virtual Triton::TidalStreamWake * createTidalStreamWake (double size, double draft, double maxWaveHeight, double offset)
 
virtual void setWaveSprayEffects (bool waveSprayEnabled)
 
virtual bool waveSprayEffects () const
 
virtual void setDecalEffects (bool decalsEnabled)
 
virtual bool decalEffects () const
 
virtual void setGodRayEffects (bool godRaysEnabled)
 
virtual bool godRayEffects () const
 
virtual void setBreakingWaveAmplitude (float meters)
 
virtual float getBreakingWaveAmplitude () const
 
virtual float getMaximumWaveHeight ()
 
virtual void setHeightMapResolution (float metersPerTexel)
 
virtual bool getHeightMapResolution (float &metersPerTexel) const
 
virtual void setSeaState (DtBeaufortWindScale::Scale beaufortScale)
 
virtual DtBeaufortWindScale::Scale seaState () const
 
virtual void setBeach (const DtVector &origin, const DtVector &normal)
 
virtual void setPlanarReflections (bool enable)
 
virtual bool planarReflections () const
 
virtual void setHeightMap (bool enable)
 
virtual bool heightMap () const
 
virtual void setCorrelateIntersectionsToVisuals (bool visualCorrelation)
 
virtual bool correlateIntersectionsToVisuals () const
 
virtual void setOceanMaskTextureEnabled (bool enable)
 
virtual bool isOceanMaskTextureEnabled () const
 
virtual bool isOverWater (const DtVector &localPosition, bool isVisible=true)
 
virtual bool addedToScene ()
 
virtual void setIsVisible (bool visible, unsigned int frameNum)
 
virtual bool getIsVisible ()
 
virtual DtTime oceanTime () const
 
virtual DtTritonDrawabletritonDrawable () const
 
virtual double getOceanZoomOverride () const
 
virtual void setOceanZoomOverride (double zoomOverride)
 
virtual void setFreezeEnabled (bool enable)
 
virtual bool freezeEnabled () const
 
virtual void setFreezeTime (DtTime freezeAtTime)
 
virtual DtTime freezeTime (void) const
 
virtual void setIncludeWakesInIntersections (bool includeWakes)
 
virtual bool includeWakesInIntersections () const
 
virtual void setQuality (unsigned int quality)
 
virtual TritonQuality quality () const
 
virtual void setSpectralModel (unsigned int spectralModel)
 
virtual TritonSpectralModel spectralModel () const
 
- Public Member Functions inherited from makVrv::DtVirtualBaseClass
 DtVirtualBaseClass ()
 
virtual ~DtVirtualBaseClass ()
 

Static Public Member Functions

static DtTritonManagerinstance (makVrv::DtDe &de)
 

Public Attributes

boost::signalslib::signal< void()> signal_oceanInitialized
 
boost::signalslib::signal< void()> signal_addedToScene
 
boost::signalslib::signal< void()> signal_removedFromScene
 
boost::signalslib::signal< void()> signal_oceanToBeDestroyed
 
boost::signalslib::signal
< void(DtPlanarReflection
*reflection)> 
signal_planarReflectionCreated
 
boost::signalslib::signal
< void(double)> 
signal_shipSpeedChanged
 

Protected Member Functions

 DtTritonManager (makVrv::DtDe &de)
 
void slot_postInitialize ()
 
void slot_driverToBeDestroyed (DtDriver &driver)
 
virtual void installEventProcessor ()
 
void slot_postUpdate ()
 
virtual DtDynamicOceanObjectdynamicOcean () const
 

Protected Attributes

DtDemyDe
 
DtDynamicOceanObjectManagermyDynamicOceanObjectManager
 
DtSignalConnectionManager mySignals
 
DtTritonEventProcessormyEventProcessor
 
osg::ref_ptr< DtTritonDrawablemyTritonDrawable
 
osg::ref_ptr< DtTritonGroupmyTritonRoot
 
TritonQuality myTritonQuality
 
TritonSpectralModel mySpectralModel
 
float myElevationRange
 
float mySeaLevel
 
double myWaterVisibility
 
bool myVisualIntersections
 
bool myIncludeWakesInIntersections = true
 
unsigned int myLastFrameNum
 
bool myWaterVisible
 
bool myDecalEffects
 
DtVector myWaterColor
 
double myOceanZoomOverride
 
bool myOceanMaskTextureEnabled
 
bool myFreezeEnabled = false
 
DtTime myFreezeAtTime = 0
 

Static Protected Attributes

static const float theMaxWindSpeedForWindFetch
 

Member Enumeration Documentation

Enumerator
TritonQuality_Good 
TritonQuality_Better 
TritonQuality_Best 
Enumerator
TritonSpectralModel_JonSwap 
TritonSpectralModel_Pierson_Moskowitz 
TritonSpectralModel_Tessendorf 

Constructor & Destructor Documentation

virtual makVrv::DtTritonManager::~DtTritonManager ( )
virtual

destructor

makVrv::DtTritonManager::DtTritonManager ( makVrv::DtDe de)
protected

cannot create directly

Member Function Documentation

static DtTritonManager& makVrv::DtTritonManager::instance ( makVrv::DtDe de)
static

access the instance

virtual void makVrv::DtTritonManager::addToScene ( )
virtual
virtual void makVrv::DtTritonManager::oceanLayerAdded ( )
virtual
virtual void makVrv::DtTritonManager::oceanLayerToBeDeleted ( )
virtual
virtual void makVrv::DtTritonManager::setSeaLevel ( float  level)
virtual
virtual float makVrv::DtTritonManager::seaLevel ( ) const
virtual
virtual void makVrv::DtTritonManager::setElevationLod ( double  maxElevation)
virtual
virtual double makVrv::DtTritonManager::elevationLod ( ) const
virtual
virtual void makVrv::DtTritonManager::setWind ( double  speed,
double  direction,
double  fetch = 0.0 
)
virtual

Set the wind effects on ocean waves.

Parameters
[in]speedis in meters per second.
[in]directionis in radians clockwise from north.
[in]fetchis fetch distance in meters.
virtual void makVrv::DtTritonManager::setDouglasSeaState ( DtDouglasSeaState::Scale  seaState,
double  seaStateDirection,
DtDouglasSwellState::Scale  swellState,
double  swellStateDirection 
)
virtual

Set the Douglas sea and swell states.

Parameters
[in]seaStateis the sea-state generated by local winds (0 - 9).
[in]seaStateDirectionis the direction of the sea-state.
[in]swellStateis the swell-state generated afar (0 - 9).
[in]swellStateDirectionis the direction of the swells.
Note
All directions are in radians clockwise from north.
Calling this function clears out existing swells and waves created with setWind(double, double, double).
virtual void makVrv::DtTritonManager::addSwell ( float  wavelength,
float  waveHeight,
float  radiansClockwiseFromNorth 
)
virtual
virtual void makVrv::DtTritonManager::clearSwells ( )
virtual
virtual void makVrv::DtTritonManager::setChoppiness ( float  chop)
virtual

Set the choppiness of the waves.

Parameters
[in]chopis a normalized value from 0.0 to 1.0.
virtual bool makVrv::DtTritonManager::getIsUnderwater ( const osg::Camera *  osgCamera) const
virtual
virtual void makVrv::DtTritonManager::setUnderwaterVisibility ( double  distance)
virtual
virtual bool makVrv::DtTritonManager::setUnderwaterFogColor ( const DtVector fogColor)
virtual
virtual void makVrv::DtTritonManager::setUnderwaterFogEnabled ( bool  enabled)
virtual
virtual void makVrv::DtTritonManager::setWaterColor ( const DtVector waterColor)
virtual
virtual DtVector makVrv::DtTritonManager::waterColor ( ) const
virtual
virtual double makVrv::DtTritonManager::waterVisibility ( ) const
virtual
virtual void makVrv::DtTritonManager::setWaterVisibility ( double  distance)
virtual
virtual void makVrv::DtTritonManager::setSurfaceTransparency ( double  transparency)
virtual
virtual bool makVrv::DtTritonManager::setSurgeDepth ( float  depth)
virtual
virtual bool makVrv::DtTritonManager::getSurgeDepth ( float &  depth) const
virtual
virtual void makVrv::DtTritonManager::setDepthOffset ( float  offset)
virtual
virtual bool makVrv::DtTritonManager::intersect ( const DtVector position,
DtVector positionOut,
DtVector normalOut,
float  waterlineAdjustment = 0.0 
)
virtual

Get the intersection with a wave, assuming the position is directly above the sea (vertical)

virtual bool makVrv::DtTritonManager::intersectSeaLevel ( const DtVector position,
const DtVector direction,
DtVector positionOut 
)
virtual

Get an intersection of a ray starting at position and pointing in direction with the sea level plane This can potentially query the externally provided height map that triton stores internally. If so, this must be called where the OpenGL context is current.

virtual bool makVrv::DtTritonManager::getHeight ( const DtVector position,
const DtVector direction,
double height,
DtVector normalOut 
)
virtual

Get the height of the wave field intersected by a ray starting at position pointing in direction This can potentially query the externally provided height map that triton stores internally. If so, this must be called where the OpenGL context is current.

virtual Triton::WakeGenerator* makVrv::DtTritonManager::createWake ( const Triton::WakeGeneratorParameters &  parameters)
virtual
virtual Triton::RotorWash* makVrv::DtTritonManager::createRotorWash ( double  rotorDiameter)
virtual
virtual Triton::Impact* makVrv::DtTritonManager::createImpact ( double  impactorDiameter,
double  mass,
double  sprayScale 
)
virtual
virtual Triton::TidalStreamWake* makVrv::DtTritonManager::createTidalStreamWake ( double  size,
double  draft,
double  maxWaveHeight,
double  offset 
)
virtual

Create a wake from a fixed object such as a buoy or bridge pile, with a given wave length, draft (distance below water the object extends,) and maximum wave amplitude. Call Update() on this object each frame to activate it for a given position, direction, and tidal stream velocity.

virtual void makVrv::DtTritonManager::setWaveSprayEffects ( bool  waveSprayEnabled)
virtual

Toggle spray effects from high wave crests.

virtual bool makVrv::DtTritonManager::waveSprayEffects ( ) const
virtual
virtual void makVrv::DtTritonManager::setDecalEffects ( bool  decalsEnabled)
virtual

Toggle use of decal textures on rotor wash for subsquently created rotor washes.

virtual bool makVrv::DtTritonManager::decalEffects ( ) const
virtual
virtual void makVrv::DtTritonManager::setGodRayEffects ( bool  godRaysEnabled)
virtual

Toggles underwater "god rays" or shafts of light.

virtual bool makVrv::DtTritonManager::godRayEffects ( ) const
virtual
virtual void makVrv::DtTritonManager::setBreakingWaveAmplitude ( float  meters)
virtual
virtual float makVrv::DtTritonManager::getBreakingWaveAmplitude ( ) const
virtual
virtual float makVrv::DtTritonManager::getMaximumWaveHeight ( )
virtual

Returns maximum wave height just based on the sea state.

virtual void makVrv::DtTritonManager::setHeightMapResolution ( float  metersPerTexel)
virtual

Get/set the meters represented by one height map texel.

virtual bool makVrv::DtTritonManager::getHeightMapResolution ( float &  metersPerTexel) const
virtual
virtual void makVrv::DtTritonManager::setSeaState ( DtBeaufortWindScale::Scale  beaufortScale)
virtual
virtual DtBeaufortWindScale::Scale makVrv::DtTritonManager::seaState ( ) const
virtual
virtual void makVrv::DtTritonManager::setBeach ( const DtVector origin,
const DtVector normal 
)
virtual
virtual void makVrv::DtTritonManager::setPlanarReflections ( bool  enable)
virtual
virtual bool makVrv::DtTritonManager::planarReflections ( ) const
virtual
virtual void makVrv::DtTritonManager::setHeightMap ( bool  enable)
virtual
virtual bool makVrv::DtTritonManager::heightMap ( ) const
virtual
virtual void makVrv::DtTritonManager::setCorrelateIntersectionsToVisuals ( bool  visualCorrelation)
virtual
virtual bool makVrv::DtTritonManager::correlateIntersectionsToVisuals ( ) const
virtual
virtual void makVrv::DtTritonManager::setIncludeWakesInIntersections ( bool  includeWakes)
virtual

whether to include wakes in intersection queries By default, true. Setting it to false can improve performance

virtual bool makVrv::DtTritonManager::includeWakesInIntersections ( ) const
virtual

whether to include wakes in intersection queries By default, true. Setting it to false can improve performance

virtual void makVrv::DtTritonManager::setOceanMaskTextureEnabled ( bool  enable)
virtual

Get/set a flag for disabling the ocean mask texture. This is used by the SOE since it doesn't need a mask and it is crashing on Centos8.

virtual bool makVrv::DtTritonManager::isOceanMaskTextureEnabled ( ) const
virtual
virtual void makVrv::DtTritonManager::setQuality ( unsigned int  quality)
virtual

Set quality of wave simulation - "good" yields best performance but least detail, "best" favors quality over performance. Default is good.

virtual TritonQuality makVrv::DtTritonManager::quality ( ) const
virtual

Set quality of wave simulation - "good" yields best performance but least detail, "best" favors quality over performance. Default is good.

virtual void makVrv::DtTritonManager::setSpectralModel ( unsigned int  spectralModel)
virtual

set the spectral model (Jonswap, Pierson-Moskowitz. Tessendorf)

virtual TritonSpectralModel makVrv::DtTritonManager::spectralModel ( ) const
virtual

set the spectral model (Jonswap, Pierson-Moskowitz. Tessendorf)

virtual bool makVrv::DtTritonManager::isOverWater ( const DtVector localPosition,
bool  isVisible = true 
)
virtual

Returns whether we are currently over water. This can't be implemented correctly until we have coastal boundaries. For now, we use a call to Triton::Ocean->GetIntersection() if isVisible is true; this only works if there is a valid height map in the area of the query, which means it will only work correctly if there is a camera (observer) in the query area; it really should only be used for things that are LOD'd out when not close to an observer; things like wakes on amphibious vehicles, tidal stream wakes, or rotor wash. We use the returned height of a terrain intersect call if isVisible is false; sea level or below is water, anything higher is not.

virtual bool makVrv::DtTritonManager::addedToScene ( )
virtual
virtual void makVrv::DtTritonManager::setIsVisible ( bool  visible,
unsigned int  frameNum 
)
virtual

Called by traversal. If any call for the given frame number is true, then.

virtual bool makVrv::DtTritonManager::getIsVisible ( )
virtual

Is the ocean currently rendered in at least one viewport?

virtual DtTime makVrv::DtTritonManager::oceanTime ( ) const
virtual

Get the time (in seconds) that triton is using for its simulation This may be simulation time or wall clock time.

virtual DtTritonDrawable* makVrv::DtTritonManager::tritonDrawable ( ) const
virtual
virtual double makVrv::DtTritonManager::getOceanZoomOverride ( ) const
virtual

zoom override

virtual void makVrv::DtTritonManager::setOceanZoomOverride ( double  zoomOverride)
virtual
virtual void makVrv::DtTritonManager::setFreezeEnabled ( bool  enable)
virtual

Set the freeze enable flag which stops time for triton.

virtual bool makVrv::DtTritonManager::freezeEnabled ( ) const
virtual

get the freeze enable flag which stops time for triton Currently only used by the auto test plugin

virtual void makVrv::DtTritonManager::setFreezeTime ( DtTime  freezeAtTime)
virtual

as above. freeze at a given time, if frozen.

virtual DtTime makVrv::DtTritonManager::freezeTime ( void  ) const
virtual

as above. return the time at which frozen, if set to frozen.

void makVrv::DtTritonManager::slot_postInitialize ( )
protected
void makVrv::DtTritonManager::slot_driverToBeDestroyed ( DtDriver driver)
protected
virtual void makVrv::DtTritonManager::installEventProcessor ( )
protectedvirtual
void makVrv::DtTritonManager::slot_postUpdate ( )
protected

Slot that is called once per tick in the post update phase. This is used to update camera culling parameters above water state.

virtual DtDynamicOceanObject* makVrv::DtTritonManager::dynamicOcean ( ) const
protectedvirtual

Helper function to get the dynamic ocean.

Member Data Documentation

boost::signalslib::signal<void()> makVrv::DtTritonManager::signal_oceanInitialized
boost::signalslib::signal<void()> makVrv::DtTritonManager::signal_addedToScene
boost::signalslib::signal<void()> makVrv::DtTritonManager::signal_removedFromScene
boost::signalslib::signal<void()> makVrv::DtTritonManager::signal_oceanToBeDestroyed
boost::signalslib::signal<void (DtPlanarReflection* reflection)> makVrv::DtTritonManager::signal_planarReflectionCreated

Signal emitted when a new planar reflection has been created.

boost::signalslib::signal<void(double)> makVrv::DtTritonManager::signal_shipSpeedChanged
DtDe& makVrv::DtTritonManager::myDe
protected
DtDynamicOceanObjectManager& makVrv::DtTritonManager::myDynamicOceanObjectManager
protected
DtSignalConnectionManager makVrv::DtTritonManager::mySignals
protected
DtTritonEventProcessor* makVrv::DtTritonManager::myEventProcessor
protected
osg::ref_ptr<DtTritonDrawable> makVrv::DtTritonManager::myTritonDrawable
protected
osg::ref_ptr<DtTritonGroup> makVrv::DtTritonManager::myTritonRoot
protected
TritonQuality makVrv::DtTritonManager::myTritonQuality
protected
TritonSpectralModel makVrv::DtTritonManager::mySpectralModel
protected
float makVrv::DtTritonManager::myElevationRange
protected
float makVrv::DtTritonManager::mySeaLevel
protected
double makVrv::DtTritonManager::myWaterVisibility
protected
bool makVrv::DtTritonManager::myVisualIntersections
protected
bool makVrv::DtTritonManager::myIncludeWakesInIntersections = true
protected
unsigned int makVrv::DtTritonManager::myLastFrameNum
protected
bool makVrv::DtTritonManager::myWaterVisible
protected
bool makVrv::DtTritonManager::myDecalEffects
protected
DtVector makVrv::DtTritonManager::myWaterColor
protected
double makVrv::DtTritonManager::myOceanZoomOverride
protected
bool makVrv::DtTritonManager::myOceanMaskTextureEnabled
protected
bool makVrv::DtTritonManager::myFreezeEnabled = false
protected

whether frozen. used by the auto tests

DtTime makVrv::DtTritonManager::myFreezeAtTime = 0
protected
const float makVrv::DtTritonManager::theMaxWindSpeedForWindFetch
staticprotected

The documentation for this class was generated from the following file:

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)