3#ifndef TRITON_ROTOR_WASH_H 
    4#define TRITON_ROTOR_WASH_H 
   12using namespace Triton;
 
   17#define SMOOTH_BUFFER_SIZE 10 
   47    RotorWash(
Ocean *pOcean, 
double pRotorDiameter, 
bool pSprayEffects = 
false, 
bool pUseDecals = 
false);
 
   60    void TRITONAPI 
Update(
const Vector3& pPosition, 
const Vector3& pDirection, 
double pVelocity, 
double pTime);
 
   78    void OceanDestroyed() {
 
   83    void OceanQualityChanged();
 
   86    void setUseDecals(
bool useDecals);
 
   87    bool GetUseDecals(
void) 
const;
 
   89    void UpdateDecals(
double time, 
const Vector3& position, 
double distanceDampening);
 
   91    Vector3 position, lastEmitPosition, lastLastEmitPosition, lastEmitSourcePosition;
 
   92    double velocity, rotorDiameter;
 
   94    double lastWaveEmitTime, lastSprayEmitTime;
 
   95    double waveGenerationPeriod, sprayGenerationPeriod;
 
  101    double decalIntensity;
 
  103    bool sprayEffects, firstEmit;
 
  104    int wakeNumber, lastWakeNumber;
 
  105    Decal *decals[NUM_DECALS];
 
  107    double decalStartTimes[NUM_DECALS];
 
  109    float decalMinScale, decalMaxScale;
 
  110    double phaseOffset, phaseRandomness;
 
  114    double lastTime, rotorDecalSpeedLimit;
 
  115        double velocitySmoothBuffer[SMOOTH_BUFFER_SIZE];
 
An object that generates rotor wash wave and spray effects.
Common typedefs and defines used within Triton.
A 3D Vector class and its operations.
This base class for all Triton objects intercepts the new and delete operators, routing them through ...
Definition: MemAlloc.h:71
The Ocean class allows you to configure and draw Triton's water simulation.
Definition: Ocean.h:81
A RotorWash object will generate spray and circular waves on the ocean surface in the direction it is...
Definition: RotorWash.h:37
Vector3 TRITONAPI GetPosition() const
Retrieves the world position of the RotorWash.
Definition: RotorWash.h:65
double TRITONAPI GetVelocity() const
Retrieves the airspeed velocity of the RotorWash.
Definition: RotorWash.h:73
RotorWash(Ocean *pOcean, double pRotorDiameter, bool pSprayEffects=false, bool pUseDecals=false)
Construct a RotorWash with the same Triton::Ocean it will be associated with.
void TRITONAPI Update(const Vector3 &pPosition, const Vector3 &pDirection, double pVelocity, double pTime)
For any active RotorWash, this should be called every frame to update its position and velocity.
A 3D double-precision Vector class and its operations.
Definition: Vector3.h:36