improved code quality

This commit is contained in:
2024-11-24 20:37:15 +03:00
parent ea4e27b87b
commit a25aef049e
2 changed files with 26 additions and 15 deletions

View File

@@ -70,13 +70,13 @@ namespace omath
} }
[[nodiscard]] [[nodiscard]]
static consteval size_t RowCount() noexcept static constexpr size_t RowCount() noexcept
{ {
return Rows; return Rows;
} }
[[nodiscard]] [[nodiscard]]
static consteval size_t ColumnsCount() noexcept static constexpr size_t ColumnsCount() noexcept
{ {
return Columns; return Columns;
} }
@@ -133,9 +133,9 @@ namespace omath
// Operator overloading for multiplication with another Mat // Operator overloading for multiplication with another Mat
template<size_t OtherColumns> template<size_t OtherColumns>
constexpr Mat<Rows, OtherColumns> operator*(const Mat<Columns, OtherColumns> &other) const constexpr Mat<Rows, OtherColumns, Type, StoreType> operator*(const Mat<Columns, OtherColumns, Type, StoreType> &other) const
{ {
Mat<Rows, OtherColumns> result; Mat<Rows, OtherColumns, Type, StoreType> result;
for (size_t i = 0; i < Rows; ++i) for (size_t i = 0; i < Rows; ++i)
for (size_t j = 0; j < OtherColumns; ++j) for (size_t j = 0; j < OtherColumns; ++j)
@@ -157,7 +157,7 @@ namespace omath
} }
template<size_t OtherColumns> template<size_t OtherColumns>
constexpr Mat<Rows, OtherColumns> operator*=(const Mat<Columns, OtherColumns> &other) constexpr Mat<Rows, OtherColumns, Type, StoreType> operator*=(const Mat<Columns, OtherColumns, Type, StoreType> &other)
{ {
return *this = *this * other; return *this = *this * other;
} }
@@ -207,9 +207,9 @@ namespace omath
} }
[[nodiscard]] [[nodiscard]]
constexpr Mat<Columns, Rows> Transposed() const noexcept constexpr Mat<Columns, Rows, Type, StoreType> Transposed() const noexcept
{ {
Mat<Columns, Rows> transposed; Mat<Columns, Rows, Type, StoreType> transposed;
for (size_t i = 0; i < Rows; ++i) for (size_t i = 0; i < Rows; ++i)
for (size_t j = 0; j < Columns; ++j) for (size_t j = 0; j < Columns; ++j)
transposed.At(j, i) = At(i, j); transposed.At(j, i) = At(i, j);
@@ -240,9 +240,9 @@ namespace omath
} }
[[nodiscard]] [[nodiscard]]
constexpr Mat<Rows - 1, Columns - 1> Minor(const size_t row, const size_t column) const constexpr Mat<Rows - 1, Columns - 1, Type, StoreType> Minor(const size_t row, const size_t column) const
{ {
Mat<Rows - 1, Columns - 1> result; Mat<Rows - 1, Columns - 1, Type, StoreType> result;
for (size_t i = 0, m = 0; i < Rows; ++i) for (size_t i = 0, m = 0; i < Rows; ++i)
{ {
if (i == row) if (i == row)
@@ -288,6 +288,18 @@ namespace omath
return oss.str(); return oss.str();
} }
[[nodiscard]]
bool operator==(const Mat & mat) const
{
return m_data == mat.m_data;
}
[[nodiscard]]
bool operator!=(const Mat & mat) const
{
return !operator==(mat);
}
// Static methods that return fixed-size matrices // Static methods that return fixed-size matrices
[[nodiscard]] [[nodiscard]]
constexpr static Mat<4, 4> ToScreenMat(const Type &screenWidth, const Type &screenHeight) noexcept constexpr static Mat<4, 4> ToScreenMat(const Type &screenWidth, const Type &screenHeight) noexcept
@@ -354,10 +366,10 @@ namespace omath
return return
{ {
{ {
{vector.x}, vector.x,
{vector.y}, vector.y,
{vector.z}, vector.z,
{1} 1
} }
}; };
} }

View File

@@ -1,7 +1,6 @@
// //
// Created by Orange on 11/13/2024. // Created by Orange on 11/13/2024.
// //
#pragma once
#include "omath/collision/LineTracer.hpp" #include "omath/collision/LineTracer.hpp"
namespace omath::collision namespace omath::collision