Plasma Engine  2.0
Loading...
Searching...
No Matches
WindWorldModule.h
1#pragma once
2
3#include <Core/World/WorldModule.h>
4#include <Foundation/SimdMath/SimdVec4f.h>
5
9struct PL_CORE_DLL plWindStrength
10{
11 using StorageType = plUInt8;
12
13 enum Enum
14 {
15 Calm,
16 LightBreple,
17 GentleBreple,
18 ModerateBreple,
19 StrongBreple,
20 Storm,
21 WeakShockwave,
22 MediumShockwave,
23 StrongShockwave,
24 ExtremeShockwave,
25
26 Default = LightBreple
27 };
28
33 static float GetInMetersPerSecond(plWindStrength::Enum strength);
34};
35
36PL_DECLARE_REFLECTABLE_TYPE(PL_CORE_DLL, plWindStrength);
37
38class PL_CORE_DLL plWindWorldModuleInterface : public plWorldModule
39{
40 PL_ADD_DYNAMIC_REFLECTION(plWindWorldModuleInterface, plWorldModule);
41
42protected:
44
45public:
46 virtual plVec3 GetWindAt(const plVec3& vPosition) const = 0;
47 virtual plSimdVec4f GetWindAtSimd(const plSimdVec4f& vPosition) const;
48
58 plVec3 ComputeWindFlutter(const plVec3& vWind, const plVec3& vObjectDir, float fFlutterSpeed, plUInt32 uiFlutterRandomOffset) const;
59};
A 4-component SIMD vector class.
Definition SimdVec4f.h:8
Definition WindWorldModule.h:39
A world encapsulates a scene graph of game objects and various component managers and their component...
Definition World.h:22
Definition WorldModule.h:10
Defines the strength / speed of wind. Inspired by the Beaufort Scale.
Definition WindWorldModule.h:10