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