106 throw std::runtime_error{
"failed to decompose a matrix into scale, rotation, etc."};
130 return transform * point;
138 point /= transform.
scale;
constexpr reference x()
Returns (*this)[0]
Definition vector.h:157
constexpr reference z()
Returns (*this)[2]
Definition vector.h:167
constexpr reference y()
Returns (*this)[1]
Definition vector.h:162
size_t size_type
Definition vector.h:66
Definition custom_decoration_generator.h:5
EulerAngles extract_eulers_xyz(const Quaternion &)
Transform point_axis_towards(const Transform &transform, Vector3::size_type axis_index, const Vector3 &position)
Definition transform_functions.h:195
constexpr Matrix< T, 3, 3 > adjugate(const Matrix< T, 3, 3 > &m)
Definition matrix_functions.h:481
constexpr Matrix4x4 normal_matrix_4x4(const Transform &transform)
Definition transform_functions.h:81
constexpr Matrix< T, 4, 4 > matrix4x4_cast(const Qua< T > &q)
Definition quaternion_functions.h:149
EulerAngles extract_extrinsic_eulers_xyz(const Transform &transform)
Definition transform_functions.h:168
Matrix< T, 4, 4 > translate(const Matrix< T, 4, 4 > &m, const Vector< T, 3 > &v)
Definition matrix_functions.h:118
Transform decompose_to_transform(const Matrix4x4 &m)
Definition transform_functions.h:102
Vector< RadiansT< T >, 3 > to_euler_angles(const Qua< T > &x)
Definition quaternion_functions.h:260
Vector3 transform_point(const Matrix4x4 &mat, const Vector3 &point)
Definition math_helpers.h:140
Transform point_axis_along(const Transform &transform, Vector3::size_type axis_index, const Vector3 &new_direction)
Definition transform_functions.h:175
Vector3 transform_vector(const Matrix4x4 &mat, const Vector3 &vector)
Definition math_helpers.h:145
constexpr Matrix< T, 3, 3 > matrix3x3_cast(const Qua< T > &q)
Definition quaternion_functions.h:119
Matrix< T, 4, 4 > perspective(Angle< T, Units > vertical_field_of_view, T aspect, T z_near, T z_far)
Definition matrix_functions.h:44
bool try_decompose_to_transform(const Matrix4x4 &m, Transform &out)
Definition transform_functions.h:90
bool any_element_is_nan(const Transform &transform)
Definition transform_functions.h:221
Qua< T > rotation(const Vector< T, 3 > &origin, const Vector< T, 3 > &destination)
Definition quaternion_functions.h:187
Vector3 inverse_transform_vector(const Transform &transform, const Vector3 &vector)
Definition transform_functions.h:122
constexpr U to(T &&value)
Definition conversion.h:56
Matrix< T, 3, 3 > normal_matrix(const Matrix< T, 4, 4 > &m)
Definition matrix_functions.h:502
constexpr Qua< T > conjugate(const Qua< T > &q)
Definition quaternion_functions.h:28
Vector< T, N > normalize(const Vector< T, N > &v)
Definition geometric_functions.h:74
bool isnan(T num)
Definition common_functions.h:319
Qua< T > angle_axis(Angle< T, Units > angle, VectorLike &&axis)
Definition quaternion_functions.h:170
constexpr bool any_of(const Vector< bool, N > &v)
Definition functors.h:56
Matrix4x4 inverse_matrix4x4_cast(const Transform &transform)
Definition transform_functions.h:65
constexpr Matrix4x4 identity< Matrix4x4 >()
Definition matrix4x4.h:390
Matrix< T, 4, 4 > scale(const Matrix< T, 4, 4 > &m, const Vector< T, 3 > &v)
Definition matrix_functions.h:78
Transform rotate_axis(const Transform &transform, Vector3::size_type axis_index, Radians angle)
Definition transform_functions.h:205
constexpr Matrix< T, 3, 3 > transpose(const Matrix< T, 3, 3 > &m)
Definition matrix_functions.h:234
bool 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)
Definition matrix_functions.h:308
constexpr Vector3 inverse_transform_point(const Transform &transform, Vector3 point)
Definition transform_functions.h:134