Not Enough Math
Lightweight zero-dependency C++ math library
Loading...
Searching...
No Matches
mat_utils.hpp File Reference
#include "mat.hpp"
#include "utils.hpp"
#include "trig.hpp"
#include "quat.hpp"
#include "quat_utils.hpp"

Go to the source code of this file.

Namespaces

namespace  nem
 

Functions

template<typename T , size_t C, size_t R, typename F >
constexpr nem::mat< T, C, R > nem::transform_items (nem::mat< T, C, R > m, F &&func)
 
template<typename T , size_t C, size_t R>
constexpr nem::mat< T, R, C > nem::transpose (const nem::mat< T, C, R > &m)
 
template<typename T , size_t N>
constexpr nem::mat< T, N, N > nem::identity ()
 
template<typename M >
constexpr nem::mat< typename M::ITEM_TYPE, M::COLUMNS, M::ROWS > nem::identity ()
 
template<typename T , size_t C1, size_t R1, size_t C2, size_t R2>
constexpr nem::mat< T, C2, R2 > nem::upscale (const nem::mat< T, C1, R1 > &m)
 
template<typename T , size_t N>
constexpr nem::mat< T, N+1, N+1 > nem::homogenous (const nem::mat< T, N, N > &m)
 
template<typename T >
constexpr T nem::determinant (const nem::mat< T, 2, 2 > &m)
 
template<std::floating_point T>
constexpr nem::mat< T, 2, 2 > nem::rotate (T radians)
 
template<std::floating_point T>
constexpr nem::mat< T, 3, 3 > nem::rotate_x (nem::sincos< T > a)
 
template<std::floating_point T>
constexpr nem::mat< T, 3, 3 > nem::rotate_y (nem::sincos< T > a)
 
template<std::floating_point T>
constexpr nem::mat< T, 3, 3 > nem::rotate_z (nem::sincos< T > a)
 
template<std::floating_point T>
constexpr nem::mat< T, 3, 3 > nem::rotate (T yaw_z, T pitch_y, T roll_x)
 
template<std::floating_point T>
constexpr nem::mat< T, 3, 3 > nem::translate_2D (const nem::vec< T, 2 > &value)
 
template<std::floating_point T>
constexpr nem::mat< T, 4, 4 > nem::translate_3D (const nem::vec< T, 3 > &value)
 
template<std::floating_point T, size_t N>
constexpr nem::mat< T, N, N > nem::scale (const nem::vec< T, N > &value)
 
template<std::floating_point T>
constexpr nem::mat< T, 4, 4 > nem::transform (const nem::vec< T, 3 > &translation, const nem::quat_t< T > &rotation, const nem::vec< T, 3 > scaler)