/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/ThirdParty/Kraut/KrautGenerator/Description/Implementation/Influence.cpp
62 строки
1 KB
Jan Krassnigg
Replaced precompiled Kraut libs with sources (#678)
03 сен 2022, 22:17
Не верифицирован
03 сен 2022, 22:17
b339d34
Код
Авторство
О чём код?
#include <KrautGenerator/PCH.h> #include <KrautGenerator/Description/Influence.h> namespace Kraut { Influence::Influence() = default; Influence::~Influence() = default; const aeVec3 Influence_Position::ComputeInfluence(const aeVec3& vPosition) const { const aeVec3 vDirection = (m_vPosition - vPosition).GetNormalizedSafe(); return ComputeInfluenceStrength(vPosition) * vDirection; } float Influence_Position::ComputeInfluenceStrength(const aeVec3& vPosition) const { if (m_Falloff == Falloff::None) { return m_fStrength; } const float fDistance = (m_vPosition - vPosition).GetLength(); if (fDistance >= m_fMaxRadius) return 0.0f; if (m_Falloff == Falloff::Hard) { if (fDistance <= m_fMaxRadius) return m_fStrength; return 0.0f; } const float fLinearFactor = 1.0f - ((fDistance - m_fMinRadius) / (m_fMaxRadius - m_fMinRadius)); if (m_Falloff == Falloff::Linear) { if (fDistance <= m_fMinRadius) return m_fStrength; return m_fStrength * fLinearFactor; } if (m_Falloff == Falloff::Quadratic) { if (fDistance <= m_fMinRadius) return m_fStrength; return m_fStrength * aeMath::Square(fLinearFactor); } return 0.0f; } const aeVec3 Influence_Direction::ComputeInfluence(const aeVec3& vPosition) const { return ComputeInfluenceStrength(vPosition) * m_vDirection; } } // namespace Kraut