21 [[nodiscard]]
Result<void> setMainWind(
const glm::vec3& metersPerSecond);
23 [[nodiscard]]
Result<void> setCurlStrength(
float metersPerSecond);
25 [[nodiscard]]
Result<void> setCurlFrequency(
float frequency);
29 [[nodiscard]]
Result<void> setResponseRate(
float metersPerSecondPerSecond);
31 [[nodiscard]] glm::vec3
mainWind() const noexcept {
return currentMain_; }
32 [[nodiscard]]
float curlStrength() const noexcept {
return currentCurl_; }
33 [[nodiscard]]
float curlFrequency() const noexcept {
return curlFrequency_; }
34 [[nodiscard]]
float curlTimeScale() const noexcept {
return curlTimeScale_; }
46 [[nodiscard]] glm::vec3 sample(
const glm::vec3&
world,
float timeSeconds)
const noexcept;
49 glm::vec3 targetMain_{0.f};
50 glm::vec3 currentMain_{0.f};
51 float targetCurl_ = 0.f;
52 float currentCurl_ = 0.f;
53 float curlFrequency_ = 0.15f;
54 float curlTimeScale_ = 1.f;
55 float responseRate_ = 4.f;
#define EVENGINE_API_WORLD
std::array< float, 3 > scale
Move-only, checked operation results for the common layer.
Move-only operation result carrying either a value or Status.
World-space wind provider for MAC fog transport.
float curlTimeScale() const noexcept
float curlFrequency() const noexcept
glm::vec3 mainWind() const noexcept
float curlStrength() const noexcept