opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
matrix_functions.h File Reference
#include <liboscar/maths/angle.h>
#include <liboscar/maths/common_functions.h>
#include <liboscar/maths/constants.h>
#include <liboscar/maths/matrix.h>
#include <liboscar/maths/qua.h>
#include <liboscar/maths/vector.h>
#include <liboscar/utilities/hash_helpers.h>
#include <concepts>
#include <cstddef>
#include <functional>
Include dependency graph for matrix_functions.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  std::hash< osc::Matrix< T, C, R > >
 

Namespaces

namespace  osc
 
namespace  osc::detail
 

Functions

template<std::floating_point T>
Matrix< T, 4, 4 > osc::look_at (const Vector< T, 3 > &eye, const Vector< T, 3 > &center, const Vector< T, 3 > &up)
 
template<std::floating_point T, AngularUnitTraits Units>
Matrix< T, 4, 4 > osc::perspective (Angle< T, Units > vertical_field_of_view, T aspect, T z_near, T z_far)
 
template<std::floating_point T>
Matrix< T, 4, 4 > osc::ortho (T left, T right, T bottom, T top, T z_near, T z_far)
 
template<typename T >
Matrix< T, 4, 4 > osc::scale (const Matrix< T, 4, 4 > &m, const Vector< T, 3 > &v)
 
template<std::floating_point T, AngularUnitTraits Units>
Matrix< T, 4, 4 > osc::rotate (const Matrix< T, 4, 4 > &m, Angle< T, Units > angle, Vector< T, 3 > axis)
 
template<typename T >
Matrix< T, 4, 4 > osc::translate (const Matrix< T, 4, 4 > &m, const Vector< T, 3 > &v)
 
template<std::floating_point T>
T osc::determinant_of (const Matrix< T, 3, 3 > &m)
 
template<std::floating_point T>
T osc::determinant_of (const Matrix< T, 4, 4 > &m)
 
template<std::floating_point T>
T osc::inverse (const Matrix< T, 3, 3 > &m)
 
template<std::floating_point T>
Matrix< T, 4, 4 > osc::inverse (const Matrix< T, 4, 4 > &m)
 
template<typename T >
constexpr Matrix< T, 3, 3 > osc::transpose (const Matrix< T, 3, 3 > &m)
 
template<typename T >
Matrix< T, 4, 4 > osc::transpose (const Matrix< T, 4, 4 > &m)
 
template<std::floating_point T>
Vector< RadiansT< T >, 3 > osc::extract_eulers_xyz (const Matrix< T, 4, 4 > &m)
 
template<typename T >
Vector< T, 3 > osc::detail::combine (const Vector< T, 3 > &a, const Vector< T, 3 > &b, T ascl, T bscl)
 Make a linear combination of two vectors and return the result.
 
template<typename T >
Vector< T, 3 > osc::detail::scale (const Vector< T, 3 > &v, T desiredLength)
 
template<typename T >
bool osc::decompose (const Matrix< T, 4, 4 > &model_matrix, Vector< T, 3 > &r_scale, Qua< T > &r_orientation, Vector< T, 3 > &r_translation, Vector< T, 3 > &r_skew, Vector< T, 4 > &r_perspective)
 
template<std::floating_point T>
constexpr Matrix< T, 3, 3 > osc::adjugate (const Matrix< T, 3, 3 > &m)
 
template<std::floating_point T>
Matrix< T, 3, 3 > osc::normal_matrix (const Matrix< T, 4, 4 > &m)
 
template<std::floating_point T>
Matrix< T, 4, 4 > osc::normal_matrix4x4 (const Matrix< T, 4, 4 > &m)
 
template<typename T , size_t C, size_t R>
constexpr const Tosc::value_ptr (const Matrix< T, C, R > &m)
 
template<typename T , size_t C, size_t R>
constexpr Tosc::value_ptr (Matrix< T, C, R > &m)