VR-Forces 4.7 Class Documentation
 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
makVrv::DtTritonManager Class Reference
Inheritance diagram for makVrv::DtTritonManager:
Inheritance graph
[legend]

Public Types

enum  TritonQuality { TritonQuality_Good, TritonQuality_Better, TritonQuality_Best }

Public Member Functions

virtual ~DtTritonManager ()
void addToScene ()
virtual void oceanLayerAdded ()
virtual void oceanLayerToBeDeleted ()
void setSeaLevel (float level)
float seaLevel () const
 Returns the current sea level.
void setElevationLod (double maxElevation)
double elevationLod () const
void setWind (double speed, double direction, double fetch=0.0)
 Set the wind effects on ocean waves.
void setDouglasSeaState (int seaState, double seaStateDirection, int swellState, double swellStateDirection)
 Set the Douglas sea and swell states.
void addSwell (float wavelength, float waveHeight, float radiansClockwiseFromNorth)
void clearSwells ()
void setChoppiness (float chop)
 Set the choppiness of the waves.
bool getIsUnderwater () const
 Water visibility when below water.
void setUnderwaterVisibility (double distance)
bool setUnderwaterFogColor (const DtVector &fogColor)
void setUnderwaterFogEnabled (bool enabled)
void setWaterColor (const DtVector &waterColor)
DtVector waterColor () const
double waterVisibility () const
void setWaterVisibility (double distance)
void setSurfaceTransparency (double transparency)
bool setSurgeDepth (float depth)
bool getSurgeDepth (float &depth) const
void setDepthOffset (float offset)
bool intersect (const DtVector &position, DtVector &positionOut, DtVector &normalOut, float waterlineAdjustment=0.0)
 Get the intersection with a wave, assuming the position is directly above the sea (vertical)
bool intersectSeaLevel (const DtVector &position, const DtVector &direction, DtVector &positionOut)
 Get an intersection of a ray starting at position and pointing in direction with the sea level plane.
bool getHeight (const DtVector &position, const DtVector &direction, double &height, DtVector &normalOut)
 Get the height of the wave field intersected by a ray starting at position pointing in direction.
Triton::WakeGenerator * createWake (const Triton::WakeGeneratorParameters &parameters)
Triton::RotorWash * createRotorWash (double rotorDiameter)
Triton::Impact * createImpact (double impactorDiameter, double mass, double sprayScale)
Triton::TidalStreamWake * createTidalStreamWake (double size, double draft, double maxWaveHeight, double offset)
 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.
void setSplashEffects (bool screenSplashEnabled)
 Toggle water splash on screen effects when submerging.
bool splashEffects () const
void setSprayEffects (bool screenSprayEnabled)
 Toggle water spray on screen effects when near the water.
bool sprayEffects () const
void setWaveSprayEffects (bool waveSprayEnabled)
 Toggle spray effects from high wave crests.
bool waveSprayEffects () const
void setDecalEffects (bool decalsEnabled)
 Toggle use of decal textures on rotor wash for subsquently created rotor washes.
bool decalEffects () const
void setGodRayEffects (bool godRaysEnabled)
 Toggles underwater "god rays" or shafts of light.
bool godRayEffects () const
void setBreakingWaveAmplitude (float meters)
float getBreakingWaveAmplitude () const
float getMaximumWaveHeight ()
 Returns maximum wave height just based on the sea state.
void setHeightMapResolution (float metersPerTexel)
 Get/set the meters represented by one height map texel.
bool getHeightMapResolution (float &metersPerTexel) const
void setSeaState (unsigned int beaufortScale)
unsigned int seaState () const
void setBeach (const DtVector &origin, const DtVector &normal)
void setPlanarReflections (bool enable)
bool planarReflections () const
void setHeightMap (bool enable)
bool heightMap () const
void setWaveDampingDistance (float distance)
float waveDampingDistance () const
void setCorrelateIntersectionsToVisuals (bool visualCorrelation)
bool correlateIntersectionsToVisuals () const
virtual void setQuality (unsigned int quality)
 Set quality of wave simulation - "good" yields best performance but least detail, "best" favors quality over performance.
virtual TritonQuality getQuality () const
virtual bool isOverWater (const DtVector &localPosition, bool isVisible=true)
 Returns whether we are currently over water.
bool addedToScene ()
void setIsVisible (bool visible, unsigned int frameNum)
bool getIsVisible ()
DtTime oceanTime () const
DtTritonDrawabletritonDrawable () const
virtual double getOceanZoomOverride () const
virtual void setOceanZoomOverride (double zoomOverride)
- Public Member Functions inherited from makVrv::DtOceanStateInterface
 DtOceanStateInterface (DtDe &de)
 CTOR.
virtual ~DtOceanStateInterface ()
 Virtual DTOR.
- Public Member Functions inherited from makVrv::DtVirtualBaseClass
 DtVirtualBaseClass ()
 Do nothing constructor.
virtual ~DtVirtualBaseClass ()
 Virtual do nothing destructor.

Static Public Member Functions

static DtTritonManagerinstance (makVrv::DtDe &de)

Public Attributes

boost::signal< void()> signal_oceanInitialized
boost::signal< void()> signal_addedToScene
boost::signal< void()> signal_removedFromScene
boost::signal< void(double)> signal_shipSpeedChanged

Protected Member Functions

 DtTritonManager (makVrv::DtDe &de)
void slot_postInitialize ()
void slot_driverToBeDestroyed (DtDriver &driver)
DtDynamicOceanObjectdynamicOcean () const
 Helper function to get the dynamic ocean.

Protected Attributes

DtSignalConnectionManager mySignals
DtTritonEventProcessormyEventProcessor
osg::ref_ptr< DtTritonDrawablemyTritonDrawable
osg::ref_ptr< DtTritonGroupmyTritonRoot
float myElevationRange
float mySeaLevel
double myWaterVisibility
bool myVisualIntersections
float myWaveDampingDistance
unsigned int myLastFrameNum
bool myWaterVisible
bool myDecalEffects
DtVector myWaterColor
double myOceanZoomOverride
DtDynamicOceanObjectManagermyDynamicOceanObjectManager
DtTritonManager::TritonQuality myTritonQuality
- Protected Attributes inherited from makVrv::DtOceanStateInterface
DtDemyDe

Member Enumeration Documentation

Enumerator:
TritonQuality_Good 
TritonQuality_Better 
TritonQuality_Best 

Constructor & Destructor Documentation

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

Member Function Documentation

static DtTritonManager& makVrv::DtTritonManager::instance ( makVrv::DtDe de)
static
void makVrv::DtTritonManager::addToScene ( )
virtual void makVrv::DtTritonManager::oceanLayerAdded ( )
virtual
virtual void makVrv::DtTritonManager::oceanLayerToBeDeleted ( )
virtual
void makVrv::DtTritonManager::setSeaLevel ( float  level)
float makVrv::DtTritonManager::seaLevel ( ) const
virtual

Returns the current sea level.

Reimplemented from makVrv::DtOceanStateInterface.

void makVrv::DtTritonManager::setElevationLod ( double  maxElevation)
double makVrv::DtTritonManager::elevationLod ( ) const
void makVrv::DtTritonManager::setWind ( double  speed,
double  direction,
double  fetch = 0.0 
)

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.
void makVrv::DtTritonManager::setDouglasSeaState ( int  seaState,
double  seaStateDirection,
int  swellState,
double  swellStateDirection 
)

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).
void makVrv::DtTritonManager::addSwell ( float  wavelength,
float  waveHeight,
float  radiansClockwiseFromNorth 
)
void makVrv::DtTritonManager::clearSwells ( )
void makVrv::DtTritonManager::setChoppiness ( float  chop)

Set the choppiness of the waves.

Parameters
[in]chopis a normalized value from 0.0 to 1.0.
bool makVrv::DtTritonManager::getIsUnderwater ( ) const
virtual

Water visibility when below water.

Reimplemented from makVrv::DtOceanStateInterface.

void makVrv::DtTritonManager::setUnderwaterVisibility ( double  distance)
bool makVrv::DtTritonManager::setUnderwaterFogColor ( const DtVector fogColor)
void makVrv::DtTritonManager::setUnderwaterFogEnabled ( bool  enabled)
void makVrv::DtTritonManager::setWaterColor ( const DtVector waterColor)
DtVector makVrv::DtTritonManager::waterColor ( ) const
double makVrv::DtTritonManager::waterVisibility ( ) const
void makVrv::DtTritonManager::setWaterVisibility ( double  distance)
void makVrv::DtTritonManager::setSurfaceTransparency ( double  transparency)
bool makVrv::DtTritonManager::setSurgeDepth ( float  depth)
bool makVrv::DtTritonManager::getSurgeDepth ( float &  depth) const
void makVrv::DtTritonManager::setDepthOffset ( float  offset)
bool makVrv::DtTritonManager::intersect ( const DtVector position,
DtVector positionOut,
DtVector normalOut,
float  waterlineAdjustment = 0.0 
)

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

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

Get an intersection of a ray starting at position and pointing in direction with the sea level plane.

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

Get the height of the wave field intersected by a ray starting at position pointing in direction.

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

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.

void makVrv::DtTritonManager::setSplashEffects ( bool  screenSplashEnabled)

Toggle water splash on screen effects when submerging.

bool makVrv::DtTritonManager::splashEffects ( ) const
void makVrv::DtTritonManager::setSprayEffects ( bool  screenSprayEnabled)

Toggle water spray on screen effects when near the water.

bool makVrv::DtTritonManager::sprayEffects ( ) const
void makVrv::DtTritonManager::setWaveSprayEffects ( bool  waveSprayEnabled)

Toggle spray effects from high wave crests.

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

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

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

Toggles underwater "god rays" or shafts of light.

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

Returns maximum wave height just based on the sea state.

Reimplemented from makVrv::DtOceanStateInterface.

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

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

bool makVrv::DtTritonManager::getHeightMapResolution ( float &  metersPerTexel) const
void makVrv::DtTritonManager::setSeaState ( unsigned int  beaufortScale)
unsigned int makVrv::DtTritonManager::seaState ( ) const
void makVrv::DtTritonManager::setBeach ( const DtVector origin,
const DtVector normal 
)
void makVrv::DtTritonManager::setPlanarReflections ( bool  enable)
bool makVrv::DtTritonManager::planarReflections ( ) const
void makVrv::DtTritonManager::setHeightMap ( bool  enable)
bool makVrv::DtTritonManager::heightMap ( ) const
void makVrv::DtTritonManager::setWaveDampingDistance ( float  distance)
float makVrv::DtTritonManager::waveDampingDistance ( ) const
void makVrv::DtTritonManager::setCorrelateIntersectionsToVisuals ( bool  visualCorrelation)
bool makVrv::DtTritonManager::correlateIntersectionsToVisuals ( ) const
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::getQuality ( ) const
virtual
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.

Reimplemented from makVrv::DtOceanStateInterface.

bool makVrv::DtTritonManager::addedToScene ( )
void makVrv::DtTritonManager::setIsVisible ( bool  visible,
unsigned int  frameNum 
)
bool makVrv::DtTritonManager::getIsVisible ( )
DtTime makVrv::DtTritonManager::oceanTime ( ) const
DtTritonDrawable* makVrv::DtTritonManager::tritonDrawable ( ) const
virtual double makVrv::DtTritonManager::getOceanZoomOverride ( ) const
virtual
virtual void makVrv::DtTritonManager::setOceanZoomOverride ( double  zoomOverride)
virtual
void makVrv::DtTritonManager::slot_postInitialize ( )
protected
void makVrv::DtTritonManager::slot_driverToBeDestroyed ( DtDriver driver)
protected
DtDynamicOceanObject* makVrv::DtTritonManager::dynamicOcean ( ) const
protected

Helper function to get the dynamic ocean.

Member Data Documentation

boost::signal<void ()> makVrv::DtTritonManager::signal_oceanInitialized
boost::signal<void()> makVrv::DtTritonManager::signal_addedToScene
boost::signal<void()> makVrv::DtTritonManager::signal_removedFromScene
boost::signal<void (double)> makVrv::DtTritonManager::signal_shipSpeedChanged
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
float makVrv::DtTritonManager::myElevationRange
protected
float makVrv::DtTritonManager::mySeaLevel
protected
double makVrv::DtTritonManager::myWaterVisibility
protected
bool makVrv::DtTritonManager::myVisualIntersections
protected
float makVrv::DtTritonManager::myWaveDampingDistance
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
DtDynamicOceanObjectManager& makVrv::DtTritonManager::myDynamicOceanObjectManager
protected
DtTritonManager::TritonQuality makVrv::DtTritonManager::myTritonQuality
protected

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

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)