/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Engine/Foundation/SimdMath/Implementation/FPU/FPUFloat_inl.h
187 строк
4 KB
Jan Krassnigg
Removed all deprecated math functions (#1040)
12 сен 2023, 13:21
Не верифицирован
12 сен 2023, 13:21
ccb00c5
Код
Авторство
О чём код?
#pragma once EZ_ALWAYS_INLINE ezSimdFloat::ezSimdFloat() {} EZ_ALWAYS_INLINE ezSimdFloat::ezSimdFloat(float f) { m_v.Set(f); } EZ_ALWAYS_INLINE ezSimdFloat::ezSimdFloat(ezInt32 i) { m_v.Set((float)i); } EZ_ALWAYS_INLINE ezSimdFloat::ezSimdFloat(ezUInt32 i) { m_v.Set((float)i); } EZ_ALWAYS_INLINE ezSimdFloat::ezSimdFloat(ezAngle a) { m_v.Set(a.GetRadian()); } EZ_ALWAYS_INLINE ezSimdFloat::ezSimdFloat(ezInternal::QuadFloat v) { m_v = v; } EZ_ALWAYS_INLINE ezSimdFloat::operator float() const { return m_v.x; } // static EZ_ALWAYS_INLINE ezSimdFloat ezSimdFloat::MakeZero() { return ezSimdFloat(0.0f); } // static EZ_ALWAYS_INLINE ezSimdFloat ezSimdFloat::MakeNaN() { return ezSimdFloat(ezMath::NaN<float>()); } EZ_ALWAYS_INLINE ezSimdFloat ezSimdFloat::operator+(const ezSimdFloat& f) const { return m_v + f.m_v; } EZ_ALWAYS_INLINE ezSimdFloat ezSimdFloat::operator-(const ezSimdFloat& f) const { return m_v - f.m_v; } EZ_ALWAYS_INLINE ezSimdFloat ezSimdFloat::operator*(const ezSimdFloat& f) const { return m_v.CompMul(f.m_v); } EZ_ALWAYS_INLINE ezSimdFloat ezSimdFloat::operator/(const ezSimdFloat& f) const { return m_v.CompDiv(f.m_v); } EZ_ALWAYS_INLINE ezSimdFloat& ezSimdFloat::operator+=(const ezSimdFloat& f) { m_v += f.m_v; return *this; } EZ_ALWAYS_INLINE ezSimdFloat& ezSimdFloat::operator-=(const ezSimdFloat& f) { m_v -= f.m_v; return *this; } EZ_ALWAYS_INLINE ezSimdFloat& ezSimdFloat::operator*=(const ezSimdFloat& f) { m_v = m_v.CompMul(f.m_v); return *this; } EZ_ALWAYS_INLINE ezSimdFloat& ezSimdFloat::operator/=(const ezSimdFloat& f) { m_v = m_v.CompDiv(f.m_v); return *this; } EZ_ALWAYS_INLINE bool ezSimdFloat::IsEqual(const ezSimdFloat& rhs, const ezSimdFloat& fEpsilon) const { return m_v.IsEqual(rhs.m_v, fEpsilon); } EZ_ALWAYS_INLINE bool ezSimdFloat::operator==(const ezSimdFloat& f) const { return m_v.x == f.m_v.x; } EZ_ALWAYS_INLINE bool ezSimdFloat::operator!=(const ezSimdFloat& f) const { return m_v.x != f.m_v.x; } EZ_ALWAYS_INLINE bool ezSimdFloat::operator>=(const ezSimdFloat& f) const { return m_v.x >= f.m_v.x; } EZ_ALWAYS_INLINE bool ezSimdFloat::operator>(const ezSimdFloat& f) const { return m_v.x > f.m_v.x; } EZ_ALWAYS_INLINE bool ezSimdFloat::operator<=(const ezSimdFloat& f) const { return m_v.x <= f.m_v.x; } EZ_ALWAYS_INLINE bool ezSimdFloat::operator<(const ezSimdFloat& f) const { return m_v.x < f.m_v.x; } EZ_ALWAYS_INLINE bool ezSimdFloat::operator==(float f) const { return m_v.x == f; } EZ_ALWAYS_INLINE bool ezSimdFloat::operator!=(float f) const { return m_v.x != f; } EZ_ALWAYS_INLINE bool ezSimdFloat::operator>(float f) const { return m_v.x > f; } EZ_ALWAYS_INLINE bool ezSimdFloat::operator>=(float f) const { return m_v.x >= f; } EZ_ALWAYS_INLINE bool ezSimdFloat::operator<(float f) const { return m_v.x < f; } EZ_ALWAYS_INLINE bool ezSimdFloat::operator<=(float f) const { return m_v.x <= f; } template <ezMathAcc::Enum acc> EZ_ALWAYS_INLINE ezSimdFloat ezSimdFloat::GetReciprocal() const { return ezSimdFloat(1.0f / m_v.x); } template <ezMathAcc::Enum acc> EZ_ALWAYS_INLINE ezSimdFloat ezSimdFloat::GetSqrt() const { return ezSimdFloat(ezMath::Sqrt(m_v.x)); } template <ezMathAcc::Enum acc> EZ_ALWAYS_INLINE ezSimdFloat ezSimdFloat::GetInvSqrt() const { return ezSimdFloat(1.0f / ezMath::Sqrt(m_v.x)); } EZ_ALWAYS_INLINE ezSimdFloat ezSimdFloat::Max(const ezSimdFloat& f) const { return m_v.CompMax(f.m_v); } EZ_ALWAYS_INLINE ezSimdFloat ezSimdFloat::Min(const ezSimdFloat& f) const { return m_v.CompMin(f.m_v); } EZ_ALWAYS_INLINE ezSimdFloat ezSimdFloat::Abs() const { return ezSimdFloat(ezMath::Abs(m_v.x)); }