Compare commits

..

2 Commits

Author SHA1 Message Date
aae22f5af9 added more constexpr 2026-04-30 05:38:20 +03:00
fa4e2b1d94 update 2026-04-30 05:35:17 +03:00
4 changed files with 9 additions and 46 deletions

View File

@@ -130,7 +130,6 @@ namespace omath
return x * other.x + y * other.y;
}
#ifndef _MSC_VER
[[nodiscard]] constexpr Type length() const noexcept
{
return std::hypot(this->x, this->y);
@@ -141,18 +140,6 @@ namespace omath
const Type len = length();
return len > 0.f ? *this / len : *this;
}
#else
[[nodiscard]] Type length() const noexcept
{
return std::hypot(x, y);
}
[[nodiscard]] Vector2 normalized() const noexcept
{
const Type len = length();
return len > static_cast<Type>(0) ? *this / len : *this;
}
#endif
[[nodiscard]] constexpr Type length_sqr() const noexcept
{
return x * x + y * y;

View File

@@ -129,7 +129,6 @@ namespace omath
return Vector2<Type>::dot(other) + z * other.z;
}
#ifndef _MSC_VER
[[nodiscard]] constexpr Type length() const
{
return std::hypot(this->x, this->y, z);
@@ -149,29 +148,6 @@ namespace omath
return length_value != 0 ? *this / length_value : *this;
}
#else
[[nodiscard]] Type length() const noexcept
{
return std::hypot(this->x, this->y, z);
}
[[nodiscard]] Vector3 normalized() const noexcept
{
const Type len = this->length();
return len != static_cast<Type>(0) ? *this / len : *this;
}
[[nodiscard]] Type length_2d() const noexcept
{
return Vector2<Type>::length();
}
[[nodiscard]] Type distance_to(const Vector3& v_other) const noexcept
{
return (*this - v_other).length();
}
#endif
[[nodiscard]] constexpr Type length_sqr() const noexcept
{

View File

@@ -70,31 +70,31 @@ namespace omath
}
[[nodiscard]]
Type sin() const noexcept
constexpr Type sin() const noexcept
{
return std::sin(as_radians());
}
[[nodiscard]]
Type cos() const noexcept
constexpr Type cos() const noexcept
{
return std::cos(as_radians());
}
[[nodiscard]]
Type tan() const noexcept
constexpr Type tan() const noexcept
{
return std::tan(as_radians());
}
[[nodiscard]]
Type atan() const noexcept
constexpr Type atan() const noexcept
{
return std::atan(as_radians());
}
[[nodiscard]]
Type cot() const noexcept
constexpr Type cot() const noexcept
{
return cos() / sin();
}

View File

@@ -24,7 +24,7 @@ namespace omath::angles
template<class Type>
requires std::is_floating_point_v<Type>
[[nodiscard]] Type horizontal_fov_to_vertical(const Type& horizontal_fov, const Type& aspect) noexcept
[[nodiscard]] constexpr Type horizontal_fov_to_vertical(const Type& horizontal_fov, const Type& aspect) noexcept
{
const auto fov_rad = degrees_to_radians(horizontal_fov);
@@ -35,7 +35,7 @@ namespace omath::angles
template<class Type>
requires std::is_floating_point_v<Type>
[[nodiscard]] Type vertical_fov_to_horizontal(const Type& vertical_fov, const Type& aspect) noexcept
[[nodiscard]] constexpr Type vertical_fov_to_horizontal(const Type& vertical_fov, const Type& aspect) noexcept
{
const auto fov_as_radians = degrees_to_radians(vertical_fov);
@@ -47,7 +47,7 @@ namespace omath::angles
template<class Type>
requires std::is_arithmetic_v<Type>
[[nodiscard]] Type wrap_angle(const Type& angle, const Type& min, const Type& max) noexcept
[[nodiscard]] constexpr Type wrap_angle(const Type& angle, const Type& min, const Type& max) noexcept
{
if (angle <= max && angle >= min)
return angle;