VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Member Functions | Private 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

 ~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 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)
 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 (TritonQuality 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)
 Returns whether we are currently over water.
bool addedToScene ()
void setIsVisible (bool visible, unsigned int frameNum)
bool getIsVisible ()
DtTime oceanTime () const
DtTritonDrawabletritonDrawable () const
- Public Member Functions inherited from makVrv::DtOceanStateInterface
 DtOceanStateInterface ()
 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_addedToScene
boost::signal< void()> signal_removedFromScene
boost::signal< void(double)> signal_shipSpeedChanged

Private Member Functions

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

Private Attributes

makVrv::DtDemyDe
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

Member Enumeration Documentation

Enumerator:
TritonQuality_Good 
TritonQuality_Better 
TritonQuality_Best 

Constructor & Destructor Documentation

makVrv::DtTritonManager::~DtTritonManager ( )
makVrv::DtTritonManager::DtTritonManager ( makVrv::DtDe de)
private

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::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 
)

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 ( TritonQuality  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)
virtual

Returns whether we are currently over water.

This can't be implemented correctly until we have coastal boundaries. For now, we use the returned height of an terrain intersect call - sea level 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
void makVrv::DtTritonManager::slot_postInitialize ( )
private
void makVrv::DtTritonManager::slot_driverToBeDestroyed ( DtDriver driver)
private
DtDynamicOceanObject* makVrv::DtTritonManager::dynamicOcean ( ) const
private

Helper function to get the dynamic ocean.

Member Data Documentation

boost::signal<void ()> makVrv::DtTritonManager::signal_addedToScene
boost::signal<void ()> makVrv::DtTritonManager::signal_removedFromScene
boost::signal<void (double)> makVrv::DtTritonManager::signal_shipSpeedChanged
makVrv::DtDe& makVrv::DtTritonManager::myDe
private
DtSignalConnectionManager makVrv::DtTritonManager::mySignals
private
DtTritonEventProcessor* makVrv::DtTritonManager::myEventProcessor
private
osg::ref_ptr<DtTritonDrawable> makVrv::DtTritonManager::myTritonDrawable
private
osg::ref_ptr<DtTritonGroup> makVrv::DtTritonManager::myTritonRoot
private
float makVrv::DtTritonManager::myElevationRange
private
float makVrv::DtTritonManager::mySeaLevel
private
double makVrv::DtTritonManager::myWaterVisibility
private
bool makVrv::DtTritonManager::myVisualIntersections
private
float makVrv::DtTritonManager::myWaveDampingDistance
private
unsigned int makVrv::DtTritonManager::myLastFrameNum
private
bool makVrv::DtTritonManager::myWaterVisible
private
bool makVrv::DtTritonManager::myDecalEffects
private
DtVector makVrv::DtTritonManager::myWaterColor
private

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

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)