Nexus Engine  v0.0.1
Loading...
Searching...
No Matches
NE.Engine.Math.Mat Module Reference

Classes

class  Nexus::Mat< T, RowCount, ColCount, Layout >

Typedefs

using Nexus::RowMajor = std::layout_right
using Nexus::ColumnMajor = std::layout_left
template<Numeric T, Numeric U, usize RowCount, usize ColCount, typename Layout>
using Nexus::MatCommon = Mat<std::common_type_t<T, U>, RowCount, ColCount, Layout>
template<Numeric T, usize RowCount, usize ColCount>
using Nexus::MatRowMajor = Mat<T, RowCount, ColCount, RowMajor>
template<Numeric T, usize RowCount, usize ColCount>
using Nexus::MatColumnMajor = Mat<T, RowCount, ColCount, ColumnMajor>
template<Numeric T, usize N>
using Nexus::SquareMatrix = Mat<T, N, N>
template<Numeric T, usize N>
using Nexus::SquareMatrixRowMajor = Mat<T, N, N, RowMajor>
template<Numeric T, usize N>
using Nexus::SquareMatrixColumnMajor = Mat<T, N, N, ColumnMajor>
template<Numeric T>
using Nexus::Mat2 = Mat<T, 2, 2>
template<Numeric T>
using Nexus::Mat2ColumnMajor = Mat<T, 2, 2, ColumnMajor>
template<Numeric T>
using Nexus::Mat3 = Mat<T, 3, 3>
template<Numeric T>
using Nexus::Mat3ColumnMajor = Mat<T, 3, 3, ColumnMajor>
template<Numeric T>
using Nexus::Mat4 = Mat<T, 4, 4>
template<Numeric T>
using Nexus::Mat4ColumnMajor = Mat<T, 4, 4, ColumnMajor>
using Nexus::Mat2f = Mat2<float32>
using Nexus::Mat3f = Mat3<float32>
using Nexus::Mat4f = Mat4<float32>
using Nexus::Mat2fColumnMajor = Mat2ColumnMajor<float32>
using Nexus::Mat3fColumnMajor = Mat3ColumnMajor<float32>
using Nexus::Mat4fColumnMajor = Mat4ColumnMajor<float32>
using Nexus::Mat2d = Mat2<float64>
using Nexus::Mat3d = Mat3<float64>
using Nexus::Mat4d = Mat4<float64>
using Nexus::Mat2dColumnMajor = Mat2ColumnMajor<float64>
using Nexus::Mat3dColumnMajor = Mat3ColumnMajor<float64>
using Nexus::Mat4dColumnMajor = Mat4ColumnMajor<float64>
using Nexus::Mat2i = Mat2<int>
using Nexus::Mat3i = Mat3<int>
using Nexus::Mat4i = Mat4<int>
using Nexus::Mat2iColumnMajor = Mat2ColumnMajor<int>
using Nexus::Mat3iColumnMajor = Mat3ColumnMajor<int>
using Nexus::Mat4iColumnMajor = Mat4ColumnMajor<int>
using Nexus::Mat2u = Mat2<unsigned int>
using Nexus::Mat3u = Mat3<unsigned int>
using Nexus::Mat4u = Mat4<unsigned int>
using Nexus::Mat2uColumnMajor = Mat2ColumnMajor<unsigned int>
using Nexus::Mat3uColumnMajor = Mat3ColumnMajor<unsigned int>
using Nexus::Mat4uColumnMajor = Mat4ColumnMajor<unsigned int>

Functions

template<Numeric T, Numeric U, usize RowCount, usize ColCount, typename Layout>
constexpr auto Nexus::operator+ (const Mat< T, RowCount, ColCount, Layout > &a, const Mat< U, RowCount, ColCount, Layout > &b) -> MatCommon< T, U, RowCount, ColCount, Layout >
template<Numeric T, Numeric U, usize RowCount, usize ColCount, typename Layout>
constexpr auto Nexus::operator- (const Mat< T, RowCount, ColCount, Layout > &a, const Mat< U, RowCount, ColCount, Layout > &b) -> MatCommon< T, U, RowCount, ColCount, Layout >
template<Numeric T, Numeric U, usize RowCount, usize ColCount, typename Layout>
constexpr auto Nexus::operator* (const Mat< T, RowCount, ColCount, Layout > &mat, U scalar) -> MatCommon< T, U, RowCount, ColCount, Layout >
template<Numeric T, Numeric U, usize RowCount, usize ColCount, typename Layout>
constexpr auto Nexus::operator* (U scalar, const Mat< T, RowCount, ColCount, Layout > &mat) -> MatCommon< T, U, RowCount, ColCount, Layout >
template<Numeric T, Numeric U, usize RowCount, usize ColCount, typename Layout>
constexpr auto Nexus::operator/ (const Mat< T, RowCount, ColCount, Layout > &mat, U scalar) -> MatCommon< T, U, RowCount, ColCount, Layout >
template<Numeric T, Numeric U, usize A, usize B, usize C, typename Layout>
constexpr auto Nexus::operator* (const Mat< T, A, B, Layout > &lhs, const Mat< U, B, C, Layout > &rhs) -> MatCommon< T, U, A, C, Layout >
template<Numeric T, usize RowCount, usize ColCount, typename FromLayout, typename ToLayout>
constexpr Mat< T, RowCount, ColCount, ToLayout > Nexus::MatCastLayout (const Mat< T, RowCount, ColCount, FromLayout > &mat)

Files

file  Source/Engine/Core/Math/Public/Mat/Mat.cppm