Blender V5.0
math_matrix.cc File Reference
#include "BLI_math_matrix.hh"
#include "BLI_math_rotation.hh"
#include "BLI_simd.hh"
#include "BLI_task.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< double > blender::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)
template<typename T>
bool blender::math::is_similarity_transform (const MatBase< T, 3, 3 > &matrix, const T &epsilon=1e-6)
void blender::math::transform_normals (const float3x3 &transform, MutableSpan< float3 > normals)
void blender::math::transform_normals (Span< float3 > src, const float3x3 &transform, MutableSpan< float3 > dst)
static bool blender::math::skip_transform (const float4x4 &transform)
static void blender::math::transform_points_no_threading (const Span< float3 > src, const float4x4 &transform, MutableSpan< float3 > dst)
void blender::math::transform_points (Span< float3 > src, const float4x4 &transform, MutableSpan< float3 > dst, bool use_threading=true)
static void blender::math::transform_points_no_threading (const float4x4 &transform, MutableSpan< float3 > points)
void blender::math::transform_points (const float4x4 &transform, MutableSpan< float3 > points, bool use_threading=true)
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 float3x3 &mat)
template bool blender::math::is_negative (const float4x4 &mat)
template bool blender::math::is_negative (const double3x3 &mat)
template bool blender::math::is_negative (const double4x4 &mat)
Compare / Test
template<typename T>
bool blender::math::is_negative (const MatBase< T, 3, 3 > &mat)
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)