This commit is contained in:
Georg Hagen
2024-09-23 14:04:57 +02:00
committed by ohyzha
parent 103b305421
commit 01921cc3bc

View File

@@ -78,7 +78,7 @@ namespace OpenVulkano::Math
public: public:
constexpr explicit DenseVector3i(const Math::Vector3i& vec3) : DenseVector3i(vec3.x, vec3.y, vec3.z) {} constexpr explicit DenseVector3i(const Math::Vector3i& vec3) : DenseVector3i(vec3.x, vec3.y, vec3.z) {}
constexpr explicit DenseVector3i(const Math::Vector3i_SIMD& vec3) : DenseVector3i(vec3.x, vec3.y, vec3.z) {} constexpr explicit DenseVector3i(const Math::Vector3i_SIMD& vec3) : DenseVector3i(vec3.x, vec3.y, vec3.z) {}
constexpr DenseVector3i(int x, int y, int z) constexpr DenseVector3i(T x, T y, T z)
: data((x & BITMASK) | ((y & BITMASK) << (2 * BITS)) | ((z & BITMASK) << BITS)) : data((x & BITMASK) | ((y & BITMASK) << (2 * BITS)) | ((z & BITMASK) << BITS))
{ {
AssertValue(x); AssertValue(x);
@@ -88,9 +88,9 @@ namespace OpenVulkano::Math
constexpr T Data() const { return data; } constexpr T Data() const { return data; }
[[nodiscard]] constexpr int X() const { int v = data & BITMASK; if (v > MAX_VALUE) v |= ~BITMASK; return reinterpret_cast<int&>(v); } [[nodiscard]] constexpr int X() const { T v = data & BITMASK; if (v > MAX_VALUE) v |= ~BITMASK; return reinterpret_cast<int&>(v); }
[[nodiscard]] constexpr int Y() const { int v = (data >> (2 * BITS)) & BITMASK; if (v > MAX_VALUE_Y) v |= ~BITMASK; return reinterpret_cast<int&>(v); } [[nodiscard]] constexpr int Y() const { T v = (data >> (2 * BITS)) & BITMASK; if (v > MAX_VALUE_Y) v |= ~BITMASK; return reinterpret_cast<int&>(v); }
[[nodiscard]] constexpr int Z() const { int v = (data >> BITS) & BITMASK; if (v > MAX_VALUE) v |= ~BITMASK; return reinterpret_cast<int&>(v); } [[nodiscard]] constexpr int Z() const { T v = (data >> BITS) & BITMASK; if (v > MAX_VALUE) v |= ~BITMASK; return reinterpret_cast<int&>(v); }
void SetX(int x) void SetX(int x)
{ {
@@ -120,7 +120,7 @@ namespace OpenVulkano::Math
return fmt::format("{},{},{}", X(), Y(), Z()); return fmt::format("{},{},{}", X(), Y(), Z());
} }
[[nodiscard]] constexpr operator T() const { return data; } //[[nodiscard]] constexpr operator T() const { return data; }
[[nodiscard]] constexpr bool operator <(DenseVec3 rhs) const [[nodiscard]] constexpr bool operator <(DenseVec3 rhs) const
{ {