Blender V4.3
math_matrix.cc File Reference
#include "BLI_math_matrix.hh"
#include "BLI_math_rotation.hh"
#include "BLI_simd.hh"
#include <Eigen/Core>
#include <Eigen/Dense>
#include <Eigen/Eigenvalues>

Go to the source code of this file.

Namespaces

namespace  blender
 
namespace  blender::math
 
namespace  blender::math::detail
 
namespace  blender::math::projection
 

Functions

template<>
float4x4 blender::operator* (const float4x4 &a, const float4x4 &b)
 
template<>
float3x3 blender::operator* (const float3x3 &a, const float3x3 &b)
 
template float2x2 blender::operator* (const float2x2 &a, const float2x2 &b)
 
template double2x2 blender::operator* (const double2x2 &a, const double2x2 &b)
 
template double3x3 blender::operator* (const double3x3 &a, const double3x3 &b)
 
template double4x4 blender::operator* (const double4x4 &a, const double4x4 &b)
 
template void blender::math::detail::normalized_to_eul2 (const float3x3 &mat, Euler3Base< float > &eul1, Euler3Base< float > &eul2)
 
template void blender::math::detail::normalized_to_eul2 (const float3x3 &mat, EulerXYZBase< float > &eul1, EulerXYZBase< float > &eul2)
 
template void blender::math::detail::normalized_to_eul2 (const double3x3 &mat, EulerXYZBase< double > &eul1, EulerXYZBase< double > &eul2)
 
template QuaternionBase< floatblender::math::detail::normalized_to_quat_with_checks (const float3x3 &mat)
 
template QuaternionBase< doubleblender::math::detail::normalized_to_quat_with_checks (const double3x3 &mat)
 
template MatBase< float, 2, 2 > blender::math::detail::from_rotation (const AngleRadian &rotation)
 
template MatBase< float, 3, 3 > blender::math::detail::from_rotation (const EulerXYZ &rotation)
 
template MatBase< float, 3, 3 > blender::math::detail::from_rotation (const Euler3 &rotation)
 
template MatBase< float, 3, 3 > blender::math::detail::from_rotation (const Quaternion &rotation)
 
template MatBase< float, 3, 3 > blender::math::detail::from_rotation (const AxisAngle &rotation)
 
template MatBase< float, 3, 3 > blender::math::detail::from_rotation (const AxisAngleCartesian &rotation)
 
template float4x4 blender::math::projection::orthographic (float left, float right, float bottom, float top, float near_clip, float far_clip)
 
template float4x4 blender::math::projection::perspective (float left, float right, float bottom, float top, float near_clip, float far_clip)
 
template float4x4 blender::math::projection::perspective_infinite (float left, float right, float bottom, float top, float near_clip)
 
Matrix Operations
template<typename T , int Size>
T blender::math::determinant (const MatBase< T, Size, Size > &mat)
 
template<typename T , int Size>
MatBase< T, Size, Size > blender::math::adjoint (const MatBase< T, Size, Size > &mat)
 
template<typename T , int Size>
MatBase< T, Size, Size > blender::math::invert (const MatBase< T, Size, Size > &mat, bool &r_success)
 
template<typename T , int Size>
MatBase< T, Size, Size > blender::math::pseudo_invert (const MatBase< T, Size, Size > &mat, T epsilon=1e-8)
 
template<typename T >
MatBase< T, 3, 3 > blender::math::interpolate (const MatBase< T, 3, 3 > &a, const MatBase< T, 3, 3 > &b, T t)
 
template<typename T >
MatBase< T, 4, 4 > blender::math::interpolate (const MatBase< T, 4, 4 > &a, const MatBase< T, 4, 4 > &b, T t)
 
template<typename T >
MatBase< T, 3, 3 > blender::math::interpolate_fast (const MatBase< T, 3, 3 > &a, const MatBase< T, 3, 3 > &b, T t)
 
template<typename T >
MatBase< T, 4, 4 > blender::math::interpolate_fast (const MatBase< T, 4, 4 > &a, const MatBase< T, 4, 4 > &b, T t)
 
Determinant
template float blender::math::determinant (const float2x2 &mat)
 
template float blender::math::determinant (const float3x3 &mat)
 
template float blender::math::determinant (const float4x4 &mat)
 
template double blender::math::determinant (const double2x2 &mat)
 
template double blender::math::determinant (const double3x3 &mat)
 
template double blender::math::determinant (const double4x4 &mat)
 
template bool blender::math::is_negative (const float4x4 &mat)
 
template bool blender::math::is_negative (const double4x4 &mat)
 
Compare / Test
template<typename T >
bool blender::math::is_negative (const MatBase< T, 4, 4 > &mat)
 
Adjoint
template float2x2 blender::math::adjoint (const float2x2 &mat)
 
template float3x3 blender::math::adjoint (const float3x3 &mat)
 
template float4x4 blender::math::adjoint (const float4x4 &mat)
 
template double2x2 blender::math::adjoint (const double2x2 &mat)
 
template double3x3 blender::math::adjoint (const double3x3 &mat)
 
template double4x4 blender::math::adjoint (const double4x4 &mat)
 
Inverse
template float2x2 blender::math::invert (const float2x2 &mat, bool &r_success)
 
template float3x3 blender::math::invert (const float3x3 &mat, bool &r_success)
 
template float4x4 blender::math::invert (const float4x4 &mat, bool &r_success)
 
template double2x2 blender::math::invert (const double2x2 &mat, bool &r_success)
 
template double3x3 blender::math::invert (const double3x3 &mat, bool &r_success)
 
template double4x4 blender::math::invert (const double4x4 &mat, bool &r_success)
 
template float2x2 blender::math::pseudo_invert (const float2x2 &mat, float epsilon)
 
template float3x3 blender::math::pseudo_invert (const float3x3 &mat, float epsilon)
 
template float4x4 blender::math::pseudo_invert (const float4x4 &mat, float epsilon)
 
template double2x2 blender::math::pseudo_invert (const double2x2 &mat, double epsilon)
 
template double3x3 blender::math::pseudo_invert (const double3x3 &mat, double epsilon)
 
template double4x4 blender::math::pseudo_invert (const double4x4 &mat, double epsilon)
 
Polar Decomposition
template<typename T >
static void blender::math::polar_decompose (const MatBase< T, 3, 3 > &mat3, MatBase< T, 3, 3 > &r_U, MatBase< T, 3, 3 > &r_P)
 
Interpolate
template float3x3 blender::math::interpolate (const float3x3 &a, const float3x3 &b, float t)
 
template double3x3 blender::math::interpolate (const double3x3 &a, const double3x3 &b, double t)
 
template float4x4 blender::math::interpolate (const float4x4 &a, const float4x4 &b, float t)
 
template double4x4 blender::math::interpolate (const double4x4 &a, const double4x4 &b, double t)
 
template float3x3 blender::math::interpolate_fast (const float3x3 &a, const float3x3 &b, float t)
 
template double3x3 blender::math::interpolate_fast (const double3x3 &a, const double3x3 &b, double t)
 
template float4x4 blender::math::interpolate_fast (const float4x4 &a, const float4x4 &b, float t)
 
template double4x4 blender::math::interpolate_fast (const double4x4 &a, const double4x4 &b, double t)
 
Conversion function.
Quaternion blender::math::to_quaternion_legacy (const float3x3 &mat)
 
Implementation.
template float3 blender::math::transform_point (const float3x3 &mat, const float3 &point)
 
template float3 blender::math::transform_point (const float4x4 &mat, const float3 &point)
 
template float3 blender::math::transform_direction (const float3x3 &mat, const float3 &direction)
 
template float3 blender::math::transform_direction (const float4x4 &mat, const float3 &direction)
 
template float3 blender::math::project_point (const float4x4 &mat, const float3 &point)
 
template float2 blender::math::project_point (const float3x3 &mat, const float2 &point)