|
Blender
V2.93
|
Go to the source code of this file.
Classes | |
| struct | SpaceTransform |
Macros | |
| #define | mul_m3_series(...) VA_NARGS_CALL_OVERLOAD(_va_mul_m3_series_, __VA_ARGS__) |
| #define | mul_m4_series(...) VA_NARGS_CALL_OVERLOAD(_va_mul_m4_series_, __VA_ARGS__) |
| #define | PSEUDOINVERSE_EPSILON 1e-8f |
| #define | BLI_SPACE_TRANSFORM_SETUP(data, local, target) BLI_space_transform_from_matrices((data), (local)->obmat, (target)->obmat) |
| #define | print_m3_id(M) print_m3(STRINGIFY(M), M) |
| #define | print_m4_id(M) print_m4(STRINGIFY(M), M) |
Typedefs | |
| typedef struct SpaceTransform | SpaceTransform |
Functions | |
| void | zero_m2 (float m[2][2]) |
| void | zero_m3 (float m[3][3]) |
| void | zero_m4 (float m[4][4]) |
| void | unit_m2 (float m[2][2]) |
| void | unit_m3 (float m[3][3]) |
| void | unit_m4 (float m[4][4]) |
| void | unit_m4_db (double m[4][4]) |
| void | copy_m2_m2 (float m1[2][2], const float m2[2][2]) |
| void | copy_m3_m3 (float m1[3][3], const float m2[3][3]) |
| void | copy_m4_m4 (float m1[4][4], const float m2[4][4]) |
| void | copy_m3_m4 (float m1[3][3], const float m2[4][4]) |
| void | copy_m4_m3 (float m1[4][4], const float m2[3][3]) |
| void | copy_m3_m2 (float m1[3][3], const float m2[2][2]) |
| void | copy_m4_m2 (float m1[4][4], const float m2[2][2]) |
| void | copy_m4_m4_db (double m1[4][4], const double m2[4][4]) |
| void | copy_m3_m3d (float m1[3][3], const double m2[3][3]) |
| void | copy_m4d_m4 (double m1[4][4], const float m2[4][4]) |
| void | swap_m3m3 (float m1[3][3], float m2[3][3]) |
| void | swap_m4m4 (float m1[4][4], float m2[4][4]) |
| void | shuffle_m4 (float R[4][4], const int index[4]) |
| void | add_m3_m3m3 (float R[3][3], const float A[3][3], const float B[3][3]) |
| void | add_m4_m4m4 (float R[4][4], const float A[4][4], const float B[4][4]) |
| void | madd_m3_m3m3fl (float R[3][3], const float A[3][3], const float B[3][3], const float f) |
| void | madd_m4_m4m4fl (float R[4][4], const float A[4][4], const float B[4][4], const float f) |
| void | sub_m3_m3m3 (float R[3][3], const float A[3][3], const float B[3][3]) |
| void | sub_m4_m4m4 (float R[4][4], const float A[4][4], const float B[4][4]) |
| void | mul_m3_m3m3 (float R[3][3], const float A[3][3], const float B[3][3]) |
| void | mul_m4_m3m4 (float R[4][4], const float A[3][3], const float B[4][4]) |
| void | mul_m4_m4m3 (float R[4][4], const float A[4][4], const float B[3][3]) |
| void | mul_m4_m4m4 (float R[4][4], const float A[4][4], const float B[4][4]) |
| void | mul_m3_m3m4 (float R[3][3], const float A[3][3], const float B[4][4]) |
| void | mul_m3_m4m3 (float R[3][3], const float A[4][4], const float B[3][3]) |
| void | mul_m3_m4m4 (float R[3][3], const float A[4][4], const float B[4][4]) |
| void | mul_m3_m3m3_uniq (float R[3][3], const float A[3][3], const float B[3][3]) |
| void | mul_m3_m3_pre (float R[3][3], const float A[3][3]) |
| void | mul_m3_m3_post (float R[3][3], const float B[3][3]) |
| void | mul_m4_m4m4_uniq (float R[4][4], const float A[4][4], const float B[4][4]) |
| void | mul_m4_m4m4_db_uniq (double R[4][4], const double A[4][4], const double B[4][4]) |
| void | mul_m4db_m4db_m4fl_uniq (double R[4][4], const double A[4][4], const float B[4][4]) |
| void | mul_m4_m4_pre (float R[4][4], const float A[4][4]) |
| void | mul_m4_m4_post (float R[4][4], const float B[4][4]) |
| void | _va_mul_m3_series_3 (float R[3][3], const float M1[3][3], const float M2[3][3]) ATTR_NONNULL() |
| void | _va_mul_m3_series_4 (float R[3][3], const float M1[3][3], const float M2[3][3], const float M3[3][3]) ATTR_NONNULL() |
| void | _va_mul_m3_series_5 (float R[3][3], const float M1[3][3], const float M2[3][3], const float M3[3][3], const float M4[3][3]) ATTR_NONNULL() |
| void | _va_mul_m3_series_6 (float R[3][3], const float M1[3][3], const float M2[3][3], const float M3[3][3], const float M4[3][3], const float M5[3][3]) ATTR_NONNULL() |
| void | _va_mul_m3_series_7 (float R[3][3], const float M1[3][3], const float M2[3][3], const float M3[3][3], const float M4[3][3], const float M5[3][3], const float M6[3][3]) ATTR_NONNULL() |
| void | _va_mul_m3_series_8 (float R[3][3], const float M1[3][3], const float M2[3][3], const float M3[3][3], const float M4[3][3], const float M5[3][3], const float M6[3][3], const float M7[3][3]) ATTR_NONNULL() |
| void | _va_mul_m3_series_9 (float R[3][3], const float M1[3][3], const float M2[3][3], const float M3[3][3], const float M4[3][3], const float M5[3][3], const float M6[3][3], const float M7[3][3], const float M8[3][3]) ATTR_NONNULL() |
| void | _va_mul_m4_series_3 (float R[4][4], const float M1[4][4], const float M2[4][4]) ATTR_NONNULL() |
| void | _va_mul_m4_series_4 (float R[4][4], const float M1[4][4], const float M2[4][4], const float M3[4][4]) ATTR_NONNULL() |
| void | _va_mul_m4_series_5 (float R[4][4], const float M1[4][4], const float M2[4][4], const float M3[4][4], const float M4[4][4]) ATTR_NONNULL() |
| void | _va_mul_m4_series_6 (float R[4][4], const float M1[4][4], const float M2[4][4], const float M3[4][4], const float M4[4][4], const float M5[4][4]) ATTR_NONNULL() |
| void | _va_mul_m4_series_7 (float R[4][4], const float M1[4][4], const float M2[4][4], const float M3[4][4], const float M4[4][4], const float M5[4][4], const float M6[4][4]) ATTR_NONNULL() |
| void | _va_mul_m4_series_8 (float R[4][4], const float M1[4][4], const float M2[4][4], const float M3[4][4], const float M4[4][4], const float M5[4][4], const float M6[4][4], const float M7[4][4]) ATTR_NONNULL() |
| void | _va_mul_m4_series_9 (float R[4][4], const float M1[4][4], const float M2[4][4], const float M3[4][4], const float M4[4][4], const float M5[4][4], const float M6[4][4], const float M7[4][4], const float M8[4][4]) ATTR_NONNULL() |
| void | mul_m4_v3 (const float M[4][4], float r[3]) |
| void | mul_v3_m4v3 (float r[3], const float M[4][4], const float v[3]) |
| void | mul_v3_m4v3_db (double r[3], const double mat[4][4], const double vec[3]) |
| void | mul_v4_m4v3_db (double r[4], const double mat[4][4], const double vec[3]) |
| void | mul_v2_m4v3 (float r[2], const float M[4][4], const float v[3]) |
| void | mul_v2_m2v2 (float r[2], const float M[2][2], const float v[2]) |
| void | mul_m2_v2 (const float M[2][2], float v[2]) |
| void | mul_mat3_m4_v3 (const float M[4][4], float r[3]) |
| void | mul_v3_mat3_m4v3 (float r[3], const float M[4][4], const float v[3]) |
| void | mul_v3_mat3_m4v3_db (double r[3], const double M[4][4], const double v[3]) |
| void | mul_m4_v4 (const float M[4][4], float r[4]) |
| void | mul_v4_m4v4 (float r[4], const float M[4][4], const float v[4]) |
| void | mul_v4_m4v3 (float r[4], const float M[4][4], const float v[3]) |
| void | mul_project_m4_v3 (const float M[4][4], float vec[3]) |
| void | mul_v3_project_m4_v3 (float r[3], const float mat[4][4], const float vec[3]) |
| void | mul_v2_project_m4_v3 (float r[2], const float M[4][4], const float vec[3]) |
| void | mul_m3_v2 (const float m[3][3], float r[2]) |
| void | mul_v2_m3v2 (float r[2], const float m[3][3], const float v[2]) |
| void | mul_m3_v3 (const float M[3][3], float r[3]) |
| void | mul_v3_m3v3 (float r[3], const float M[3][3], const float a[3]) |
| void | mul_v2_m3v3 (float r[2], const float M[3][3], const float a[3]) |
| void | mul_transposed_m3_v3 (const float M[3][3], float r[3]) |
| void | mul_transposed_mat3_m4_v3 (const float M[4][4], float r[3]) |
| void | mul_m3_v3_double (const float M[3][3], double r[3]) |
| void | mul_m4_m4m4_aligned_scale (float R[4][4], const float A[4][4], const float B[4][4]) |
| void | mul_m3_fl (float R[3][3], float f) |
| void | mul_m4_fl (float R[4][4], float f) |
| void | mul_mat3_m4_fl (float R[4][4], float f) |
| void | negate_m3 (float R[3][3]) |
| void | negate_mat3_m4 (float R[4][4]) |
| void | negate_m4 (float R[4][4]) |
| bool | invert_m3_ex (float m[3][3], const float epsilon) |
| bool | invert_m3_m3_ex (float m1[3][3], const float m2[3][3], const float epsilon) |
| bool | invert_m3 (float R[3][3]) |
| bool | invert_m3_m3 (float R[3][3], const float A[3][3]) |
| bool | invert_m4 (float R[4][4]) |
| bool | invert_m4_m4 (float R[4][4], const float A[4][4]) |
| bool | invert_m4_m4_fallback (float R[4][4], const float A[4][4]) |
| void | mul_m4_v4d (const float M[4][4], double r[4]) |
| void | mul_v4d_m4v4d (double r[4], const float M[4][4], const double v[4]) |
| void | mul_v3_m3v3_db (double r[3], const double M[3][3], const double a[3]) |
| void | mul_m3_v3_db (const double M[3][3], double r[3]) |
| void | transpose_m3 (float R[3][3]) |
| void | transpose_m3_m3 (float R[3][3], const float M[3][3]) |
| void | transpose_m3_m4 (float R[3][3], const float M[4][4]) |
| void | transpose_m4 (float R[4][4]) |
| void | transpose_m4_m4 (float R[4][4], const float M[4][4]) |
| bool | compare_m4m4 (const float mat1[4][4], const float mat2[4][4], float limit) |
| void | normalize_m2_ex (float R[2][2], float r_scale[2]) ATTR_NONNULL() |
| void | normalize_m2 (float R[2][2]) ATTR_NONNULL() |
| void | normalize_m2_m2_ex (float R[2][2], const float M[2][2], float r_scale[2]) ATTR_NONNULL() |
| void | normalize_m2_m2 (float R[2][2], const float M[2][2]) ATTR_NONNULL() |
| void | normalize_m3_ex (float R[3][3], float r_scale[3]) ATTR_NONNULL() |
| void | normalize_m3 (float R[3][3]) ATTR_NONNULL() |
| void | normalize_m3_m3_ex (float R[3][3], const float M[3][3], float r_scale[3]) ATTR_NONNULL() |
| void | normalize_m3_m3 (float R[3][3], const float M[3][3]) ATTR_NONNULL() |
| void | normalize_m4_ex (float R[4][4], float r_scale[3]) ATTR_NONNULL() |
| void | normalize_m4 (float R[4][4]) ATTR_NONNULL() |
| void | normalize_m4_m4_ex (float R[4][4], const float M[4][4], float r_scale[3]) ATTR_NONNULL() |
| void | normalize_m4_m4 (float R[4][4], const float M[4][4]) ATTR_NONNULL() |
| void | orthogonalize_m3 (float R[3][3], int axis) |
| void | orthogonalize_m4 (float R[4][4], int axis) |
| void | orthogonalize_m3_stable (float R[3][3], int axis, bool normalize) |
| void | orthogonalize_m4_stable (float R[4][4], int axis, bool normalize) |
| bool | orthogonalize_m3_zero_axes (float R[3][3], const float unit_length) |
| bool | orthogonalize_m4_zero_axes (float R[4][4], const float unit_length) |
| bool | is_orthogonal_m3 (const float mat[3][3]) |
| bool | is_orthogonal_m4 (const float mat[4][4]) |
| bool | is_orthonormal_m3 (const float mat[3][3]) |
| bool | is_orthonormal_m4 (const float mat[4][4]) |
| bool | is_uniform_scaled_m3 (const float mat[3][3]) |
| bool | is_uniform_scaled_m4 (const float m[4][4]) |
| void | adjoint_m2_m2 (float R[2][2], const float M[2][2]) |
| void | adjoint_m3_m3 (float R[3][3], const float M[3][3]) |
| void | adjoint_m4_m4 (float R[4][4], const float M[4][4]) |
| float | determinant_m2 (float a, float b, float c, float d) |
| float | determinant_m3 (float a1, float a2, float a3, float b1, float b2, float b3, float c1, float c2, float c3) |
| float | determinant_m3_array (const float m[3][3]) |
| float | determinant_m4_mat3_array (const float m[4][4]) |
| float | determinant_m4 (const float m[4][4]) |
| void | svd_m4 (float U[4][4], float s[4], float V[4][4], float A[4][4]) |
| void | pseudoinverse_m4_m4 (float Ainv[4][4], const float A[4][4], float epsilon) |
| void | pseudoinverse_m3_m3 (float Ainv[3][3], const float A[3][3], float epsilon) |
| bool | has_zero_axis_m4 (const float matrix[4][4]) |
| void | invert_m4_m4_safe (float Ainv[4][4], const float A[4][4]) |
| void | invert_m3_m3_safe_ortho (float Ainv[3][3], const float A[3][3]) |
| void | invert_m4_m4_safe_ortho (float Ainv[4][4], const float A[4][4]) |
| void | scale_m3_fl (float R[3][3], float scale) |
| void | scale_m4_fl (float R[4][4], float scale) |
| float | mat3_to_volume_scale (const float M[3][3]) |
| float | mat4_to_volume_scale (const float M[4][4]) |
| float | mat3_to_scale (const float M[3][3]) |
| float | mat4_to_scale (const float M[4][4]) |
| float | mat4_to_xy_scale (const float M[4][4]) |
| void | size_to_mat3 (float R[3][3], const float size[3]) |
| void | size_to_mat4 (float R[4][4], const float size[3]) |
| void | mat3_to_size (float size[3], const float M[3][3]) |
| void | mat4_to_size (float size[3], const float M[4][4]) |
| void | mat4_to_size_fix_shear (float size[3], const float M[4][4]) |
| void | translate_m3 (float mat[3][3], float tx, float ty) |
| void | translate_m4 (float mat[4][4], float tx, float ty, float tz) |
| void | rotate_m3 (float mat[3][3], const float angle) |
| void | rotate_m4 (float mat[4][4], const char axis, const float angle) |
| void | rescale_m3 (float mat[3][3], const float scale[2]) |
| void | rescale_m4 (float mat[4][4], const float scale[3]) |
| void | transform_pivot_set_m3 (float mat[3][3], const float pivot[2]) |
| void | transform_pivot_set_m4 (float mat[4][4], const float pivot[3]) |
| void | mat4_to_rot (float rot[3][3], const float wmat[4][4]) |
| void | mat3_to_rot_size (float rot[3][3], float size[3], const float mat3[3][3]) |
| void | mat4_to_loc_rot_size (float loc[3], float rot[3][3], float size[3], const float wmat[4][4]) |
| void | mat4_to_loc_quat (float loc[3], float quat[4], const float wmat[4][4]) |
| void | mat4_decompose (float loc[3], float quat[4], float size[3], const float wmat[4][4]) |
| void | mat3_polar_decompose (const float mat3[3][3], float r_U[3][3], float r_P[3][3]) |
| void | loc_rot_size_to_mat3 (float R[3][3], const float loc[2], const float angle, const float size[2]) |
| void | loc_rot_size_to_mat4 (float R[4][4], const float loc[3], const float rot[3][3], const float size[3]) |
| void | loc_eul_size_to_mat4 (float R[4][4], const float loc[3], const float eul[3], const float size[3]) |
| void | loc_eulO_size_to_mat4 (float R[4][4], const float loc[3], const float eul[3], const float size[3], const short order) |
| void | loc_quat_size_to_mat4 (float R[4][4], const float loc[3], const float quat[4], const float size[3]) |
| void | loc_axisangle_size_to_mat4 (float R[4][4], const float loc[3], const float axis[4], const float angle, const float size[3]) |
| void | blend_m3_m3m3 (float out[3][3], const float dst[3][3], const float src[3][3], const float srcweight) |
| void | blend_m4_m4m4 (float out[4][4], const float dst[4][4], const float src[4][4], const float srcweight) |
| void | interp_m3_m3m3 (float R[3][3], const float A[3][3], const float B[3][3], const float t) |
| void | interp_m4_m4m4 (float R[4][4], const float A[4][4], const float B[4][4], const float t) |
| bool | is_negative_m3 (const float mat[3][3]) |
| bool | is_negative_m4 (const float mat[4][4]) |
| bool | is_zero_m3 (const float mat[3][3]) |
| bool | is_zero_m4 (const float mat[4][4]) |
| bool | equals_m3m3 (const float mat1[3][3], const float mat2[3][3]) |
| bool | equals_m4m4 (const float mat1[4][4], const float mat2[4][4]) |
| void | BLI_space_transform_from_matrices (struct SpaceTransform *data, const float local[4][4], const float target[4][4]) |
| void | BLI_space_transform_global_from_matrices (struct SpaceTransform *data, const float local[4][4], const float target[4][4]) |
| void | BLI_space_transform_apply (const struct SpaceTransform *data, float co[3]) |
| void | BLI_space_transform_invert (const struct SpaceTransform *data, float co[3]) |
| void | BLI_space_transform_apply_normal (const struct SpaceTransform *data, float no[3]) |
| void | BLI_space_transform_invert_normal (const struct SpaceTransform *data, float no[3]) |
| void | print_m3 (const char *str, const float M[3][3]) |
| void | print_m4 (const char *str, const float M[4][4]) |
| #define BLI_SPACE_TRANSFORM_SETUP | ( | data, | |
| local, | |||
| target | |||
| ) | BLI_space_transform_from_matrices((data), (local)->obmat, (target)->obmat) |
Definition at line 408 of file BLI_math_matrix.h.
| #define mul_m3_series | ( | ... | ) | VA_NARGS_CALL_OVERLOAD(_va_mul_m3_series_, __VA_ARGS__) |
Definition at line 184 of file BLI_math_matrix.h.
| #define mul_m4_series | ( | ... | ) | VA_NARGS_CALL_OVERLOAD(_va_mul_m4_series_, __VA_ARGS__) |
Definition at line 185 of file BLI_math_matrix.h.
Definition at line 416 of file BLI_math_matrix.h.
Definition at line 417 of file BLI_math_matrix.h.
| #define PSEUDOINVERSE_EPSILON 1e-8f |
Definition at line 295 of file BLI_math_matrix.h.
| typedef struct SpaceTransform SpaceTransform |
Definition at line 542 of file math_matrix.c.
References mul_m3_m3m3(), and r.
| void _va_mul_m3_series_4 | ( | float | R[3][3], |
| const float | M1[3][3], | ||
| const float | M2[3][3], | ||
| const float | M3[3][3] | ||
| ) |
Definition at line 546 of file math_matrix.c.
References mul_m3_m3m3(), and r.
| void _va_mul_m3_series_5 | ( | float | R[3][3], |
| const float | M1[3][3], | ||
| const float | M2[3][3], | ||
| const float | M3[3][3], | ||
| const float | M4[3][3] | ||
| ) |
Definition at line 554 of file math_matrix.c.
References mul_m3_m3m3(), and r.
| void _va_mul_m3_series_6 | ( | float | R[3][3], |
| const float | M1[3][3], | ||
| const float | M2[3][3], | ||
| const float | M3[3][3], | ||
| const float | M4[3][3], | ||
| const float | M5[3][3] | ||
| ) |
Definition at line 564 of file math_matrix.c.
References mul_m3_m3m3(), and r.
| void _va_mul_m3_series_7 | ( | float | R[3][3], |
| const float | M1[3][3], | ||
| const float | M2[3][3], | ||
| const float | M3[3][3], | ||
| const float | M4[3][3], | ||
| const float | M5[3][3], | ||
| const float | M6[3][3] | ||
| ) |
Definition at line 576 of file math_matrix.c.
References mul_m3_m3m3(), and r.
| void _va_mul_m3_series_8 | ( | float | R[3][3], |
| const float | M1[3][3], | ||
| const float | M2[3][3], | ||
| const float | M3[3][3], | ||
| const float | M4[3][3], | ||
| const float | M5[3][3], | ||
| const float | M6[3][3], | ||
| const float | M7[3][3] | ||
| ) |
Definition at line 590 of file math_matrix.c.
References mul_m3_m3m3(), and r.
| void _va_mul_m3_series_9 | ( | float | R[3][3], |
| const float | M1[3][3], | ||
| const float | M2[3][3], | ||
| const float | M3[3][3], | ||
| const float | M4[3][3], | ||
| const float | M5[3][3], | ||
| const float | M6[3][3], | ||
| const float | M7[3][3], | ||
| const float | M8[3][3] | ||
| ) |
Definition at line 606 of file math_matrix.c.
References mul_m3_m3m3(), and r.
Definition at line 630 of file math_matrix.c.
References mul_m4_m4m4(), and r.
| void _va_mul_m4_series_4 | ( | float | R[4][4], |
| const float | M1[4][4], | ||
| const float | M2[4][4], | ||
| const float | M3[4][4] | ||
| ) |
Definition at line 634 of file math_matrix.c.
References mul_m4_m4m4(), and r.
| void _va_mul_m4_series_5 | ( | float | R[4][4], |
| const float | M1[4][4], | ||
| const float | M2[4][4], | ||
| const float | M3[4][4], | ||
| const float | M4[4][4] | ||
| ) |
Definition at line 642 of file math_matrix.c.
References mul_m4_m4m4(), and r.
| void _va_mul_m4_series_6 | ( | float | R[4][4], |
| const float | M1[4][4], | ||
| const float | M2[4][4], | ||
| const float | M3[4][4], | ||
| const float | M4[4][4], | ||
| const float | M5[4][4] | ||
| ) |
Definition at line 652 of file math_matrix.c.
References mul_m4_m4m4(), and r.
| void _va_mul_m4_series_7 | ( | float | R[4][4], |
| const float | M1[4][4], | ||
| const float | M2[4][4], | ||
| const float | M3[4][4], | ||
| const float | M4[4][4], | ||
| const float | M5[4][4], | ||
| const float | M6[4][4] | ||
| ) |
Definition at line 664 of file math_matrix.c.
References mul_m4_m4m4(), and r.
| void _va_mul_m4_series_8 | ( | float | R[4][4], |
| const float | M1[4][4], | ||
| const float | M2[4][4], | ||
| const float | M3[4][4], | ||
| const float | M4[4][4], | ||
| const float | M5[4][4], | ||
| const float | M6[4][4], | ||
| const float | M7[4][4] | ||
| ) |
Definition at line 678 of file math_matrix.c.
References mul_m4_m4m4(), and r.
| void _va_mul_m4_series_9 | ( | float | R[4][4], |
| const float | M1[4][4], | ||
| const float | M2[4][4], | ||
| const float | M3[4][4], | ||
| const float | M4[4][4], | ||
| const float | M5[4][4], | ||
| const float | M6[4][4], | ||
| const float | M7[4][4], | ||
| const float | M8[4][4] | ||
| ) |
Definition at line 694 of file math_matrix.c.
References mul_m4_m4m4(), and r.
Definition at line 1036 of file math_matrix.c.
Referenced by apply_spring(), SIM_mass_spring_force_drag(), SIM_mass_spring_force_extern(), SIM_mass_spring_force_reference_frame(), SIM_mass_spring_force_spring_bending_hair(), SIM_mass_spring_force_spring_goal(), and vcloud_estimate_transform_v3().
Definition at line 1047 of file math_matrix.c.
Referenced by add_weighted_dq_dq().
Definition at line 1982 of file math_matrix.c.
References BLI_assert, M, and R.
Referenced by adjoint_matrix_n().
Definition at line 1991 of file math_matrix.c.
References BLI_assert, M, and R.
Referenced by adjoint_matrix_n(), invert_m3_m3(), and invert_m3_m3_ex().
Definition at line 2007 of file math_matrix.c.
References determinant_m3(), M, and R.
Referenced by adjoint_matrix_n().
| void blend_m3_m3m3 | ( | float | out[3][3], |
| const float | dst[3][3], | ||
| const float | src[3][3], | ||
| const float | srcweight | ||
| ) |
Definition at line 2439 of file math_matrix.c.
References interp_qt_qtqt(), interp_v3_v3v3(), mat3_normalized_to_quat(), mat3_to_rot_size(), mul_m3_m3m3(), quat_to_mat3(), and size_to_mat3().
Referenced by execute_posetree(), and Matrix_lerp().
| void blend_m4_m4m4 | ( | float | out[4][4], |
| const float | dst[4][4], | ||
| const float | src[4][4], | ||
| const float | srcweight | ||
| ) |
Definition at line 2465 of file math_matrix.c.
References interp_qt_qtqt(), interp_v3_v3v3(), loc_quat_size_to_mat4(), mat3_normalized_to_quat(), and mat4_to_loc_rot_size().
Referenced by BKE_tracking_camera_get_reconstructed_interpolate(), Matrix_lerp(), target_callback(), and warpModifier_do().
| void BLI_space_transform_apply | ( | const struct SpaceTransform * | data, |
| float | co[3] | ||
| ) |
Referenced by BKE_mesh_remap_calc_difference_from_mesh(), BKE_mesh_remap_calc_edges_from_mesh(), BKE_mesh_remap_calc_loops_from_mesh(), BKE_mesh_remap_calc_polys_from_mesh(), BKE_mesh_remap_calc_verts_from_mesh(), BKE_shrinkwrap_compute_smooth_normal(), BKE_shrinkwrap_project_normal(), shrinkwrap_calc_nearest_surface_point_cb_ex(), shrinkwrap_calc_nearest_vertex_cb_ex(), shrinkwrap_get_tarmat(), SimpleDeformModifier_do(), and vert2geom_task_cb_ex().
| void BLI_space_transform_apply_normal | ( | const struct SpaceTransform * | data, |
| float | no[3] | ||
| ) |
| void BLI_space_transform_from_matrices | ( | SpaceTransform * | data, |
| const float | local[4][4], | ||
| const float | target[4][4] | ||
| ) |
SpaceTransform struct encapsulates all needed data to convert between two coordinate spaces (where conversion can be represented by a matrix multiplication).
A SpaceTransform is initialized using:
After that the following calls can be used:
Same concept as BLI_space_transform_apply and BLI_space_transform_invert, but no is normalized after conversion (and not translated at all!):
This defines a matrix transforming a point in local space to a point in target space such that its global coordinates remain unchanged.
In other words, if we have a global point P with local coordinates (x, y, z) and global coordinates (X, Y, Z), this defines a transform matrix TM such that (x', y', z') = TM * (x, y, z) where (x', y', z') are the coordinates of P' in target space such that it keeps (X, Y, Z) coordinates in global space.
Definition at line 3342 of file math_matrix.c.
References data, invert_m4_m4(), and mul_m4_m4m4().
Referenced by shrinkwrap_get_tarmat().
| void BLI_space_transform_global_from_matrices | ( | SpaceTransform * | data, |
| const float | local[4][4], | ||
| const float | target[4][4] | ||
| ) |
Local-invariant transform.
This defines a matrix transforming a point in global space such that its local coordinates (from local space to target space) remain unchanged.
In other words, if we have a local point p with local coordinates (x, y, z) and global coordinates (X, Y, Z), this defines a transform matrix TM such that (X', Y', Z') = TM * (X, Y, Z) where (X', Y', Z') are the coordinates of p' in global space such that it keeps (x, y, z) coordinates in target space.
Definition at line 3364 of file math_matrix.c.
References data, invert_m4_m4(), and mul_m4_m4m4().
Referenced by BKE_mesh_remap_find_best_match_from_mesh().
| void BLI_space_transform_invert | ( | const struct SpaceTransform * | data, |
| float | co[3] | ||
| ) |
| void BLI_space_transform_invert_normal | ( | const struct SpaceTransform * | data, |
| float | no[3] | ||
| ) |
Definition at line 1406 of file math_matrix.c.
References compare_v4v4().
Referenced by EEVEE_temporal_sampling_init(), and select_cache_init().
Definition at line 84 of file math_matrix.c.
Referenced by matrix_invert_safe_internal().
Definition at line 145 of file math_matrix.c.
Definition at line 89 of file math_matrix.c.
Referenced by add_pose_transdata(), addMatrixSpace(), applyBoneSize(), applyResize(), applyShear(), applySkinResize(), applyTransformOrientation(), armature_vert_task_with_dvert(), base_surface_grids_write(), bezt_to_transdata(), BKE_crazyspace_build_sculpt(), BKE_object_rot_to_mat3(), build_emats_stack(), calc_initial_placement_point_from_view(), cancel_slide_point(), cloth_hair_update_bending_rest_targets(), cloth_hair_update_bending_targets(), colormanage_load_config(), connection_node_frames(), connection_node_mat(), copy_bone_transform(), createTransArmatureVerts(), createTransCurveVerts(), createTransEdge(), createTransGPencil_curves(), createTransLatticeVerts(), createTransMBallVerts(), createTransSculpt(), deformMatrices(), deformMatricesEM(), ED_transform_calc_gizmo_stats(), EEVEE_lookdev_cache_init(), ElementResize(), end_node_frames(), execute_posetree(), gizmo_axis_draw(), gizmo_mesh_extrude_refresh(), gizmo_mesh_spin_redo_setup(), invert_m3(), invert_m3_ex(), invert_m3_m3_safe_ortho(), MaskHandleToTransData(), MaskPointToTransData(), mat3_align_axis_to_v3(), mat3_from_axis_conversion(), mat3_to_quat_is_ok(), matrix_invert_safe_internal(), Matrix_rotate(), Matrix_to_euler(), mul_m3_m3_post(), mul_m3_m3_pre(), mul_m3_m3m4(), mul_m3_m4m3(), mul_m4_m3m4(), mul_m4_m4m3(), mul_v3m3_dq(), SB_estimate_transform(), set_prop_dist(), SIM_mass_spring_add_constraint_ndof1(), SIM_mass_spring_add_constraint_ndof2(), SIM_mass_spring_force_drag(), SIM_mass_spring_force_reference_frame(), SIM_mass_spring_force_spring_bending_hair(), SIM_mass_spring_set_rest_transform(), slide_point_customdata(), spring_hairbend_estimate_dfdv(), spring_hairbend_estimate_dfdx(), transform_convert_mesh_crazyspace_transdata_set(), transform_orientation_matrix_get(), transform_orientations_current_set(), vcloud_estimate_transform_v3(), VertsToTransData(), view3d_interactive_add_calc_plane(), view3d_interactive_add_modal(), and world_to_root_m3().
Definition at line 206 of file math_matrix.c.
References float().
Referenced by BKE_tracking_homography_between_two_quads(), and track_plane_from_existing_motion().
Definition at line 105 of file math_matrix.c.
Referenced by add_pose_transdata(), apply_targetless_ik(), applyarmature_set_edit_position(), armature_bone_primitive_add_exec(), armature_calc_roll_exec(), armature_click_extrude_exec(), armature_finalize_restpose(), armature_transform_recurse(), armature_vert_task_with_dvert(), BKE_armature_transform(), BKE_bone_parent_transform_calc_from_matrices(), BKE_mesh_transform(), BKE_pchan_bbone_handles_compute(), BKE_scene_cursor_from_mat4(), BMD_mesh_intersection(), BMO_slot_mat3_get(), camera_frame_fit_data_init(), contarget_get_mesh_mat(), convert_tree(), createObjectSpace(), createTransArmatureVerts(), createTransCurveVerts(), createTransEdge(), createTransEditVerts(), createTransGPencil_curves(), createTransGPencil_strokes(), createTransLatticeVerts(), createTransMBallVerts(), createTransMeshSkin(), createTransSculpt(), createTransTexspace(), createViewSpace(), deformStroke(), deformVerts_do(), do_version_bone_roll_256(), ED_armature_ebone_from_mat4(), ED_armature_edit_transform(), ed_editnurb_spin(), ED_gpencil_join_objects_exec(), ED_object_new_primitive_matrix(), ED_transform_calc_gizmo_stats(), ED_transform_calc_orientation_from_type_ex(), ED_view3d_from_m4(), ED_view3d_minmax_verts(), edbm_extrude_repeat_exec(), EDBM_unified_findnearest_from_raycast(), EEVEE_lookdev_cache_init(), execute_posetree(), face_dupli(), flyApply(), getTransformOrientation_ex(), gimbal_axis(), gizmo_axis_draw(), gizmo_mesh_extrude_draw_prepare(), gizmo_mesh_spin_init_draw_prepare(), gizmo_mesh_spin_init_refresh(), GPU_matrix_normal_get(), hair_create_input_mesh(), idp_poject_surface_normal(), init_curve_deform(), init_TransDataContainers(), initFlyInfo(), interp_m4_m4m4(), is_uniform_scaled_m4(), locktrack_evaluate(), mat4_normalized_to_compatible_eulO(), mat4_normalized_to_eul(), mat4_normalized_to_eulO(), mat4_normalized_to_quat(), mat4_to_compatible_eulO(), mat4_to_dquat(), mat4_to_eul(), mat4_to_eulO(), mat4_to_loc_quat(), mat4_to_loc_rot_size(), mat4_to_quat(), Matrix_to_euler(), meshdeformModifier_do(), modifyMesh(), move3d_get_translate(), mul_v3m3_dq(), nurb_bezt_direction_worldspace_get(), nurb_bpoint_direction_worldspace_get(), object_hook_recenter_exec(), object_origin_clear_exec(), object_origin_set_exec(), object_transform_axis_target_modal(), ObjectToTransData(), OVERLAY_gpencil_cache_init(), paintface_minmax(), pchan_deform_accumulate(), pivotcon_evaluate(), proj_paint_state_viewport_init(), pseudoinverse_m3_m3(), RotationBetween(), SCULPT_cursor_geometry_info_update(), sculpt_gesture_context_init_common(), sculpt_update_cache_invariants(), similar_edge_select_exec(), similar_face_select_exec(), snap_curs_to_sel_ex(), snap_sel_to_grid_exec(), snap_selected_to_location(), solve_parenting(), vfont_to_curve(), viewops_data_create(), visualkey_get_values(), voxel_size_edit_invoke(), vwpaint_update_cache_invariants(), walkApply(), WIDGETGROUP_gizmo_draw_prepare(), WIDGETGROUP_xform_cage_draw_prepare(), WIDGETGROUP_xform_cage_refresh(), WIDGETGROUP_xform_shear_draw_prepare(), and WIDGETGROUP_xform_shear_refresh().
Definition at line 160 of file math_matrix.c.
Definition at line 120 of file math_matrix.c.
Referenced by apply_objects_internal(), applyarmature_set_edit_position(), axis_angle_to_mat4(), axis_angle_to_mat4_single(), BCMatrix::BCMatrix(), BKE_armature_where_is_bone(), BKE_bone_offset_matrix_get(), BKE_bone_parent_transform_calc_from_matrices(), BKE_object_to_mat4(), BKE_pchan_to_mat4(), BKE_scene_cursor_to_mat4(), BMO_slot_mat_set(), camera_frame_fit_data_init(), blender::io::alembic::copy_m44_axis_swap(), cursor_plane_draw(), ED_armature_ebone_to_mat4(), ED_armature_join_objects_exec(), ED_object_new_primitive_matrix(), ED_transform_calc_gizmo_stats(), ED_view3d_win_to_3d_on_plane_with_fallback(), eulO_to_mat4(), gizmo_axis_draw(), gizmo_mesh_placement_modal_from_setup(), idp_poject_surface_normal(), interp_m4_m4m4(), loc_eul_size_to_mat4(), loc_eulO_size_to_mat4(), loc_quat_size_to_mat4(), loc_rot_size_to_mat4(), make_bbone_spline_matrix(), mesh_calc_eigen_matrix(), modifyMesh(), ob_parvert3(), object_apply_rotation(), pseudoinverse_m3_m3(), splineik_evaluate_bone(), where_is_ik_bone(), WIDGETGROUP_tool_generic_refresh(), and WIDGETGROUP_xform_cage_refresh().
Definition at line 95 of file math_matrix.c.
Referenced by actcon_get_tarmat(), AnimationImporter::add_bone_animation_sampled(), TransformWriter::add_joint_transform(), add_weighted_dq_dq(), annotation_paint_initstroke(), annotation_session_initdata(), AnimationImporter::apply_matrix_curves(), arrayModifier_doArray(), bake(), base_callback(), bc_add_global_transform(), bc_bone_matrix_local_get(), bc_create_restpose_mat(), BKE_bone_parent_transform_calc_from_matrices(), BKE_camera_multiview_window_matrix(), BKE_constraint_custom_object_space_get(), BKE_constraint_target_matrix_get(), BKE_constraints_clear_evalob(), BKE_constraints_make_evalob(), BKE_constraints_solve(), BKE_gpencil_instance_modifier_instance_tfm(), BKE_gpencil_layer_transform_matrix_get(), BKE_gpencil_update_layer_transforms(), BKE_lattice_deform_data_create(), BKE_lattice_resize(), BKE_mesh_remap_find_best_match_from_mesh(), BKE_object_eval_parent(), BKE_object_eval_proxy_copy(), BKE_object_get_parent_matrix(), BKE_object_make_proxy(), BKE_object_matrix_local_get(), BKE_object_sync_to_original(), BKE_object_tfm_backup(), BKE_object_tfm_restore(), BKE_pchan_bbone_spline_params_get(), BKE_pose_copy_pchan_result(), BKE_pose_eval_bone(), BKE_pose_where_is(), BKE_scene_base_iter_next(), BKE_tracking_camera_get_reconstructed_interpolate(), BKE_tracking_get_projection_matrix(), BLI_uvproject_camera_info(), BMO_slot_mat4_get(), BMO_slot_mat_set(), box_clip_bounds_m4(), brush_add(), bundle_midpoint(), AnimationImporter::calc_joint_parent_mat_rest(), camera_model_matrix(), camera_stereo3d_model_matrix(), camera_view3d_reconstruction(), camerasolver_evaluate(), childof_evaluate(), clampto_evaluate(), cloth_brush_apply_brush_foces(), constraint_target_to_mat4(), contarget_get_lattice_mat(), contarget_get_mesh_mat(), convert_pose(), convert_tree(), copy_bone_transform(), blender::io::alembic::create_transform_matrix(), createTransSculpt(), cursor_plane_draw(), damptrack_do_transform(), deformStroke(), deformVerts_do(), displaceModifier_do(), dist_squared_to_projected_aabb_precalc(), draw_axes(), draw_bone_degrees_of_freedom(), draw_bone_update_disp_matrix_custom(), draw_bone_update_disp_matrix_default(), draw_view_matrix_state_update(), drawDial3d(), drawPropCircle(), drawSnapping(), drw_call_matrix_init(), DRW_debug_m4_as_bbox(), DRW_debug_modelmat(), DRW_debug_sphere(), DRW_hair_duplimat_get(), DRW_view_persmat_get(), DRW_view_update(), DRW_view_viewmat_get(), DRW_view_winmat_get(), dvar_eval_locDiff(), dvar_eval_transChan(), dynamicPaint_brushMeshCalculateVelocity(), dynamicPaint_brushObjectCalculateVelocity(), dynamicPaint_generateBakeData(), dyntopo_detail_size_edit_invoke(), ED_gizmotypes_snap_3d_draw_util(), ED_gpencil_project_point_to_plane(), ED_gpencil_project_stroke_to_plane(), ED_gpencil_reset_layers_parent(), ED_mesh_deform_bind_callback(), ED_object_data_xform_container_item_ensure(), ED_object_xform_skip_child_container_item_ensure(), ED_view3d_camera_to_view_selected(), ED_view3d_cameracontrol_update(), ED_view3d_draw_offscreen_imbuf(), ED_view3d_draw_offscreen_imbuf_simple(), ED_view3d_mats_rv3d_backup(), ED_view3d_mats_rv3d_restore(), ED_view3d_update_viewmat(), eevee_draw_scene(), eevee_lightprobes_culling_test(), EEVEE_motion_blur_cache_populate(), EEVEE_motion_blur_hair_cache_populate(), EEVEE_motion_blur_swap_data(), EEVEE_render_draw(), AnimationImporter::evaluate_transform_at_frame(), execute_posetree(), followpath_evaluate(), followpath_get_tarmat(), followtrack_evaluate_using_2d_position(), followtrack_evaluate_using_3d_position_camera(), followtrack_evaluate_using_3d_position_object(), SkinInfo::get_joint_inv_bind_matrix(), TransformReader::get_node_mat(), gizmo_arrow_matrix_basis_get(), gizmo_cage2d_exit(), gizmo_cage2d_invoke(), gizmo_cage2d_modal(), gizmo_cage3d_exit(), gizmo_cage3d_invoke(), gizmo_cage3d_modal(), gizmo_move_matrix_basis_get(), GPENCIL_draw_object(), gpencil_light_pool_populate(), gpencil_paint_initstroke(), gpencil_vertexpaint_brush_apply_to_layers(), gpencil_weightpaint_brush_apply_to_layers(), GPU_matrix_model_view_get(), GPU_matrix_projection_get(), GPU_matrix_projection_set(), GPU_matrix_push(), GPU_matrix_push_projection(), GPU_matrix_set(), hit_depth_create(), i_multmatrix(), ignore_parent_tx(), init_context(), init_meta(), init_TransDataContainers(), invert_m4(), invert_m4_m4_safe(), invert_m4_m4_safe_ortho(), kinematic_get_tarmat(), lineart_create_render_buffer(), lineart_main_get_view_vector(), SkinInfo::link_armature(), make_dmats(), make_duplis_font(), make_duplis_particle_system(), make_object_duplilist_real(), mat4_to_dquat(), matrix_from_obj_pchan(), matrix_invert_safe_internal(), Matrix_resize_4x4(), mesh_render_data_create(), minmax_evaluate(), modifyMesh(), mul_m3_m3m4(), mul_m3_m4m3(), mul_m4_m3m4(), mul_m4_m4_post(), mul_m4_m4_pre(), mul_m4_m4m3(), ob_parbone(), ob_parcurve(), object_apply_location(), object_warp_verts_exec(), objectsolver_evaluate(), ObjectToTransData(), OVERLAY_gpencil_cache_init(), OVERLAY_image_empty_cache_populate(), OVERLAY_light_cache_populate(), OVERLAY_lightprobe_cache_populate(), pack_data_in_mat4(), pack_fl_in_mat4(), paint_cursor_drawing_setup_cursor_space(), pose_channel_flush_to_orig_if_needed(), proj_paint_state_viewport_init(), projmat_from_subregion(), raycast_obj_fn(), RE_GetCameraWindow(), RE_GetCameraWindowWithOverscan(), RE_SetCamera(), AnimationImporter::read_node_transform(), reconstruct_retrieve_libmv_tracks(), remap_hair_emitter(), rotlike_evaluate(), SCULPT_brush_test_init(), SCULPT_cloth_plane_falloff_preview_draw(), SCULPT_do_multiplane_scrape_brush(), SCULPT_filter_cache_init(), sculpt_gesture_update_effected_nodes_by_clip_planes(), select_cache_init(), BCMatrix::set_transform(), setTransformViewMatrices(), shrinkwrap_evaluate(), shrinkwrap_get_tarmat(), single_axis_convert(), SkinInfo::SkinInfo(), snap_obj_fn(), spin_exec(), svd_m4(), target_callback(), transform_snap_context_project_view3d_mixed_impl(), AnimationImporter::translate_animation_OLD(), translike_evaluate(), uv_from_view_exec(), uv_map_rotation_matrix_ex(), uvprojectModifier_do(), v3d_object_dimension_buts(), visualkey_get_values(), volume_grid_cache_get(), what_does_obaction(), where_is_ik_bone(), WIDGETGROUP_armature_spline_refresh(), WIDGETGROUP_empty_image_refresh(), WIDGETGROUP_light_area_refresh(), WIDGETGROUP_node_corner_pin_draw_prepare(), WIDGETGROUP_xform_cage_refresh(), wireframe_hair_cache_populate(), WM_gizmo_calc_matrix_final_params(), WM_xr_session_state_viewer_pose_matrix_info_get(), and workbench_antialiasing_engine_init().
Definition at line 100 of file math_matrix.c.
Referenced by lineart_main_load_geometries().
Definition at line 183 of file math_matrix.c.
Referenced by lineart_geometry_object_load(), and projmat_dimensions_db().
Definition at line 2053 of file math_matrix.c.
References Freestyle::a, and Freestyle::c.
Referenced by determinant_m3(), matrix_determinant_internal(), and matrix_invert_safe_internal().
| float determinant_m3 | ( | float | a1, |
| float | a2, | ||
| float | a3, | ||
| float | b1, | ||
| float | b2, | ||
| float | b3, | ||
| float | c1, | ||
| float | c2, | ||
| float | c3 | ||
| ) |
Definition at line 2059 of file math_matrix.c.
References determinant_m2().
Referenced by adjoint_m4_m4(), determinant_m4(), isect_plane_plane_plane_v3(), locktrack_evaluate(), and matrix_determinant_internal().
Definition at line 1102 of file math_matrix.c.
Referenced by interp_m3_m3m3(), invert_m3_m3(), invert_m3_m3_ex(), mat3_to_volume_scale(), matrix_invert_safe_internal(), TEST(), vcloud_estimate_transform_v3(), volume_tetrahedron_signed_v3(), and volume_tetrahedron_v3().
Definition at line 2070 of file math_matrix.c.
References determinant_m3().
Referenced by mat4_to_dquat(), matrix_determinant_internal(), and matrix_invert_safe_internal().
Definition at line 1109 of file math_matrix.c.
Referenced by mat4_to_volume_scale().
Definition at line 2606 of file math_matrix.c.
References equals_v3v3().
Referenced by EEVEE_lookdev_cache_init(), gizmo_mesh_spin_init_draw_prepare(), WIDGETGROUP_gizmo_draw_prepare(), WIDGETGROUP_xform_cage_draw_prepare(), and WIDGETGROUP_xform_shear_draw_prepare().
Definition at line 2612 of file math_matrix.c.
References equals_v4v4().
Referenced by BKE_gpencil_prepare_eval_data(), BKE_gpencil_update_layer_transforms(), cursor_plane_draw(), dynamicPaint_surfaceHasMoved(), ED_gpencil_reset_layers_parent(), EEVEE_motion_blur_cache_populate(), eevee_volume_object_grids_init(), object_apply_mat4_with_protect(), and workbench_antialiasing_engine_init().
| bool has_zero_axis_m4 | ( | const float | matrix[4][4] | ) |
Definition at line 3240 of file math_matrix.c.
References len_squared_v3().
Referenced by init_meta().
A polar-decomposition-based interpolation between matrix A and matrix B.
Based on "Matrix Animation and Polar Decomposition", by Ken Shoemake & Tom Duff
| R | Resulting interpolated matrix. |
| A | Input matrix which is totally effective with t = 0.0. |
| B | Input matrix which is totally effective with t = 1.0. |
| t | Interpolation factor. |
Definition at line 2508 of file math_matrix.c.
References A, B, determinant_m3_array(), interp_qt_qtqt(), interp_v3_v3v3(), mat3_polar_decompose(), mat3_to_quat(), mul_m3_fl(), mul_m3_m3m3(), P(), quat_to_mat3(), R, and t.
Referenced by interp_m4_m4m4(), Matrix_lerp(), and TEST().
Complete transform matrix interpolation, based on polar-decomposition-based interpolation from interp_m3_m3m3.
| R | Resulting interpolated matrix. |
| A | Input matrix which is totally effective with t = 0.0. |
| B | Input matrix which is totally effective with t = 1.0. |
| t | Interpolation factor. |
Definition at line 2562 of file math_matrix.c.
References A, B, Freestyle::B3(), copy_m3_m4(), copy_m4_m3(), copy_v3_v3(), interp_m3_m3m3(), interp_v3_v3v3(), R, and t.
Referenced by BKE_constraints_solve(), blender::io::alembic::blend_matrices(), constraint_target_to_mat4(), blender::float4x4::interpolate(), Matrix_lerp(), and TEST().
| bool invert_m3 | ( | float | R[3][3] | ) |
Definition at line 1152 of file math_matrix.c.
References copy_m3_m3(), and invert_m3_m3().
Referenced by armature_calc_roll_exec(), armature_transform_recurse(), BLI_newton3d_solve(), bm_vert_pair_to_matrix(), BMD_mesh_intersection(), createTransCurveVerts(), createTransSculpt(), ED_object_new_primitive_matrix(), ED_transform_calc_gizmo_stats(), edbm_extrude_repeat_exec(), EDBM_unified_findnearest_from_raycast(), gizmo_axis_draw(), GPU_matrix_normal_get(), GPU_matrix_normal_inverse_get(), move3d_get_translate(), multires_disp_run_cb(), multiresModifier_prepare_join(), sculpt_update_object(), sequencer_image_crop_transform_do_thread(), set_axis(), setup_vertex_point(), sh_node_vector_rotate_euler(), and transform_convert_mesh_islands_calc().
Definition at line 1116 of file math_matrix.c.
References copy_m3_m3(), blender::robust_pred::epsilon, and invert_m3_m3_ex().
Definition at line 1161 of file math_matrix.c.
References Freestyle::a, adjoint_m3_m3(), determinant_m3_array(), and LIKELY.
Referenced by add_pose_transdata(), apply_objects_internal(), apply_targetless_ik(), applyAlign(), applyObjectConstraintSize(), applyShear(), armature_bone_primitive_add_exec(), armature_click_extrude_exec(), armature_finalize_restpose(), BKE_mask_point_parent_matrix_get(), BKE_mesh_remap_calc_polys_from_mesh(), calc_bbox(), calc_deltas(), colormanage_load_config(), contarget_get_mesh_mat(), convert_tree(), createTransArmatureVerts(), ed_editnurb_spin(), ED_object_new_primitive_matrix(), ElementMirror(), evaluate_higher_grid_positions_with_details_callback(), execute_posetree(), flush_pixel(), getTransformOrientation_ex(), gizmo_mesh_spin_redo_setup(), imapaint_tri_weights(), init_TransDataContainers(), invert_m3(), invert_m3_m3_safe_ortho(), locktrack_evaluate(), MaskPointToTransData(), mat3_to_quat_is_ok(), mat3_vec_to_roll(), object_grid_element_to_tangent_displacement(), object_hook_recenter_exec(), object_origin_set_exec(), object_transform_axis_target_modal(), pseudoinverse_m3_m3(), RE_bake_normal_world_to_tangent(), similar_edge_select_exec(), snap_sel_to_grid_exec(), snap_selected_to_location(), transform_convert_mesh_crazyspace_transdata_set(), transform_data_ext_rotate(), tri_to_quat_ex(), vcloud_estimate_transform_v3(), and viewrotate_apply().
Definition at line 1125 of file math_matrix.c.
References Freestyle::a, adjoint_m3_m3(), BLI_assert, determinant_m3_array(), blender::robust_pred::epsilon, fabsf, and LIKELY.
Referenced by invert_m3_ex().
Definition at line 3298 of file math_matrix.c.
References A, copy_m3_m3(), invert_m3_m3(), orthogonalize_m3_zero_axes(), unit_m3(), and UNLIKELY.
Referenced by ED_gpencil_join_objects_exec(), ObjectToTransData(), and transform_orientations_current_set().
| bool invert_m4 | ( | float | R[4][4] | ) |
Definition at line 1187 of file math_matrix.c.
References copy_m4_m4(), and invert_m4_m4().
Referenced by AnimationImporter::add_bone_animation_sampled(), AnimationImporter::apply_matrix_curves(), applyarmature_process_selected_recursive(), bc_bone_matrix_local_get(), BKE_bone_parent_transform_invert(), BKE_camera_multiview_view_matrix(), BKE_object_matrix_local_get(), BKE_texture_mapping_init(), BKE_tracking_stabilize_frame(), BLI_uvproject_camera_info(), bundle_midpoint(), camera_frame_fit_data_init(), DRW_hair_duplimat_get(), ebone_spline_preview(), ED_object_data_xform_container_update_all(), ED_object_xform_skip_child_container_update_all(), EEVEE_lightprobes_cube_data_from_object(), EEVEE_shadows_cube_setup(), ArmatureImporter::get_joint_bind_mat(), BCMatrix::get_matrix(), gizmo_window_project_3d(), gpencil_depth_plane(), gpencil_light_pool_populate(), gpencil_object_cache_add(), GPU_matrix_bind(), make_duplis_particle_system(), object_solver_inverted_matrix(), pose_mirror_info_init(), SCULPT_do_multiplane_scrape_brush(), set_axis(), set_plane_exec(), shrinkwrap_get_tarmat(), AnimationImporter::translate_animation_OLD(), warpModifier_do(), and wireframe_hair_cache_populate().
Definition at line 1278 of file math_matrix.c.
References EIG_invert_m4_m4(), inverse(), and invert_m4_m4_fallback().
Referenced by action_flip_pchan(), AnimationImporter::add_bone_animation_sampled(), add_hook_object(), BCMatrix::add_inverted_transform(), TransformWriter::add_joint_transform(), add_primitive_cube_gizmo_exec(), BCMatrix::add_transform(), add_vertex_exec(), annotation_session_initdata(), AnimationImporter::apply_matrix_curves(), BCMatrix::apply_transform(), applyarmature_fix_boneparents(), applyarmature_process_selected_recursive(), armature_bone_primitive_add_exec(), armature_calc_roll_exec(), armature_deform_coords_impl(), armature_fill_bones_exec(), armature_finalize_restpose(), armature_transform_recurse(), armdef_accumulate_bone(), arrayModifier_doArray(), bake(), base_callback(), bc_bone_matrix_local_get(), bc_rotate_from_reference_quat(), BKE_armature_mat_pose_to_delta(), BKE_armature_mat_world_to_pose(), BKE_constraint_mat_convertspace(), BKE_constraints_clear_evalob(), BKE_gpencil_instance_modifier_instance_tfm(), BKE_gpencil_layer_addnew(), BKE_gpencil_stroke_from_view_space(), BKE_lattice_deform_data_create(), BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), BKE_object_apply_mat4_ex(), BKE_object_eval_proxy_copy(), BKE_object_modifier_gpencil_hook_reset(), BKE_object_modifier_hook_reset(), BKE_pchan_bbone_segments_cache_compute(), BKE_pchan_bbone_spline_compute(), BKE_pchan_bbone_spline_params_get(), BKE_pose_bone_done(), BKE_pose_eval_init(), BKE_pose_where_is(), BKE_tracking_get_projection_matrix(), BLI_space_transform_from_matrices(), BLI_space_transform_global_from_matrices(), blo_do_versions_290(), BM_mesh_calc_uvs_circle(), BM_mesh_calc_uvs_cone(), BMBVH_EdgeVisible(), BMD_mesh_intersection(), bmo_transform_exec(), brush_add(), brush_edit_apply(), brush_puff(), calc_brush_local_mat(), calc_local_clipping(), camera_view3d_reconstruction(), childof_evaluate(), clip_draw_main(), clipMirrorModifier(), cloth_brush_solve_collision(), cloth_to_object(), convert_pose(), convert_tree(), blender::io::alembic::create_transform_matrix(), createTransGPencil_strokes(), createTransParticleVerts(), cuboid_do(), curve_draw_event_add(), curve_draw_exec(), deflect_emitter_iter(), deformStroke(), deformVerts_do(), do_clay_strips_brush(), do_clay_thumb_brush(), do_clay_thumb_brush_task_cb_ex(), draw_view_matrix_state_update(), drawPropCircle(), drawVertSlide(), drw_call_matrix_init(), DRW_debug_m4_as_bbox(), DRW_view_update(), ED_armature_join_objects_exec(), ED_armature_origin_set(), ED_clip_point_stable_pos(), ED_gpencil_project_stroke_to_plane(), ED_gpencil_project_stroke_to_view(), ED_gpencil_reset_layers_parent(), ED_gpencil_stroke_reproject(), ED_object_data_xform_container_update_all(), ED_object_parent_set(), ED_object_xform_skip_child_container_item_ensure(), ED_object_xform_skip_child_container_update_all(), ED_transform_calc_gizmo_stats(), ED_view3d_camera_lock_sync(), ED_view3d_cameracontrol_update(), ED_view3d_clipping_calc(), ED_view3d_draw_offscreen_imbuf_simple(), ED_view3d_update_viewmat(), edbm_dupli_extrude_cursor_invoke(), edbm_extrude_edge_exclude_mirror(), edbm_polybuild_delete_at_cursor_invoke(), edbm_polybuild_face_at_cursor_invoke(), edbm_polybuild_split_at_cursor_invoke(), edbm_polybuild_transform_at_cursor_invoke(), EEVEE_lightprobes_grid_data_from_object(), EEVEE_lightprobes_planar_data_from_object(), EEVEE_render_view_sync(), eevee_volume_object_grids_init(), execute_posetree(), explodeMesh(), flushTransParticles(), followtrack_evaluate_using_3d_position_object(), followtrack_project_to_depth_object_if_needed(), foreach_mouse_hit_key_iter(), generate_vert_coordinates(), get_quick_mesh(), gizmo_cage2d_modal(), gizmo_move_modal(), gizmo_window_project_2d(), gizmo_window_project_3d(), gpencil_apply_parent(), gpencil_apply_parent_point(), gpencil_brush_grab_apply_cached(), gpencil_paint_initstroke(), gpencil_primitive_set_initdata(), GPENCIL_render_init(), gpencil_sculpt_brush_init(), GPU_matrix_unproject_precalc(), ignore_parent_tx(), init_curve_deform(), init_meta(), Freestyle::BlenderFileLoader::insertShapeNode(), invert_m4(), invert_m4_m4_safe(), invert_m4_m4_safe_ortho(), blender::float4x4::inverted(), knife_recalc_projmat(), lineart_geometry_object_load(), lineart_main_get_view_vector(), lineart_main_load_geometries(), SkinInfo::link_armature(), make_child_duplis_faces_from_editmesh(), make_child_duplis_faces_from_mesh(), make_child_duplis_verts_from_editmesh(), make_child_duplis_verts_from_mesh(), make_dmats(), make_duplis_particle_system(), mat4_to_dquat(), merge_target(), mesh_bisect_exec(), meshdeformModifier_do(), minmax_evaluate(), MOD_get_texture_coords(), MOD_lineart_gpencil_generate(), modifyMesh(), normalEditModifier_do_directional(), object_apply_mat4_with_protect(), object_join_exec(), object_origin_set_exec(), object_warp_transverts(), objectsolver_evaluate(), obmat_to_viewmat(), particle_system_minmax(), particle_system_update(), PE_mirror_particle(), pointdensity_cache_psys(), blender::io::gpencil::GpencilIO::prepare_camera_params(), proj_paint_state_viewport_init(), psys_apply_hair_lattice(), raycastEditMesh(), raycastMesh(), RE_bake_normal_world_to_object(), RE_bake_pixels_populate_from_objects(), reconstruct_retrieve_libmv_tracks(), remap_hair_emitter(), BCQuat::rotate_to(), save_hair(), SCULPT_clip(), SCULPT_cursor_geometry_info_update(), SCULPT_do_multiplane_scrape_brush(), SCULPT_do_paint_brush(), SCULPT_do_pose_brush(), SCULPT_filter_cache_init(), sculpt_init_mirror_clipping(), SCULPT_multiplane_scrape_preview_draw(), SCULPT_raycast_init(), sculpt_transform_matrices_init(), sculpt_update_brush_delta(), sculpt_update_cache_invariants(), set_axis(), similar_face_select_exec(), similar_vert_select_exec(), snap_mesh_edge_verts_mixed(), snap_mesh_polygon(), snap_sel_to_grid_exec(), snap_selected_to_location(), snap_to_pipe_profile(), snapCamera(), snapEditMesh(), snapMesh(), softbody_to_object(), sort_bmelem_flag(), sphere_do(), spin_exec(), stabilization_data_to_mat4(), surfacedeformBind(), surfacedeformModifier_do(), AnimationImporter::translate_animation_OLD(), update_mirror_object(), updateDuplicateActionConstraintSettings(), updateDuplicateLocRotConstraintSettings(), uv_map_transform_center(), uvprojectModifier_do(), v3d_editvertex_buts(), vertex_parent_set_exec(), vfont_to_curve(), view3d_viewmatrix_set(), volume_grid_cache_get(), voxel_size_edit_invoke(), vwpaint_update_cache_invariants(), warpModifier_do(), waveModifier_do(), workbench_render_matrices_init(), and workbench_shadow_update().
Computes the inverse of mat and puts it in inverse. Uses Gaussian Elimination with partial (maximal column) pivoting.
Definition at line 1206 of file math_matrix.c.
References BLI_assert, double(), EIG_invert_m4_m4(), fabsf, float(), inverse(), max, SWAP, and UNLIKELY.
Referenced by init_TransDataContainers(), and invert_m4_m4().
Definition at line 3246 of file math_matrix.c.
References A, copy_m4_m4(), invert_m4_m4(), and unit_m4().
Referenced by BKE_constraint_mat_convertspace(), BKE_object_eval_transform_final(), and gpencil_snap_to_grid().
A safe version of invert that uses valid axes, calculating the zero'd axis based on the non-zero ones.
This works well for transformation matrices, when a single axis is zerod.
Definition at line 3287 of file math_matrix.c.
References A, copy_m4_m4(), invert_m4_m4(), orthogonalize_m4_zero_axes(), unit_m4(), and UNLIKELY.
Referenced by ED_armature_join_objects_exec(), ED_curve_join_objects_exec(), ED_gpencil_join_objects_exec(), ED_mesh_join_objects_exec(), knife_recalc_projmat(), and knifetool_init().
| bool is_negative_m3 | ( | const float | mat[3][3] | ) |
Definition at line 2583 of file math_matrix.c.
References cross_v3_v3v3(), and dot_v3v3().
Referenced by axis_dominant_v3_to_m3(), axis_dominant_v3_to_m3_negate(), calc_initial_placement_point_from_view(), mat3_to_rot_size(), mat4_to_loc_quat(), mat4_to_rot(), and Matrix_is_negative_get().
| bool is_negative_m4 | ( | const float | mat[4][4] | ) |
Definition at line 2590 of file math_matrix.c.
References cross_v3_v3v3(), and dot_v3v3().
Referenced by bake(), BKE_object_eval_transform_final(), BMD_mesh_bm_create(), calc_local_clipping(), DRW_view_update(), DRW_view_update_sub(), ED_object_sculptmode_enter_ex(), ED_view3d_clipping_calc(), gizmo_placement_prop_matrix_set(), Matrix_is_negative_get(), object_where_is_calc_ex(), transform_evaluate(), and unwrap_exec().
| bool is_orthogonal_m3 | ( | const float | mat[3][3] | ) |
Definition at line 1786 of file math_matrix.c.
References dot_v3v3(), and fabsf.
Referenced by is_orthonormal_m3(), and Matrix_is_orthogonal_axis_vectors_get().
| bool is_orthogonal_m4 | ( | const float | mat[4][4] | ) |
Definition at line 1801 of file math_matrix.c.
References dot_v4v4(), and fabsf.
Referenced by is_orthonormal_m4(), and Matrix_is_orthogonal_axis_vectors_get().
| bool is_orthonormal_m3 | ( | const float | mat[3][3] | ) |
Definition at line 1816 of file math_matrix.c.
References dot_v3v3(), fabsf, and is_orthogonal_m3().
Referenced by mat4_to_dquat(), and Matrix_is_orthogonal_get().
| bool is_orthonormal_m4 | ( | const float | mat[4][4] | ) |
Definition at line 1833 of file math_matrix.c.
References dot_v4v4(), fabsf, and is_orthogonal_m4().
Referenced by Matrix_is_orthogonal_get().
| bool is_uniform_scaled_m3 | ( | const float | mat[3][3] | ) |
Definition at line 1850 of file math_matrix.c.
References eps, fabsf, len_squared_v3(), t, and transpose_m3_m3().
Referenced by is_uniform_scaled_m4(), and multires_apply_smat().
| bool is_uniform_scaled_m4 | ( | const float | m[4][4] | ) |
Definition at line 1874 of file math_matrix.c.
References copy_m3_m4(), is_uniform_scaled_m3(), and t.
| bool is_zero_m3 | ( | const float | mat[3][3] | ) |
Definition at line 2597 of file math_matrix.c.
References is_zero_v3().
| bool is_zero_m4 | ( | const float | mat[4][4] | ) |
Definition at line 2601 of file math_matrix.c.
References is_zero_v4().
Referenced by bmo_transform_exec(), EEVEE_motion_blur_cache_populate(), EEVEE_motion_blur_hair_cache_populate(), and SCULPT_do_paint_brush().
| void loc_axisangle_size_to_mat4 | ( | float | R[4][4], |
| const float | loc[3], | ||
| const float | axis[4], | ||
| const float | angle, | ||
| const float | size[3] | ||
| ) |
| void loc_eul_size_to_mat4 | ( | float | R[4][4], |
| const float | loc[3], | ||
| const float | eul[3], | ||
| const float | size[3] | ||
| ) |
Make a 4x4 matrix out of 3 transform components. Matrices are made in the order: scale * rot * loc
TODO: need to have a version that allows for rotation order...
Definition at line 2653 of file math_matrix.c.
References copy_m4_m3(), eul_to_mat3(), mul_m3_m3m3(), R, size(), size_to_mat3(), and unit_m4().
Referenced by BKE_gpencil_instance_modifier_instance_tfm(), BKE_gpencil_layer_addnew(), BKE_gpencil_prepare_eval_data(), BKE_gpencil_update_layer_transforms(), blo_do_versions_290(), deformStroke(), ED_gpencil_project_point_to_plane(), ED_gpencil_project_stroke_to_plane(), ED_gpencil_stroke_reproject(), blender::float4x4::from_loc_eul_scale(), gpencil_paint_initstroke(), gpencil_primitive_set_initdata(), gpencil_sculpt_compute_lock_axis(), greasepencil_copy_data(), and OVERLAY_gpencil_cache_init().
| void loc_eulO_size_to_mat4 | ( | float | R[4][4], |
| const float | loc[3], | ||
| const float | eul[3], | ||
| const float | size[3], | ||
| const short | rotOrder | ||
| ) |
Make a 4x4 matrix out of 3 transform components. Matrices are made in the order: scale * rot * loc
Definition at line 2681 of file math_matrix.c.
References copy_m4_m3(), eulO_to_mat3(), mul_m3_m3m3(), R, size(), size_to_mat3(), and unit_m4().
Referenced by bc_create_restpose_mat(), childof_evaluate(), and rotlimit_evaluate().
| void loc_quat_size_to_mat4 | ( | float | R[4][4], |
| const float | loc[3], | ||
| const float | quat[4], | ||
| const float | size[3] | ||
| ) |
Make a 4x4 matrix out of 3 transform components. Matrices are made in the order: scale * rot * loc
Definition at line 2710 of file math_matrix.c.
References copy_m4_m3(), mul_m3_m3m3(), quat_to_mat3(), R, size(), size_to_mat3(), and unit_m4().
Referenced by blend_m4_m4m4(), get_dupliface_transform_from_coords(), get_duplivert_transform(), loc_axisangle_size_to_mat4(), and make_child_duplis_pointcloud().
| void loc_rot_size_to_mat3 | ( | float | R[3][3], |
| const float | loc[2], | ||
| const float | angle, | ||
| const float | size[2] | ||
| ) |
Make a 3x3 matrix out of 3 transform components. Matrices are made in the order: loc * rot * scale
Definition at line 2622 of file math_matrix.c.
References angle(), R, rescale_m3(), rotate_m3(), size(), translate_m3(), and unit_m3().
Referenced by sequencer_image_crop_transform_do_thread().
| void loc_rot_size_to_mat4 | ( | float | R[4][4], |
| const float | loc[3], | ||
| const float | rot[3][3], | ||
| const float | size[3] | ||
| ) |
Make a 4x4 matrix out of 3 transform components. Matrices are made in the order: scale * rot * loc
Definition at line 2637 of file math_matrix.c.
References copy_m4_m3(), copy_v3_v3(), R, rescale_m4(), rot, and size().
Referenced by mul_m4_m4m4_aligned_scale(), rotlike_evaluate(), and transform_evaluate().
Definition at line 1058 of file math_matrix.c.
Referenced by pchan_deform_accumulate(), and splineik_evaluate_bone().
Definition at line 1069 of file math_matrix.c.
Referenced by armdef_accumulate_matrix().
Right polar decomposition: M = UP
U is the 'rotation'-like component, the closest orthogonal matrix to M. P is the 'scaling'-like component, defined in U space.
See https://en.wikipedia.org/wiki/Polar_decomposition for more.
Definition at line 2282 of file math_matrix.c.
References BLI_svd_m3(), mul_m3_m3m3(), mul_m3_series, size_to_mat3(), transpose_m3_m3(), and V.
Referenced by interp_m3_m3m3().
Definition at line 2214 of file math_matrix.c.
References is_negative_m3(), negate_m3(), negate_v3(), normalize_v3_v3(), rot, size(), and UNLIKELY.
Referenced by blend_m3_m3m3(), mat4_to_loc_rot_size(), Matrix_to_scale(), and TransMat3ToSize().
This gets the average scale of a matrix, only use when your scaling data that has no idea of scale axis, examples are bone-envelope-radius and curve radius.
Definition at line 2187 of file math_matrix.c.
References copy_v3_fl(), len_v3(), M_SQRT1_3, and mul_m3_v3().
Referenced by apply_objects_internal(), Matrix_median_scale_get(), and multires_apply_smat().
Definition at line 2138 of file math_matrix.c.
References len_v3(), M, and size().
Referenced by apply_targetless_ik(), applySkinResize(), ElementBoneSize(), ElementResize(), orthogonalize_m3(), and where_is_ik_bone().
This computes the overall volume scale factor of a transformation matrix. For an orthogonal matrix, it is the product of all three scale values. Returns a negative value if the transform is flipped by negative scale.
Definition at line 2172 of file math_matrix.c.
References determinant_m3_array().
Definition at line 2265 of file math_matrix.c.
References mat3_normalized_to_quat(), mat4_to_loc_rot_size(), rot, and size().
Referenced by AnimationImporter::apply_matrix_curves(), blender::nodes::geo_node_object_info_exec(), and BCMatrix::set_transform().
Definition at line 2247 of file math_matrix.c.
References copy_m3_m4(), copy_v3_v3(), is_negative_m3(), mat3_normalized_to_quat(), negate_m3(), and normalize_m3_m3().
Referenced by wm_xr_session_base_pose_calc().
Definition at line 2236 of file math_matrix.c.
References copy_m3_m4(), copy_v3_v3(), mat3_to_rot_size(), rot, and size().
Referenced by BKE_object_apply_mat4_ex(), BKE_pchan_apply_mat4(), blend_m4_m4m4(), blender::io::alembic::copy_m44_axis_swap(), mat4_decompose(), Matrix_decompose(), mul_m4_m4m4_aligned_scale(), object_convert_exec(), object_preview_camera_create(), ObjectToTransData(), rotlike_evaluate(), and transform_evaluate().
Definition at line 2226 of file math_matrix.c.
References is_negative_m3(), negate_m3(), normalize_v3_v3(), rot, and UNLIKELY.
Referenced by blender::nodes::compute_special_attributes().
Definition at line 2196 of file math_matrix.c.
References copy_v3_fl(), len_v3(), M_SQRT1_3, and mul_mat3_m4_v3().
Referenced by add_verts_to_dgroups(), arrayModifier_doArray(), BKE_armature_transform(), BKE_curve_transform(), BKE_gpencil_point_coords_apply_with_mat4(), BKE_gpencil_transform(), BKE_mball_minmax_ex(), BKE_mball_transform(), BKE_shrinkwrap_project_normal(), drw_shgroup_bone_envelope(), drw_shgroup_bone_envelope_distance(), duplicateStroke(), dyntopo_detail_size_parallel_lines_draw(), dyntopo_detail_size_sample_from_surface(), ED_armature_edit_transform(), ED_curve_join_objects_exec(), edbm_bevel_init(), edbm_inset_init(), eevee_lightbake_cube_influence_volume(), eevee_lightbake_grid_influence_volume(), gpencil_layer_cache_populate(), gpencil_object_cache_add(), gpencil_uv_transform_init(), gpencil_vfx_blur(), gpencil_vfx_pixelize(), gpencil_vfx_rim(), gpencil_vfx_shadow(), gpencil_vfx_swirl(), gpencil_vfx_wave(), paint_calc_object_space_radius(), sample_detail_dyntopo(), sculpt_detail_flood_fill_exec(), sculpt_stroke_update_step(), and statvis_calc_thickness().
Definition at line 2145 of file math_matrix.c.
References len_v3(), M, and size().
Referenced by actcon_get_tarmat(), AnimationImporter::add_bone_animation_sampled(), arrayModifier_doArray(), bc_decompose(), BKE_bone_parent_transform_calc_from_matrices(), BKE_object_dimensions_get(), BKE_pchan_bbone_spline_params_get(), camera_stereo3d_model_matrix(), childof_evaluate(), constraintSizeLim(), EEVEE_volumes_cache_object_add(), followpath_evaluate(), make_duplis_particle_system(), mat4_to_dquat(), mat4_to_size_fix_shear(), orthogonalize_m4(), rotlimit_evaluate(), samevolume_evaluate(), blender::float4x4::scale(), sizelike_evaluate(), sizelimit_evaluate(), trackto_evaluate(), transform_evaluate(), AnimationImporter::translate_animation_OLD(), unwrap_exec(), visualkey_get_values(), where_is_ik_bone(), and workbench_volume_object_cache_populate().
Extract scale factors from the matrix, with correction to ensure exact volume in case of a sheared matrix.
Definition at line 2156 of file math_matrix.c.
References fabsf, M, mat4_to_size(), mat4_to_volume_scale(), mul_v3_fl(), and size().
Referenced by BKE_bone_parent_transform_calc_from_matrices().
Definition at line 2177 of file math_matrix.c.
References determinant_m4_mat3_array().
Referenced by BKE_bone_parent_transform_calc_from_matrices(), dvar_eval_transChan(), mat4_to_size_fix_shear(), and sizelike_evaluate().
Return 2D scale (in XY plane) of given mat4.
Definition at line 2206 of file math_matrix.c.
References float(), len_v3(), M, M_SQRT1_2, and mul_mat3_m4_v3().
Definition at line 788 of file math_matrix.c.
References mul_v2_m2v2().
Referenced by bm_face_array_uv_rotate_fit_aabb(), BM_face_uv_transform(), compensate_rotation_center(), p_chart_uv_transform(), rotation_contribution(), and Vector_rotate().
Definition at line 960 of file math_matrix.c.
References R.
Referenced by armature_vert_task_with_dvert(), dfdv_damp(), dfdx_spring(), ElementRotation_ex(), interp_m3_m3m3(), mul_v3m3_dq(), SIM_hair_volume_vertex_grid_forces(), SIM_mass_spring_force_drag(), SIM_mass_spring_force_reference_frame(), SIM_mass_spring_force_spring_bending(), SIM_mass_spring_force_spring_linear(), SIM_mass_spring_set_vertex_mass(), spring_grad_dir(), spring_hairbend_estimate_dfdv(), spring_hairbend_estimate_dfdx(), and vcloud_estimate_transform_v3().
Definition at line 412 of file math_matrix.c.
References A, B, BLI_assert, copy_m3_m3(), mul_m3_m3m3_uniq(), and R.
Referenced by mul_m3_m3m3(), and object_preview_camera_create().
Definition at line 404 of file math_matrix.c.
References A, B, BLI_assert, copy_m3_m3(), mul_m3_m3m3_uniq(), and R.
Referenced by mul_m3_m3m3().
Definition at line 391 of file math_matrix.c.
References A, B, mul_m3_m3_post(), mul_m3_m3_pre(), mul_m3_m3m3_uniq(), and R.
Referenced by _va_mul_m3_series_3(), _va_mul_m3_series_4(), _va_mul_m3_series_5(), _va_mul_m3_series_6(), _va_mul_m3_series_7(), _va_mul_m3_series_8(), _va_mul_m3_series_9(), add_pose_transdata(), blender::nodes::align_rotations_auto_pivot(), blender::nodes::align_rotations_fixed_pivot(), apply_objects_internal(), apply_targetless_ik(), applyAlign(), applyAxisConstraintSize(), applyObjectConstraintRot(), applyObjectConstraintSize(), applySkinResize(), applyTrackball(), armature_bone_primitive_add_exec(), armature_finalize_restpose(), armature_transform_recurse(), BKE_bone_parent_transform_calc_from_matrices(), BKE_crazyspace_build_sculpt(), BKE_curve_deform_co(), BKE_object_rot_to_mat3(), BKE_object_to_mat3(), BKE_pchan_to_mat4(), blend_m3_m3m3(), cloth_parallel_transport_hair_frame(), blender::io::alembic::copy_m44_axis_swap(), createTransArmatureVerts(), drawObjectConstraint(), ED_armature_edit_transform(), ed_editnurb_spin(), ED_object_new_primitive_matrix(), ED_transform_calc_gizmo_stats(), EEVEE_lookdev_cache_init(), ElementBoneSize(), ElementMirror(), ElementResize(), ElementRotation_ex(), Euler_rotate(), execute_posetree(), gimbal_axis(), gizmo_axis_draw(), gizmo_mesh_spin_redo_update_orient_axis(), interp_m3_m3m3(), loc_eul_size_to_mat4(), loc_eulO_size_to_mat4(), loc_quat_size_to_mat4(), locktrack_evaluate(), mat3_polar_decompose(), mat3_vec_to_roll(), Matrix_rotate(), meshcache_do(), mul_v3m3_dq(), multiresModifier_prepare_join(), object_orient_to_location(), object_transform_axis_target_modal(), ObjectToTransData(), blender::nodes::point_rotate__axis_angle__object_space(), blender::nodes::point_rotate__axis_angle__point_space(), blender::nodes::point_rotate__euler__object_space(), blender::nodes::point_rotate__euler__point_space(), projection_matrix_calc(), Quaternion_rotate(), root_to_world_m3(), rotate_eul(), rotate_eulO(), rotlike_evaluate(), splineik_evaluate_bone(), transform_convert_mesh_crazyspace_transdata_set(), transform_data_ext_rotate(), transform_evaluate(), transform_pivot_set_m3(), vcloud_estimate_transform_v3(), vec_roll_to_mat3_normalized(), vfont_to_curve(), and world_to_root_m3().
Definition at line 420 of file math_matrix.c.
References A, B, BLI_assert, ELEM, and R.
Referenced by mul_m3_m3_post(), mul_m3_m3_pre(), mul_m3_m3m3(), and mul_m4_m4m4_aligned_scale().
Definition at line 458 of file math_matrix.c.
References A, B, copy_m3_m3(), copy_m4_m4(), and R.
Definition at line 482 of file math_matrix.c.
References A, B, copy_m3_m3(), copy_m4_m4(), and R.
Referenced by transform_orientation_matrix_get().
Definition at line 525 of file math_matrix.c.
Referenced by snap_selected_to_location(), and splineik_evaluate_bone().
Definition at line 727 of file math_matrix.c.
References mul_v2_m3v2(), and r.
Referenced by flushTransMasking(), mask_evaluate_apply_point_parent(), and setup_vertex_point().
Definition at line 930 of file math_matrix.c.
References M, mul_v3_m3v3(), r, and UNPACK3.
Referenced by apply_objects_internal(), applyAxisConstraintVec(), applyGridAbsolute(), applyObjectConstraintVec(), applyProject(), applyPushPull(), applyShear(), applyTranslationValue(), armature_calc_roll_exec(), armature_click_extrude_exec(), Bend(), BKE_mesh_remap_calc_polys_from_mesh(), BKE_mesh_transform(), bmesh_test_dist_add(), bmo_spin_exec(), calc_bbox(), calc_distanceCurveVerts(), calc_overlap(), cloth_filter_apply_forces_task_cb(), blender::nodes::compute_special_attributes(), contarget_get_mesh_mat(), convert_tree(), cube_face_uv_to_direction(), do_kink_spiral(), do_kink_spiral_deform(), ED_gpencil_join_objects_exec(), ED_object_new_primitive_matrix(), ED_view3d_minmax_verts(), ElementMirror(), ElementResize(), ElementRotation_ex(), execute_posetree(), filter(), flyApply(), getTransformOrientation_ex(), gizmo_axis_draw(), gizmo_bisect_prop_angle_set(), gizmo_mesh_spin_redo_setup(), gizmo_spin_prop_axis_angle_set(), gpencil_brush_twist_apply(), imapaint_tri_weights(), IMB_colormanagement_scene_linear_to_srgb_v3(), IMB_colormanagement_srgb_to_scene_linear_v3(), initFlyInfo(), mat3_to_quat_is_ok(), mat3_to_scale(), mball_select_similar_type(), mball_select_similar_type_get(), mesh_filter_task_cb(), meshcache_do(), meshdeform_vert_task(), move3d_get_translate(), mul_v3m3_dq(), nurb_bezt_direction_worldspace_get(), nurb_bpoint_direction_worldspace_get(), object_hook_recenter_exec(), object_origin_clear_exec(), object_origin_set_exec(), object_transform_axis_target_modal(), pivotcon_evaluate(), proj_paint_state_viewport_init(), psys_get_dupli_path_transform(), raycast_all_cb(), raycastEditMesh(), raycastMesh(), RE_bake_normal_world_to_tangent(), ResizeBetween(), rotateflagNurb(), RotationBetween(), SCULPT_cursor_geometry_info_update(), sculpt_flush_pbvhvert_deform(), sculpt_gesture_context_init_common(), sculpt_update_cache_invariants(), sh_node_vector_rotate_around_axis(), sh_node_vector_rotate_euler(), snap_curs_to_sel_ex(), snap_sel_to_grid_exec(), snap_selected_to_location(), transform_snap_increment_ex(), tri_to_quat_ex(), Vector_rotate(), viewops_data_create(), voxel_size_edit_invoke(), vwpaint_update_cache_invariants(), walkApply(), blender::compositor::warpCoord(), and WIDGETGROUP_xform_cage_refresh().
Definition at line 935 of file math_matrix.c.
References M, mul_v3_m3v3_db(), r, and UNPACK3.
Referenced by BLI_quadric_optimize().
Definition at line 971 of file math_matrix.c.
References R.
Referenced by add_weighted_dq_dq(), armdef_evaluate(), and normalize_dq().
Definition at line 505 of file math_matrix.c.
References A, B, copy_m3_m3(), copy_m4_m4(), and R.
Referenced by constraintRotLim(), constraintSizeLim(), constraintTransLim(), damptrack_do_transform(), ED_armature_join_objects_exec(), face_dupli(), locktrack_evaluate(), splineik_evaluate_bone(), and trackto_evaluate().
Definition at line 383 of file math_matrix.c.
References A, B, BLI_assert, copy_m4_m4(), mul_m4_m4m4_uniq(), and R.
Referenced by dyntopo_detail_size_edit_invoke(), GPU_matrix_mul(), modifyVolume(), mul_m4_m4m4(), SCULPT_do_pose_brush(), and voxel_size_edit_invoke().
Definition at line 375 of file math_matrix.c.
References A, B, BLI_assert, copy_m4_m4(), mul_m4_m4m4_uniq(), and R.
Referenced by blender::nodes::geo_node_collection_info_exec(), make_duplis_instances_component(), and mul_m4_m4m4().
Definition at line 437 of file math_matrix.c.
References A, B, copy_m3_m3(), copy_m4_m4(), and R.
Referenced by applyarmature_adjust_edit_position(), convert_pose(), draw_bone_degrees_of_freedom(), OVERLAY_gpencil_cache_init(), set_axis(), and single_axis_convert().
Definition at line 262 of file math_matrix.c.
References A, B, mul_m4_m4_post(), mul_m4_m4_pre(), mul_m4_m4m4_uniq(), and R.
Referenced by _va_mul_m4_series_3(), _va_mul_m4_series_4(), _va_mul_m4_series_5(), _va_mul_m4_series_6(), _va_mul_m4_series_7(), _va_mul_m4_series_8(), _va_mul_m4_series_9(), ABC_get_transform(), actcon_evaluate(), action_flip_pchan(), AnimationImporter::add_bone_animation_sampled(), BCMatrix::add_inverted_transform(), TransformWriter::add_joint_transform(), add_primitive_cube_gizmo_exec(), BCMatrix::add_transform(), AnimationImporter::apply_matrix_curves(), BCMatrix::apply_transform(), applyarmature_process_selected_recursive(), armature_deform_coords_impl(), armdef_accumulate_bone(), armdef_accumulate_matrix(), armdef_evaluate(), armdef_get_tarmat(), arrayModifier_doArray(), base_callback(), bc_bone_matrix_local_get(), bc_match_scale(), bc_rotate_from_reference_quat(), bc_set_parent(), BKE_armature_mat_pose_to_delta(), BKE_armature_mat_world_to_pose(), BKE_armature_where_is_bone(), BKE_bone_parent_transform_apply(), BKE_bone_parent_transform_calc_from_matrices(), BKE_bone_parent_transform_combine(), BKE_constraint_mat_convertspace(), BKE_constraints_clear_evalob(), BKE_constraints_make_evalob(), BKE_gpencil_layer_transform_matrix_get(), BKE_gpencil_update_layer_transforms(), BKE_lattice_deform_data_create(), BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), BKE_object_apply_mat4_ex(), BKE_object_eval_parent(), BKE_object_eval_proxy_copy(), BKE_object_get_parent_matrix(), BKE_object_make_proxy(), BKE_object_matrix_local_get(), BKE_object_modifier_gpencil_hook_reset(), BKE_object_modifier_hook_reset(), BKE_pchan_bbone_segments_cache_compute(), BKE_pchan_bbone_spline_params_get(), BKE_pose_bone_done(), BKE_pose_where_is(), BKE_texture_mapping_init(), BKE_tracking_get_projection_matrix(), BLI_space_transform_from_matrices(), BLI_space_transform_global_from_matrices(), BMD_mesh_intersection(), bundle_midpoint(), button2d_draw_intern(), calc_brush_local_mat(), AnimationImporter::calc_joint_parent_mat_rest(), camera_stereo3d_model_matrix(), camera_view3d_reconstruction(), camerasolver_evaluate(), clampto_evaluate(), clipMirrorModifier(), constraint_target_to_mat4(), convert_pose(), convert_tree(), copy_dupli_context(), blender::io::alembic::copy_m44_axis_swap(), DocumentImporter::create_instance_node(), blender::io::alembic::create_transform_matrix(), cuboid_do(), deformStroke(), deformVerts_do(), do_clay_strips_brush(), do_clay_thumb_brush(), blender::io::alembic::ABCTransformWriter::do_write(), blender::io::usd::USDTransformWriter::do_write(), dquat_to_mat4(), draw_bone_degrees_of_freedom(), draw_bone_update_disp_matrix_bbone(), draw_view_matrix_state_update(), DRW_debug_sphere(), DRW_hair_duplimat_get(), drw_shgroup_bone_axes(), drw_shgroup_bone_box(), drw_shgroup_bone_custom_empty(), drw_shgroup_bone_custom_solid(), drw_shgroup_bone_custom_wire(), drw_shgroup_bone_octahedral(), drw_shgroup_bone_point(), dvar_eval_transChan(), ebone_spline_preview(), ED_armature_join_objects_exec(), ED_curve_join_objects_exec(), ED_gpencil_reset_layers_parent(), ED_object_data_xform_container_update_all(), ED_object_xform_skip_child_container_update_all(), ED_transform_calc_gizmo_stats(), ED_view3d_boundbox_clip_ex(), ED_view3d_camera_lock_sync(), ED_view3d_cameracontrol_update(), ED_view3d_draw_offscreen_imbuf_simple(), ED_view3d_init_mats_rv3d(), ED_view3d_ob_project_mat_get(), ED_view3d_ob_project_mat_get_from_obmat(), ED_view3d_update_viewmat(), edbm_extrude_edge_exclude_mirror(), edit_text_cache_populate_cursor(), edit_text_cache_populate_select(), eevee_ensure_cube_views(), EEVEE_lightprobes_cube_data_from_object(), EEVEE_lightprobes_planar_data_from_object(), eevee_volume_object_grids_init(), AnimationImporter::evaluate_transform_at_frame(), execute_posetree(), face_dupli(), followpath_evaluate(), followpath_get_tarmat(), followtrack_evaluate_using_2d_position(), followtrack_evaluate_using_3d_position_camera(), blender::nodes::geo_node_object_info_exec(), AnimationImporter::get_joint_rest_mat(), TransformReader::get_node_mat(), get_quick_mesh(), gizmo_cage2d_modal(), gizmo_cage3d_modal(), gizmo_placement_prop_matrix_get(), gizmo_placement_prop_matrix_set(), gpencil_depth_plane(), gpencil_object_cache_add(), gpencil_sculpt_brush_apply_standard(), gpencil_vertexpaint_brush_apply_to_layers(), gpencil_weightpaint_brush_apply_to_layers(), GPU_matrix_model_view_projection_get(), hair_create_input_mesh(), imapaint_pick_uv(), init_curve_deform(), Freestyle::BlenderFileLoader::insertShapeNode(), join_mesh_single(), lightbake_planar_ensure_view(), make_child_duplis_faces_from_editmesh(), make_child_duplis_faces_from_mesh(), make_child_duplis_pointcloud(), make_child_duplis_verts_from_editmesh(), make_child_duplis_verts_from_mesh(), make_dmats(), make_dupli(), make_duplis_collection(), make_duplis_font(), make_duplis_instances_component(), make_duplis_particle_system(), mat4_to_dquat(), matrix_from_obj_pchan(), meshdeformModifier_do(), minmax_evaluate(), MOD_get_texture_coords(), modifyMesh(), move3d_draw_intern(), normalEditModifier_do_directional(), ob_parcurve(), object_apply_mat4_with_protect(), object_solver_inverted_matrix(), object_warp_calc_view_matrix(), objectsolver_evaluate(), OVERLAY_bounds(), OVERLAY_texture_space(), OVERLAY_volume_extra(), pose_mirror_info_init(), pose_transform_mirror_update(), blender::io::gpencil::GpencilIO::prepare_camera_params(), proj_paint_state_viewport_init(), psys_mat_hair_to_global(), blender::io::alembic::AbcObjectReader::read_matrix(), reconstruct_retrieve_libmv_tracks(), reconstructed_camera_scale_set(), remap_hair_emitter(), render_cubemap(), BCQuat::rotate_to(), SCULPT_do_paint_brush(), sculpt_init_mirror_clipping(), sculpt_transform_matrices_init(), set_axis(), set_plane_exec(), snap_mesh_edge_verts_mixed(), snap_mesh_polygon(), snapArmature(), snapCurve(), snapEditMesh(), snapMesh(), solve_parenting(), sort_bmelem_flag(), sphere_do(), surfacedeformModifier_do(), target_callback(), transform_pivot_set_m4(), AnimationImporter::translate_animation_OLD(), update_mirror_object(), uvprojectModifier_do(), vertex_dupli(), view3d_viewmatrix_set(), vpaint_stroke_update_step(), warpModifier_do(), waveModifier_do(), where_is_ik_bone(), WIDGETGROUP_armature_spline_refresh(), WIDGETGROUP_xform_cage_refresh(), wireframe_hair_cache_populate(), WM_gizmo_calc_matrix_final_params(), wm_gizmo_calculate_scale(), wm_xr_draw_matrices_create(), workbench_shadow_object_shadow_bbox_get(), workbench_studiolight_data_update(), workbench_volume_object_cache_populate(), and wpaint_stroke_update_step().
Combines transformations, handling scale separately in a manner equivalent to the Aligned Inherit Scale mode, in order to avoid creating shear. If A scale is uniform, the result is equivalent to ordinary multiplication.
Definition at line 1294 of file math_matrix.c.
References A, B, loc_rot_size_to_mat4(), mat4_to_loc_rot_size(), mul_m3_m3m3_uniq(), mul_v3_m4v3(), mul_v3_v3v3(), and R.
Referenced by actcon_evaluate(), and translike_evaluate().
Definition at line 320 of file math_matrix.c.
References A, B, BLI_assert, ELEM, and R.
Definition at line 275 of file math_matrix.c.
References A, A0, A1, A2, B, Freestyle::B0(), Freestyle::B1(), Freestyle::B2(), Freestyle::B3(), BLI_assert, ELEM, R, and sum().
Referenced by mul_m4_m4_post(), mul_m4_m4_pre(), and mul_m4_m4m4().
Definition at line 732 of file math_matrix.c.
Referenced by add_vertex_exec(), add_verts_to_dgroups(), apply_curve_transform(), applyarmature_process_selected_recursive(), applyGridAbsolute(), applyProject(), applyTranslationValue(), armature_bone_primitive_add_exec(), armature_calc_roll_exec(), armature_transform_recurse(), armature_vert_task_with_dvert(), armdef_evaluate(), arrayModifier_doArray(), BKE_curve_deform_co(), BKE_curve_transform_ex(), BKE_gpencil_convert_mesh(), BKE_gpencil_stroke_add_points(), BKE_gpencil_stroke_from_view_space(), BKE_gpencil_stroke_to_view_space(), BKE_gpencil_transform(), BKE_gpencil_update_layer_transforms(), BKE_lattice_transform(), BKE_mball_transform(), BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), BKE_mesh_transform(), BM_mesh_calc_uvs_circle(), BMBVH_EdgeVisible(), BMD_mesh_intersection(), bmo_create_circle_exec(), bmo_create_cone_exec(), bmo_create_cube_exec(), bmo_create_icosphere_exec(), bmo_create_monkey_exec(), bmo_create_uvsphere_exec(), bmo_transform_exec(), bone_direction_worldspace_get(), box_minmax_bounds_m4(), bpy_bmesh_transform(), brush_add(), brush_add_count_iter(), brush_puff(), calc_local_y(), calc_point_from_barycentric_cage(), calc_point_from_barycentric_extrusion(), calc_sculpt_plane(), calculate_autoscale_factor(), calculateCenterActive(), camera_view3d_reconstruction(), clipMirrorModifier(), cloth_from_object(), cloth_to_object(), cloth_update_verts(), createTransParticleVerts(), createTransSculpt(), cuboid_do(), cursor_draw_point_screen_space(), cursor_draw_point_with_symmetry(), curve_deform_coords_impl(), deflect_emitter_iter(), deformStroke(), deformVerts(), densfunc(), disconnect_hair(), do_brush_action(), do_guides(), do_pose_brush_task_cb_ex(), do_step_cloth(), do_texture_effector(), draw_bone_name(), draw_frustum_bound_sphere_calc(), draw_frustum_boundbox_calc(), draw_marker_texts(), drw_call_culling_init(), DRW_debug_m4(), drw_shgroup_bone_stick(), drw_shgroup_bone_wire(), DRW_text_cache_draw(), DRW_text_edit_mesh_measure_stats(), dvar_eval_locDiff(), dynamic_paint_brush_velocity_compute_cb(), dynamicPaint_brushObjectCalculateVelocity(), dynamicPaint_generateBakeData(), dynamicPaint_paintMesh(), ED_armature_edit_transform(), ED_armature_join_objects_exec(), ED_armature_origin_set(), ED_curve_join_objects_exec(), ED_gpencil_project_stroke_to_view(), ED_gpencil_reset_layers_parent(), ED_gpencil_stroke_reproject(), ED_mesh_deform_bind_callback(), ED_object_calc_active_center(), ED_transform_calc_gizmo_stats(), ED_view3d_clipping_calc(), ED_view3d_win_to_3d_on_plane_with_fallback(), edbm_dupli_extrude_cursor_invoke(), edbm_polybuild_face_at_cursor_invoke(), edbm_polybuild_split_at_cursor_invoke(), EDBM_unified_findnearest_from_raycast(), edge_pos_direction_worldspace_get(), edge_slide_snap_apply(), eevee_lightprobes_culling_test(), EEVEE_lightprobes_grid_data_from_object(), EEVEE_lightprobes_planar_data_from_object(), EEVEE_shadows_caster_register(), explodeMesh(), flushTransParticles(), get_cpa_texture(), get_effector_data(), get_quick_mesh(), gizmo_arrow_test_select(), gizmo_mesh_spin_init_refresh(), gizmo_plane_draw_grid(), gizmo_window_project_2d(), gizmo_window_project_3d(), globallen(), blender::io::gpencil::GpencilIO::gpencil_3D_point_to_render_space(), gpencil_add_verts_to_dgroups(), gpencil_brush_clone_add(), gpencil_brush_grab_apply_cached(), gpencil_generate_edgeloops(), gpencil_object_cache_add(), gpencil_point_3d_to_xy(), gpencil_point_to_xy(), gpencil_point_to_xy_fl(), gpencil_sbuffer_stroke_ensure(), gpencil_speed_guide_init(), greasepencil_copy_data(), hair_create_input_mesh(), init_meta(), Freestyle::BlenderFileLoader::insertShapeNode(), join_mesh_single(), knife_find_line_hits(), knife_input_ray_segment(), knife_start_cut(), knifetool_draw_angle_snapping(), lineart_gpencil_generate(), make_duplis_font(), merge_target(), mesh_bisect_exec(), mesh_merge_transform(), MOD_get_texture_coords(), modifyMesh(), motionpaths_calc_bake_targets(), mul_project_m4_v3(), mul_v3m3_dq(), object_origin_set_exec(), paint_brush_stroke_add_step(), paint_cursor_update_pixel_radius(), paint_line_strokes_spacing(), paint_proj_begin_clone(), paint_space_stroke(), paint_stroke_curve_end(), paint_stroke_modal(), particles_fluid_step(), PE_lasso_select(), PE_minmax(), PE_mirror_particle(), PE_update_mirror_cache(), point_is_visible(), pointdensity_cache_object(), pointdensity_cache_psys(), precalc_guides(), precalculate_effector(), project_paint_op(), psys_apply_hair_lattice(), psys_cache_edit_paths_iter(), psys_get_birth_coords(), psys_get_particle_on_path(), psys_get_texture(), psys_thread_create_path(), raycastEditMesh(), raycastMesh(), remap_hair_emitter(), remove_doubles_exec(), save_hair(), SCULPT_brush_strength_factor(), sculpt_brush_test_clipping(), SCULPT_cache_calc_brushdata_symm(), SCULPT_calc_brush_plane(), SCULPT_clip(), sculpt_face_sets_change_visibility_exec(), SCULPT_raycast_init(), sculpt_topology_update(), sculpt_transform_task_cb(), shrinkwrap_get_tarmat(), snap_curs_to_sel_ex(), snap_mesh_edge_verts_mixed(), snap_mesh_polygon(), snap_sel_to_grid_exec(), snap_selected_to_location(), snap_target_median_impl(), snapArmature(), snapCamera(), snapCurve(), snapEditMesh(), snapMesh(), softbody_reset(), softbody_to_object(), softbody_update_positions(), sort_bmelem_flag(), sphere_do(), spin_exec(), springs_from_mesh(), TargetSnapClosest(), update_mirror_object(), update_sculpt_normal(), update_world_cos(), updateDuplicateActionConstraintSettings(), updateDuplicateLocRotConstraintSettings(), uv_cylinder_project(), uv_sphere_project(), uv_warp_from_mat4_pair(), uvprojectModifier_do(), v3d_editvertex_buts(), vert_slide_snap_apply(), view3d_orbit_calc_center(), view3d_preselect_update_preview_triangle_from_edge(), view3d_preselect_update_preview_triangle_from_vert(), view3d_viewmatrix_set(), viewselected_exec(), warpModifier_do(), and workbench_shadow_object_shadow_bbox_get().
Definition at line 866 of file math_matrix.c.
References mul_v4_m4v4(), and r.
Referenced by BLI_uvproject_from_camera(), BLI_uvproject_from_view(), box_clip_bounds_m4(), camera_frame_fit_data_init(), drw_sculpt_get_frustum_planes(), drw_shgroup_bone_envelope(), drw_shgroup_bone_envelope_distance(), ED_view3d_global_to_vector(), ED_view3d_offset_distance(), ed_view3d_project__internal(), ED_view3d_project_float_v2_m4(), ED_view3d_project_float_v3_m4(), GPU_matrix_project(), imapaint_project(), paint_proj_begin_clone(), proj_paint_state_screen_coords_init(), project_paint_face_init(), tri_corner_adj_vmesh(), and view3d_boundbox_clip_m4().
Definition at line 887 of file math_matrix.c.
References mul_v4d_m4v4d(), and r.
Definition at line 347 of file math_matrix.c.
References A, B, BLI_assert, ELEM, and R.
Referenced by lineart_geometry_object_load(), and lineart_main_load_geometries().
Definition at line 982 of file math_matrix.c.
References R.
Referenced by add_primitive_monkey_exec(), BKE_bone_parent_transform_calc_from_matrices(), curvesurf_prim_add(), drawDial3d(), effector_add_exec(), make_duplis_particle_system(), uvprojectModifier_do(), and WM_gizmo_calc_matrix_final_params().
Same as mul_m4_v3() but doesn't apply translation component.
Definition at line 794 of file math_matrix.c.
Referenced by armature_finalize_restpose(), armature_transform_recurse(), arrayModifier_doArray(), BKE_lattice_deform_data_create(), BKE_volume_density_scale(), BLI_space_transform_apply_normal(), BLI_space_transform_invert_normal(), BM_mesh_calc_uvs_cone(), brush_comb(), brush_puff(), brush_smooth_do(), brush_smooth_get(), calcVertSlideMouseActiveEdges(), cast_ray_highpoly(), damptrack_do_transform(), do_guides(), do_kink(), do_kink_spiral(), drawVertSlide(), DRW_text_edit_mesh_measure_stats(), dynamic_paint_generate_bake_data_cb(), dynamicPaint_paintMesh(), ED_armature_origin_set(), ED_gpencil_project_point_to_plane(), ED_gpencil_project_stroke_to_plane(), ED_text_to_object(), ED_view3d_distance_set(), ED_view3d_to_m4(), edbm_dupli_extrude_cursor_invoke(), ElementResize(), face_dupli(), get_effector_data(), getTransformOrientation_ex(), gpencil_brush_clone_add(), gpencil_brush_push_apply(), gpencil_depth_plane(), gpencil_object_cache_add(), gpencil_sculpt_compute_lock_axis(), initShear_mouseInputMode(), Freestyle::BlenderFileLoader::insertShapeNode(), make_child_duplis_pointcloud(), mat4_to_scale(), mat4_to_xy_scale(), mesh_merge_transform(), modifyMesh(), precalc_guides(), precalculate_effector(), psys_get_birth_coords(), psys_get_particle_on_path(), psys_vec_rot_to_face(), raycastEditMesh(), raycastMesh(), RE_bake_normal_world_to_object(), SCULPT_filter_to_object_space(), SCULPT_filter_to_orientation_space(), sculpt_gesture_trim_shape_origin_normal_get(), sculpt_update_brush_delta(), shrinkwrap_get_tarmat(), uvprojectModifier_do(), vertex_dupli(), view3d_viewmatrix_set(), walk_ray_cast(), and workbench_studiolight_data_update().
Definition at line 824 of file math_matrix.c.
References fabsf, mul_m4_v3(), mul_project_m4_v3_zfac(), and w().
Referenced by draw_frustum_boundbox_calc(), draw_view_matrix_state_update(), DRW_debug_m4_as_bbox(), ED_view3d_win_to_origin(), ED_view3d_win_to_vector(), EEVEE_temporal_sampling_matrices_calc(), knife_interp_v3_v3v3(), screen_px_to_vector_persp(), and uvprojectModifier_do().
Definition at line 940 of file math_matrix.c.
Referenced by BM_edge_calc_face_angle_with_imat3_ex(), BMD_mesh_intersection(), cloth_hair_update_bending_rest_targets(), and world_to_root_v3().
Definition at line 950 of file math_matrix.c.
Referenced by calc_point_from_barycentric_extrusion(), displaceModifier_do_task(), face_to_plane(), mesh_bisect_exec(), RE_bake_normal_world_to_tangent(), similar_face_select_exec(), similar_vert_select_exec(), snap_mesh_edge_verts_mixed(), snap_mesh_polygon(), snapEditMesh(), snapMesh(), statvis_calc_overhang(), and stroke_elem_project_fallback().
Definition at line 780 of file math_matrix.c.
Referenced by mul_m2_v2(), snap_v2_angle(), and stitch_uv_rotate().
Definition at line 714 of file math_matrix.c.
References copy_v2_v2(), mul_v3_m3v3(), r, and v.
Referenced by MaskHandleToTransData(), MaskPointToTransData(), mul_m3_v2(), and sequencer_image_crop_transform_do_thread().
Definition at line 921 of file math_matrix.c.
References Freestyle::a, copy_v3_v3(), M, r, and t.
Referenced by BKE_mesh_recalc_looptri(), BKE_mesh_remap_calc_polys_from_mesh(), BKE_mesh_tessface_calc_ex(), BLI_scanfill_calc_ex(), bm_edge_calc_rotate_beauty__area(), bm_face_bisect_verts(), BM_face_calc_tessellation(), BM_face_interp_from_face(), BM_face_interp_from_face_ex(), BM_face_point_inside_test(), BM_face_split_edgenet(), BM_face_split_edgenet_connect_islands(), BM_face_splits_check_legal(), BM_face_triangulate(), bm_interp_face_store(), BM_loop_interp_from_face(), BM_mesh_calc_tessellation(), BM_mesh_calc_tessellation_beauty(), BM_vert_interp_from_face(), C_BVHTree_FromPolygons(), normalize_v2_m3_v3v3(), p_add_ngon(), poly_rotate_plane(), and smart_project_exec().
Definition at line 772 of file math_matrix.c.
Referenced by mul_v2_project_m4_v3().
Definition at line 845 of file math_matrix.c.
References fabsf, mul_project_m4_v3_zfac(), mul_v2_m4v3(), r, and w().
Referenced by uvprojectModifier_do().
Definition at line 901 of file math_matrix.c.
References Freestyle::a, copy_v3_v3(), M, r, and t.
Referenced by blender::nodes::align_rotations_auto_pivot(), blender::nodes::align_rotations_fixed_pivot(), apply_tangmat_callback(), applyMouseInput(), applyNormalRotation(), applyTranslation(), assign_final_coords_from_mdisps(), assign_final_elements_from_orig_mdisps(), average_read_displacement_object(), BLI_newton3d_solve(), BM_face_calc_area_with_mat3(), BM_face_calc_perimeter_with_mat3(), bmesh_test_dist_add(), bmo_create_uvsphere_exec(), calc_deltas(), cloth_hair_update_bending_targets(), correctivesmooth_modifier_do(), deformStroke(), deformVerts_do(), do_rotate_brush_task_cb_ex(), ED_gpencil_join_objects_exec(), edbm_extrude_repeat_exec(), eval_displacement(), evaluate_final_original_point(), evaluate_higher_grid_positions_with_details_callback(), gizmo_axis_draw(), gizmo_mesh_spin_init_refresh(), gizmo_mesh_spin_redo_update_from_op(), gpencil_hook_co_apply(), hook_co_apply(), IMB_colormangement_rgb_to_xyz(), IMB_colormangement_xyz_to_rgb(), mesh_init_origspace(), modifyMesh(), mul_m3_v3(), mul_v2_m3v2(), multires_disp_run_cb(), multires_reshape_apply_base_update_mesh_coords(), object_grid_element_to_tangent_displacement(), object_origin_set_exec(), paintface_minmax(), reshape_subdiv_refine_orig_P(), root_to_world_v3(), set_prop_dist(), snap_selected_to_location(), track_plane_from_existing_motion(), and transform_point_by_tri_v3().
Definition at line 911 of file math_matrix.c.
References Freestyle::a, copy_v3_v3_db(), M, r, and t.
Referenced by mul_m3_v3_db().
Definition at line 742 of file math_matrix.c.
Referenced by add_hook_object(), add_vertex_invoke(), add_verts_to_dgroups(), annotation_stroke_convertcoords(), applyarmature_adjust_edit_position(), armature_fill_bones_exec(), armdef_accumulate_bone(), bc_add_global_transform(), bc_apply_global_transform(), BKE_bone_parent_transform_apply(), BKE_bone_parent_transform_calc_from_matrices(), BKE_boundbox_minmax(), BKE_curve_nurbs_vert_coords_apply_with_mat4(), BKE_gpencil_point_coords_apply_with_mat4(), BKE_gpencil_stroke_from_view_space(), BKE_gpencil_stroke_to_view_space(), BKE_keyblock_curve_data_transform(), BKE_keyblock_data_set_with_mat4(), BKE_lattice_deform_data_eval_co(), BKE_lattice_vert_coords_apply_with_mat4(), BKE_mball_minmax_ex(), BKE_mesh_vert_coords_apply_with_mat4(), BKE_mesh_wrapper_vert_coords_copy_with_mat4(), BKE_object_as_kdtree(), BKE_object_foreach_display_point(), BKE_object_get_parent_matrix(), BKE_object_minmax(), BKE_object_minmax_dupli(), BKE_pchan_bbone_spline_params_get(), BKE_pose_minmax(), BLI_space_transform_apply(), BLI_space_transform_invert(), BLI_uvproject_from_view_ortho(), BM_mesh_calc_uvs_cone(), BM_mesh_vert_coords_apply_with_mat4(), bmo_create_grid_exec(), brush_puff(), bundle_midpoint(), cage3d_draw_circle_handles(), calc_local_clipping(), calc_local_y(), calc_multiplane_scrape_surface_task_cb(), calc_tw_center_with_matrix(), calculate_profile(), calculate_profile_segments(), calculateCenterLocal(), cast_ray_highpoly(), cloth_brush_solve_collision(), constraint_target_to_mat4(), contarget_get_lattice_mat(), contarget_get_mesh_mat(), cuboid_do(), curve_draw_stroke_from_operator_elem(), deformStroke(), do_clay_thumb_brush_task_cb_ex(), do_multiplane_scrape_brush_task_cb_ex(), do_set_scale(), blender::io::alembic::ABCPointsWriter::do_write(), drawObjectConstraint(), drawVertSlide(), drw_call_culling_init(), DRW_debug_line_v3v3(), drw_shgroup_bone_relationship_lines_ex(), drw_shgroup_bone_stick(), drw_shgroup_bone_wire(), ebone_spline_preview(), ED_clip_point_stable_pos(), ED_clip_point_stable_pos__reverse(), ED_gpencil_join_objects_exec(), ED_mesh_deform_bind_callback(), ED_transform_calc_gizmo_stats(), edbm_dupli_extrude_cursor_invoke(), edbm_extrude_edge_exclude_mirror(), edbm_polybuild_face_at_cursor_invoke(), EDBM_project_snap_verts(), edbm_screw_exec(), edbm_select_axis_exec(), EDBM_unified_findnearest_from_raycast(), edit_text_cache_populate_boxes(), face_to_plane(), followtrack_evaluate_using_2d_position(), followtrack_project_to_depth_object_if_needed(), generate_vert_coordinates(), get_new_constraint_target(), get_vert2ob_distance(), gizmo_move_modal(), gizmo_preselect_elem_test_select(), gpencil_3d_point_to_screen_space(), gpencil_add_verts_to_dgroups(), gpencil_apply_parent(), gpencil_apply_parent_point(), gpencil_brush_grab_apply_cached(), gpencil_brush_pinch_apply(), gpencil_brush_twist_apply(), gpencil_do_curve_circle_sel(), gpencil_draw_basic_stroke(), gpencil_draw_stroke_3d(), gpencil_edit_curve_stroke_iter_cb(), gpencil_hook_co_apply(), gpencil_point_to_parent_space(), gpencil_snap_to_grid(), gpencil_stroke_eraser_is_occluded(), gpencil_stroke_points_centroid(), gpencil_strokepoint_convertcoords(), gpencil_vfx_pixelize(), gpencil_vfx_shadow(), gpencil_vfx_swirl(), gpencil_vfx_wave(), GPU_matrix_unproject_with_precalc(), hook_co_apply(), kinematic_get_tarmat(), meshdeform_vert_task(), meshdeformModifier_do(), metaball_instance_data_set(), MOD_get_texture_coords(), mul_m4_m4m4_aligned_scale(), mul_v3_project_m4_v3(), nearestVert(), object_origin_set_exec(), object_warp_calc_view_matrix(), object_warp_transverts(), overlay_gpencil_draw_stroke_color_name(), OVERLAY_relationship_lines(), paint_calc_object_space_radius(), paint_space_stroke_spacing(), particle_system_minmax(), pchan_deform_accumulate(), pose_transform_mirror_update(), proj_paint_state_screen_coords_init(), raycast_all_cb(), reconstruct_retrieve_libmv_tracks(), remap_hair_emitter(), SCULPT_brush_test_cube(), SCULPT_clip(), sculpt_gesture_line_plane_from_tri(), sculpt_gesture_trim_calculate_depth(), sculpt_gesture_trim_geometry_generate(), sculpt_gesture_trim_shape_origin_normal_get(), sculpt_update_brush_delta(), selected_tracking_boundbox(), set_axis(), set_origin_exec(), set_plane_exec(), set_prop_dist(), shape_cut(), shape_cut_test_point(), snap_mesh_edge_verts_mixed(), snap_selected_to_location(), snap_to_pipe_profile(), sort_bmelem_flag(), sphere_do(), splineik_evaluate_bone(), stroke_elem_pressure_set(), stroke_elem_project_fallback(), surfacedeformBind(), tracking_stabilize_frame_interpolation_cb(), transdata_center_global_get(), uv_map_transform_center(), view3d_preselect_update_preview_triangle_from_vert(), voxel_size_edit_invoke(), vpaint_stroke_update_step(), warpModifier_do(), WIDGETGROUP_xform_cage_refresh(), workbench_shadow_object_shadow_bbox_get(), and wpaint_stroke_update_step().
Definition at line 752 of file math_matrix.c.
Referenced by lineart_vert_transform().
Definition at line 804 of file math_matrix.c.
Referenced by applyarmature_process_selected_recursive(), BKE_object_make_proxy(), bone_length_squared_worldspace_get(), cast_ray_highpoly(), edbm_dupli_extrude_cursor_invoke(), edge_length_squared_worldspace_get(), followtrack_distance_from_viewplane_get(), gizmo_calc_rect_view_scale(), knife_recalc_projmat(), lineart_main_get_view_vector(), move3d_get_translate(), object_origin_set_exec(), SCULPT_do_multiplane_scrape_brush(), sculpt_gesture_line_plane_from_tri(), SCULPT_tilt_apply_to_normal(), splineik_evaluate_bone(), workbench_shadow_cache_populate(), workbench_shadow_data_update(), and workbench_shadow_update().
Definition at line 814 of file math_matrix.c.
Referenced by lineart_geometry_object_load().
Definition at line 835 of file math_matrix.c.
References fabsf, mul_project_m4_v3_zfac(), mul_v3_m4v3(), r, and w().
Referenced by dial_ghostarc_get_angles(), draw_frustum_bound_sphere_calc(), and knife_interp_v3_v3v3().
Definition at line 892 of file math_matrix.c.
Referenced by GPU_matrix_project().
Definition at line 761 of file math_matrix.c.
Referenced by lineart_triangle_cull_single(), lineart_triangle_edge_image_space_occlusion(), lineart_triangle_intersect(), and lineart_vert_transform().
Definition at line 854 of file math_matrix.c.
Referenced by calculate_reprojection_error_at_marker(), draw_tracking_tracks(), DRW_culling_min_max_test(), mul_m4_v4(), snap_mesh_polygon(), snap_object_center(), snapArmature(), snapCurve(), snapEditMesh(), and snapMesh().
Definition at line 871 of file math_matrix.c.
References double(), r, v, x, y, and z.
Referenced by mul_m4_v4d().
| void negate_m3 | ( | float | R[3][3] | ) |
Definition at line 993 of file math_matrix.c.
References R.
Referenced by BMD_mesh_intersection(), mat3_to_rot_size(), mat4_to_loc_quat(), mat4_to_rot(), SIM_mass_spring_force_reference_frame(), SIM_mass_spring_force_spring_bending_hair(), spring_hairbend_estimate_dfdv(), and spring_hairbend_estimate_dfdx().
| void negate_m4 | ( | float | R[4][4] | ) |
Definition at line 1015 of file math_matrix.c.
References R.
Referenced by hide_show_exec(), sculpt_gesture_flip_for_symmetry_pass(), and sculpt_gesture_update_effected_nodes_by_clip_planes().
| void negate_mat3_m4 | ( | float | R[4][4] | ) |
Definition at line 1004 of file math_matrix.c.
References R.
Referenced by gizmo_placement_prop_matrix_set().
| void normalize_m2 | ( | float | R[2][2] | ) |
Definition at line 1889 of file math_matrix.c.
References normalize_v2(), and R.
Definition at line 1881 of file math_matrix.c.
References normalize_v2(), and R.
Definition at line 1904 of file math_matrix.c.
References M, normalize_v2_v2(), and R.
Referenced by Vector_rotate().
Definition at line 1897 of file math_matrix.c.
References M, normalize_v2_v2(), and R.
| void normalize_m3 | ( | float | R[3][3] | ) |
Definition at line 1919 of file math_matrix.c.
References normalize_v3(), and R.
Referenced by add_pose_transdata(), apply_targetless_ik(), axis_angle_to_gimbal_axis(), BKE_armature_transform(), BKE_mesh_transform(), camera_frame_fit_data_init(), convert_tree(), createObjectSpace(), createSpaceNormal(), createTransArmatureVerts(), createTransCursor_view3d(), createTransTexspace(), createViewSpace(), ED_armature_edit_transform(), ED_transform_calc_gizmo_stats(), ED_transform_calc_orientation_from_type_ex(), ED_view3d_from_m4(), execute_posetree(), gimbal_axis(), gizmo_mesh_extrude_draw_prepare(), idp_poject_surface_normal(), locktrack_evaluate(), mat3_to_quat_is_ok(), mat4_to_compatible_eulO(), mat4_to_eulO(), mathutils_any_to_rotmat(), Matrix_normalize(), Matrix_to_euler(), object_transform_axis_target_modal(), pivotcon_evaluate(), splineik_evaluate_bone(), and transform_orientation_matrix_get().
Definition at line 1912 of file math_matrix.c.
References normalize_v3(), and R.
Definition at line 1934 of file math_matrix.c.
References M, normalize_v3_v3(), and R.
Referenced by init_TransDataContainers(), mat3_to_compatible_eul(), mat3_to_compatible_eulO(), mat3_to_eul(), mat3_to_eulO(), mat3_to_quat(), mat4_to_loc_quat(), and splineik_evaluate_bone().
Definition at line 1927 of file math_matrix.c.
References M, normalize_v3_v3(), and R.
| void normalize_m4 | ( | float | R[4][4] | ) |
Definition at line 1952 of file math_matrix.c.
References len, normalize_v3(), and R.
Referenced by BKE_bone_parent_transform_calc_from_matrices(), BKE_camera_multiview_model_matrix(), BKE_constraint_mat_convertspace(), BKE_pchan_bbone_segments_cache_compute(), BKE_pchan_bbone_spline_params_get(), BLI_uvproject_camera_info(), calc_brush_local_mat(), cloth_brush_apply_brush_foces(), contarget_get_mesh_mat(), convert_pose(), do_clay_strips_brush(), do_clay_thumb_brush(), do_pinch_brush(), ED_view3d_draw_offscreen_imbuf_simple(), execute_posetree(), hair_create_input_mesh(), Matrix_normalize(), proj_paint_state_viewport_init(), SCULPT_do_multiplane_scrape_brush(), and SCULPT_do_paint_brush().
Definition at line 1942 of file math_matrix.c.
References normalize_v3(), and R.
Referenced by BKE_bone_parent_transform_calc_from_matrices(), and stretchto_evaluate().
Definition at line 1972 of file math_matrix.c.
References copy_v4_v4(), len, and normalize_v3_v3().
Referenced by button2d_draw_intern(), camera_stereo3d_model_matrix(), ED_view3d_camera_lock_sync(), EEVEE_lightprobes_planar_data_from_object(), gpencil_light_pool_populate(), move3d_draw_intern(), obmat_to_viewmat(), OVERLAY_camera_cache_populate(), OVERLAY_lightprobe_cache_populate(), and WIDGETGROUP_light_target_draw_prepare().
Definition at line 1963 of file math_matrix.c.
References copy_v4_v4(), and normalize_v3_v3().
Referenced by eevee_light_setup().
| void orthogonalize_m3 | ( | float | R[3][3], |
| int | axis | ||
| ) |
Make an orthonormal matrix around the selected axis of the given matrix.
| axis | Axis to build the orthonormal basis around. |
Definition at line 1425 of file math_matrix.c.
References BLI_assert, cross_v3_v3v3(), dot_v3v3(), mat3_to_size(), mul_v3_fl(), normalize_v3(), R, and size().
Referenced by idp_poject_surface_normal(), and view3d_interactive_add_calc_plane().
| void orthogonalize_m3_stable | ( | float | R[3][3], |
| int | axis, | ||
| bool | normalize | ||
| ) |
Make an orthonormal matrix around the selected axis of the given matrix, in a way that is symmetric and stable to variations in the input, and preserving the value of the determinant, i.e. the overall volume change.
| axis | Axis to build the orthonormal basis around. |
| normalize | Normalize the matrix instead of preserving volume. |
Definition at line 1659 of file math_matrix.c.
References BLI_assert, normalize(), orthogonalize_stable(), and R.
Definition at line 1775 of file math_matrix.c.
References orthogonalize_m3_zero_axes_impl(), and UNPACK3.
Referenced by invert_m3_m3_safe_ortho(), and ObjectToTransData().
| void orthogonalize_m4 | ( | float | R[4][4], |
| int | axis | ||
| ) |
Make an orthonormal matrix around the selected axis of the given matrix.
| axis | Axis to build the orthonormal basis around. |
Definition at line 1514 of file math_matrix.c.
References BLI_assert, cross_v3_v3v3(), dot_v3v3(), mat4_to_size(), mul_v3_fl(), normalize_v3(), R, and size().
Referenced by gpencil_object_cache_add(), mat4_to_dquat(), and shadow_cascade_random_matrix_set().
| void orthogonalize_m4_stable | ( | float | R[4][4], |
| int | axis, | ||
| bool | normalize | ||
| ) |
Make an orthonormal matrix around the selected axis of the given matrix, in a way that is symmetric and stable to variations in the input, and preserving the value of the determinant, i.e. the overall volume change.
| axis | Axis to build the orthonormal basis around. |
| normalize | Normalize the matrix instead of preserving volume. |
Definition at line 1685 of file math_matrix.c.
References BLI_assert, normalize(), orthogonalize_stable(), and R.
Referenced by armdef_accumulate_matrix(), BKE_bone_parent_transform_calc_from_matrices(), rotlike_evaluate(), and stretchto_evaluate().
Definition at line 1779 of file math_matrix.c.
References orthogonalize_m3_zero_axes_impl(), and UNPACK3.
Referenced by invert_m4_m4_safe_ortho().
| void print_m3 | ( | const char * | str, |
| const float | M[3][3] | ||
| ) |
Definition at line 2744 of file math_matrix.c.
References str.
| void print_m4 | ( | const char * | str, |
| const float | M[4][4] | ||
| ) |
Definition at line 2753 of file math_matrix.c.
References str.
Referenced by armature_finalize_restpose().
Definition at line 3228 of file math_matrix.c.
References A, copy_m3_m4(), copy_m4_m3(), blender::robust_pred::epsilon, invert_m3_m3(), and pseudoinverse_m4_m4().
Referenced by add_pose_transdata(), createTransArmatureVerts(), createTransCursor_image(), createTransCursor_view3d(), createTransCurveVerts(), createTransEdge(), createTransEditVerts(), createTransGPencil_curves(), createTransLatticeVerts(), createTransMBallVerts(), createTransMeshSkin(), and createTransTexspace().
Definition at line 3206 of file math_matrix.c.
References A, blender::robust_pred::epsilon, mul_m4_series, svd_m4(), transpose_m4(), transpose_m4_m4(), V, and zero_m4().
Referenced by pseudoinverse_m3_m3().
Definition at line 2389 of file math_matrix.c.
References mul_v3_fl().
Referenced by loc_rot_size_to_mat3().
Scale a matrix in-place.
Definition at line 2396 of file math_matrix.c.
References mul_v3_fl().
Referenced by BKE_bone_parent_transform_apply(), BKE_bone_parent_transform_calc_from_matrices(), draw_axes(), draw_bone_update_disp_matrix_custom(), draw_bone_update_disp_matrix_default(), gpencil_depth_plane(), gpencil_object_cache_add(), gpencil_uv_transform_get(), gpencil_vfx_shadow(), loc_rot_size_to_mat4(), make_prim_init(), modifyMesh(), OVERLAY_gpencil_cache_init(), OVERLAY_light_cache_populate(), blender::io::gpencil::GpencilImporterSVG::read(), and stretchto_evaluate().
Definition at line 2332 of file math_matrix.c.
References angle(), col, cosf, and sinf.
Referenced by loc_rot_size_to_mat3().
Rotate a matrix in-place.
Definition at line 2352 of file math_matrix.c.
References angle(), BLI_assert, col, cosf, and sinf.
Referenced by cursor_draw_point_with_symmetry(), EEVEE_random_rotation_m4(), gizmo_cage2d_modal(), gpencil_uv_transform_get(), gpencil_vfx_shadow(), GPU_matrix_rotate_2d(), GPU_matrix_rotate_axis(), modifyMesh(), polarview_m4(), blender::io::gpencil::GpencilImporterSVG::read(), SCULPT_cache_calc_brushdata_symm(), and stabilization_data_to_mat4().
Definition at line 2301 of file math_matrix.c.
References R.
Referenced by cloth_filter_apply_forces_task_cb(), deformMatrices(), deformMatricesEM(), and mesh_filter_task_cb().
Definition at line 2309 of file math_matrix.c.
References R.
Referenced by BKE_object_obdata_size_init(), BKE_pose_minmax(), calc_brush_local_mat(), do_clay_strips_brush(), do_clay_thumb_brush(), blender::io::alembic::ABCTransformWriter::do_write(), draw_bone_degrees_of_freedom(), DRW_debug_sphere(), drw_shgroup_bone_envelope(), EEVEE_lightprobes_cube_data_from_object(), followpath_get_tarmat(), GPU_matrix_scale_1f(), modifyVolume(), ob_parcurve(), OVERLAY_bounds(), blender::io::alembic::AbcObjectReader::read_matrix(), reconstructed_camera_scale_set(), SCULPT_do_paint_brush(), and voxel_size_edit_invoke().
| void shuffle_m4 | ( | float | R[4][4], |
| const int | index[4] | ||
| ) |
Definition at line 250 of file math_matrix.c.
Referenced by modifyMesh().
Definition at line 2105 of file math_matrix.c.
Referenced by applyBoneSize(), applyResize(), applySkinResize(), BKE_object_scale_to_mat3(), BKE_pchan_to_mat4(), blend_m3_m3m3(), ElementBoneSize(), loc_eul_size_to_mat4(), loc_eulO_size_to_mat4(), loc_quat_size_to_mat4(), and mat3_polar_decompose().
Definition at line 2118 of file math_matrix.c.
Referenced by BKE_pchan_bbone_spline_compute(), BKE_texture_mapping_init(), UnitConverter::calculate_scale(), camera_stereo3d_model_matrix(), constraintSizeLim(), blender::io::alembic::copy_m44_axis_swap(), TransformReader::dae_scale_to_mat4(), draw_bone_update_disp_matrix_bbone(), ED_view3d_cameracontrol_update(), eevee_volume_object_grids_init(), AnimationImporter::evaluate_animation(), make_duplis_particle_system(), OVERLAY_bounds(), OVERLAY_texture_space(), sculpt_transform_matrices_init(), and stabilization_data_to_mat4().
Definition at line 1080 of file math_matrix.c.
Referenced by apply_spring(), dfdx_spring(), SIM_hair_volume_vertex_grid_forces(), SIM_mass_spring_add_constraint_ndof1(), SIM_mass_spring_add_constraint_ndof2(), SIM_mass_spring_force_spring_bending_hair(), splineik_evaluate_bone(), and spring_grad_dir().
Definition at line 1091 of file math_matrix.c.
Definition at line 2773 of file math_matrix.c.
References A, Freestyle::c, copy_m4_m4(), e, eps, fabsf, hypotf, max_ff(), max_ii(), min_ii(), powf, sqrtf, t, V, zero_m4(), and zero_v4().
Referenced by pseudoinverse_m4_m4().
Definition at line 222 of file math_matrix.c.
References t.
Definition at line 236 of file math_matrix.c.
References t.
Referenced by vpaint_stroke_update_step(), and wpaint_stroke_update_step().
Definition at line 2425 of file math_matrix.c.
References copy_v2_v2(), mul_m3_m3m3(), negate_v2(), and unit_m3().
Referenced by sequencer_image_crop_transform_do_thread().
Scale or rotate around a pivot point, a convenience function to avoid having to do inline.
Since its common to make a scale/rotation matrix that pivots around an arbitrary point.
Typical use case is to make 3x3 matrix, copy to 4x4, then pass to this function.
Definition at line 2411 of file math_matrix.c.
References copy_v3_v3(), mul_m4_m4m4(), negate_v3(), and unit_m4().
Referenced by bmo_rotate_exec(), ED_view3d_win_to_3d_on_plane_with_fallback(), gizmo_cage2d_modal(), and gizmo_cage3d_modal().
Definition at line 2319 of file math_matrix.c.
Referenced by loc_rot_size_to_mat3().
Definition at line 2325 of file math_matrix.c.
Referenced by camera_stereo3d_model_matrix(), camera_view3d_reconstruction(), draw_axes(), draw_bone_degrees_of_freedom(), draw_bone_update_disp_matrix_custom(), draw_bone_update_disp_matrix_default(), DRW_debug_sphere(), dyntopo_detail_size_edit_invoke(), followtrack_evaluate_using_3d_position_camera(), followtrack_evaluate_using_3d_position_object(), gpencil_uv_transform_get(), gpencil_vfx_shadow(), GPU_matrix_translate_3f(), lookat_m4(), modifyMesh(), OVERLAY_gpencil_cache_init(), OVERLAY_volume_extra(), paint_cursor_drawing_setup_cursor_space(), polarview_m4(), SCULPT_cloth_simulation_limits_draw(), SCULPT_do_pose_brush(), SCULPT_layer_brush_height_preview_draw(), sculpt_transform_matrices_init(), view3d_viewmatrix_set(), and wm_xr_pose_to_viewmat().
| void transpose_m3 | ( | float | R[3][3] | ) |
Definition at line 1312 of file math_matrix.c.
Referenced by axis_dominant_v3_to_m3(), axis_dominant_v3_to_m3_negate(), BCMatrix::BCMatrix(), contarget_get_mesh_mat(), getTransformOrientation_ex(), GPU_matrix_normal_get(), Matrix_transpose(), single_axis_convert(), TEST(), vcloud_estimate_transform_v3(), and world_to_root_m3().
Definition at line 1327 of file math_matrix.c.
References BLI_assert, M, and R.
Referenced by calc_deltas(), execute_posetree(), is_uniform_scaled_m3(), and mat3_polar_decompose().
Definition at line 1343 of file math_matrix.c.
References BLI_assert, M, and R.
Referenced by psys_get_dupli_path_transform(), raycastEditMesh(), and raycastMesh().
| void transpose_m4 | ( | float | R[4][4] | ) |
Definition at line 1358 of file math_matrix.c.
Referenced by BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), BKE_texture_mapping_init(), button2d_draw_intern(), camera_frame_fit_data_init(), gpencil_depth_plane(), gpencil_object_cache_add(), Freestyle::BlenderFileLoader::insertShapeNode(), lineart_geometry_object_load(), lineart_main_get_view_vector(), Matrix_transpose(), modifyMesh(), move3d_draw_intern(), pseudoinverse_m4_m4(), psys_vec_rot_to_face(), TEST(), and BCMatrix::transpose().
Definition at line 1384 of file math_matrix.c.
References BLI_assert, M, and R.
Referenced by dist_squared_to_projected_aabb_precalc(), DRW_culling_min_max_test(), drw_sculpt_get_frustum_planes(), UnitConverter::mat4_to_dae(), pseudoinverse_m4_m4(), snap_mesh_polygon(), snap_object_center(), snapArmature(), snapCurve(), snapEditMesh(), snapMesh(), and blender::float4x4::transposed().
| void unit_m2 | ( | float | m[2][2] | ) |
Definition at line 51 of file math_matrix.c.
Referenced by matrix_identity_internal(), and matrix_invert_safe_internal().
| void unit_m3 | ( | float | m[3][3] | ) |
Definition at line 58 of file math_matrix.c.
Referenced by apply_objects_internal(), applyShear(), applyTranslationValue(), armature_bone_primitive_add_exec(), axis_angle_to_mat3(), BKE_bone_parent_transform_calc_from_matrices(), BKE_crazyspace_build_sculpt(), BKE_crazyspace_get_first_deform_matrices_editbmesh(), BKE_curve_deform_co(), BKE_mask_point_parent_matrix_get(), bm_vert_pair_to_matrix(), bmo_scale_exec(), BMO_slot_mat3_get(), cloth_filter_apply_forces_task_cb(), convert_tree(), blender::io::alembic::copy_m44_axis_swap(), crazyspace_init_verts_and_matrices(), blender::io::alembic::create_swapped_rotation_matrix(), createTransCursor_image(), createTransCursor_view3d(), createTransGPencil_strokes(), createTransNlaData(), createTransParticleVerts(), deformStroke(), deformVerts_do(), ed_editnurb_spin(), ED_getTransformOrientationMatrix(), ED_transform_calc_gizmo_stats(), ED_transform_calc_orientation_from_type_ex(), edbm_dupli_extrude_cursor_invoke(), ElementMirror(), execute_posetree(), gizmo_mesh_extrude_refresh(), gizmo_mesh_spin_redo_setup(), initTransform(), initTransInfo(), invert_m3_m3_safe_ortho(), loc_rot_size_to_mat3(), locktrack_evaluate(), markerToTransCurveDataInit(), markerToTransDataInit(), MaskHandleToTransData(), MaskPointToTransData(), mat3_from_axis_conversion(), mat3_from_axis_conversion_single(), matrix_identity_internal(), matrix_invert_safe_internal(), mesh_calc_eigen_matrix(), mesh_filter_task_cb(), meshcache_do(), NodeToTransData(), ObjectToTransData(), PaintCurveConvertHandle(), PaintCurvePointToTransData(), planeMarkerToTransDataInit(), projection_matrix_calc(), restoreTransObjects(), rotation_between_vecs_to_mat3(), SeqToTransData(), SIM_mass_spring_clear_constraints(), SIM_mass_spring_set_rest_transform(), SIM_mass_spring_set_vertex_mass(), snap_curs_to_center_exec(), softbody_reset(), spring_hairbend_estimate_dfdv(), spring_hairbend_estimate_dfdx(), blender::io::alembic::TEST(), blender::bke::tests::TEST(), TEST(), to_scene_linear_matrix(), transform_convert_mesh_islands_calc(), transform_data_ext_rotate(), transform_orientation_matrix_get(), transform_orientations_create_from_axis(), transform_pivot_set_m3(), UVsToTransData(), vcloud_estimate_transform_v3(), vec_roll_to_mat3_normalized(), vectomat(), and view3d_all_exec().
| static void unit_m4 | ( | float | m[4][4] | ) |
Definition at line 1140 of file rct.c.
Referenced by actcon_get_tarmat(), action_flip_pchan(), AnimationImporter::add_bone_animation_sampled(), add_hook_object(), annotation_session_initdata(), AnimationImporter::apply_matrix_curves(), applyarmature_process_selected_recursive(), armature_coords_and_quats_apply(), armdef_get_tarmat(), arrayModifier_doArray(), axis_angle_to_mat4(), BKE_armature_loc_pose_to_bone(), BKE_armature_loc_world_to_pose(), BKE_armature_mat_pose_to_bone_ex(), BKE_bone_parent_transform_calc_from_matrices(), BKE_bone_parent_transform_clear(), BKE_constraint_custom_object_space_get(), BKE_constraint_target_matrix_get(), BKE_constraint_targets_for_solving_get(), BKE_constraints_make_evalob(), BKE_gpencil_instance_modifier_instance_tfm(), BKE_gpencil_layer_transform_matrix_get(), BKE_gpencil_update_layer_transforms(), BKE_lattice_resize(), BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), BKE_object_get_parent_matrix(), BKE_object_obdata_size_init(), BKE_object_workob_calc_parent(), BKE_pose_channel_verify(), BKE_pose_where_is_bone(), BKE_texture_mapping_default(), BKE_texture_mapping_init(), BKE_tracking_camera_get_reconstructed_interpolate(), BKE_volume_grid_transform_matrix(), blo_do_versions_260(), blo_do_versions_270(), blo_do_versions_pre250(), BMO_slot_mat4_get(), bmo_translate_exec(), brush_puff(), C_Matrix_Translation(), AnimationImporter::calc_joint_parent_mat_rest(), calcEdgeSlide_even(), calcEdgeSlide_mval_range(), camera_stereo3d_model_matrix(), childof_clear_inverse_exec(), childof_new_data(), clampto_evaluate(), clampto_get_tarmat(), clip_draw_main(), constraintTransLim(), convert_pose(), convert_tree(), blender::io::alembic::copy_m44_axis_swap(), createTransParticleVerts(), createVertSlideVerts(), cursor_draw_point_with_symmetry(), TransformReader::dae_translate_to_mat4(), damptrack_do_transform(), default_get_tarmat(), default_get_tarmat_full_bbone(), draw_bone_degrees_of_freedom(), draw_unit_state_create(), drawPropCircle(), DRW_debug_modelmat_reset(), DRW_hair_duplimat_get(), drw_viewport_var_init(), ED_armature_join_objects_exec(), ED_object_new_primitive_matrix(), ED_object_parent(), ED_object_parent_clear(), ED_object_parent_set(), ED_transform_calc_gizmo_stats(), edit_armature_coords_and_quats_apply(), eevee_lightbake_cache_create(), EEVEE_lightprobes_cube_data_from_object(), EEVEE_lookdev_draw(), AnimationImporter::evaluate_transform_at_frame(), execute_posetree(), followpath_get_tarmat(), foreach_mouse_hit_key_iter(), FRS_do_stroke_rendering(), blender::nodes::geo_node_collection_info_exec(), blender::nodes::geo_node_object_info_exec(), blender::bke::geometry_set_collect_recursive_collection_instance(), blender::bke::geometry_set_gather_instances(), TransformReader::get_node_mat(), gizmo_axis_draw(), gizmo_cage2d_modal(), gizmo_cage3d_modal(), gizmo_calc_matrix_final_no_offset(), gizmo_empty_image_prop_matrix_get(), gizmo_render_border_prop_matrix_get(), gizmo_window_project_2d(), gizmo_window_project_3d(), gpencil_depth_plane(), gpencil_object_cache_add(), gpencil_point_conversion_init(), gpencil_sculpt_brush_init(), gpencil_session_initdata(), gpencil_uv_transform_get(), gpencil_vfx_shadow(), GPU_matrix_identity_projection_set(), GPU_matrix_identity_set(), GPU_matrix_reset(), GPU_matrix_translate_2f(), GPU_matrix_translate_3f(), GPU_matrix_unproject_precalc(), blender::float4x4::identity(), image_cache_image_add(), IMAGE_cache_init(), image_camera_background_matrix_get(), init_context(), init_meta(), invert_m4_m4_safe(), invert_m4_m4_safe_ortho(), kinematic_get_tarmat(), lineart_gpencil_generate(), loc_eul_size_to_mat4(), loc_eulO_size_to_mat4(), loc_quat_size_to_mat4(), lookat_m4(), make_duplis_collection(), make_duplis_instances_component(), matrix_identity_internal(), matrix_invert_safe_internal(), Matrix_resize_4x4(), mesh_calc_eigen_matrix(), metaball_coords_and_quats_apply(), minmax_evaluate(), modifyMesh(), node_gizmo_calc_matrix_space(), node_gizmo_calc_matrix_space_with_image_dims(), ob_parbone(), ob_parcurve(), ob_parvert3(), object_convert_exec(), object_solver_inverted_matrix(), object_warp_verts_exec(), objectsolver_clear_inverse_exec(), objectsolver_new_data(), orthographic_m4(), OVERLAY_edit_uv_cache_init(), OVERLAY_grid_cache_init(), OVERLAY_relationship_lines(), OVERLAY_texture_space(), parent_noinv_set_exec(), particle_system_minmax(), PE_lasso_select(), PE_minmax(), polarview_m4(), pose_mirror_info_init(), pose_transform_mirror_update(), blender::io::gpencil::GpencilIO::prepare_camera_params(), psys_face_mat(), psys_get_dupli_path_transform(), psys_get_particle_on_path(), psys_get_particle_state(), psys_mat_hair_to_object(), pycon_get_tarmat(), blender::io::gpencil::GpencilImporterSVG::read(), blender::io::alembic::AbcObjectReader::read_matrix(), reconstruct_retrieve_libmv_tracks(), render_cubemap(), SCULPT_brush_test_init(), SCULPT_cache_calc_brushdata_symm(), SCULPT_cloth_simulation_limits_draw(), SCULPT_do_pose_brush(), sculpt_init_mirror_clipping(), SCULPT_layer_brush_height_preview_draw(), sculpt_transform_matrices_init(), set_axis(), set_plane_exec(), setTransformViewMatrices(), shrinkwrap_get_tarmat(), spin_exec(), splineik_evaluate_init(), splineik_get_tarmat(), stabilization_data_to_mat4(), TEST(), tool_generic_create_gizmo(), transform_pivot_set_m4(), AnimationImporter::translate_animation_OLD(), ui_search_menu_create_tooltip(), UI_view2d_view_to_region_m4(), UnitConverter::UnitConverter(), update_mirror_object(), updateDuplicateActionConstraintSettings(), updateDuplicateLocRotConstraintSettings(), uv_map_rotation_matrix_ex(), uv_map_transform(), uvprojectModifier_do(), v2_quad_corners_to_mat4(), vfont_to_curve(), voxel_size_edit_invoke(), warpModifier_do(), WIDGETGROUP_camera_refresh(), WIDGETGROUP_camera_view_draw_prepare(), WIDGETGROUP_light_target_draw_prepare(), WIDGETGROUP_xform_cage_refresh(), wireframe_hair_cache_populate(), WM_gizmo_calc_matrix_final_no_offset(), wm_gizmo_create(), WM_xr_session_state_viewer_pose_matrix_info_get(), workbench_shadow_update(), and workbench_studiolight_data_update().
| void unit_m4_db | ( | double | m[4][4] | ) |
Definition at line 75 of file math_matrix.c.
Referenced by lineart_main_load_geometries(), lineart_matrix_ortho_44d(), and lineart_matrix_perspective_44d().
| void zero_m2 | ( | float | m[2][2] | ) |
Definition at line 36 of file math_matrix.c.
| void zero_m3 | ( | float | m[3][3] | ) |
Definition at line 41 of file math_matrix.c.
Referenced by armature_vert_task_with_dvert(), cross_identity_v3(), end_node_frames(), flush_pixel(), hair_grid_interpolate(), SIM_hair_volume_vertex_grid_forces(), SIM_mass_spring_add_constraint_ndof0(), SIM_mass_spring_force_spring_bending(), SIM_mass_spring_force_spring_bending_hair(), spring_grad_dir(), spring_hairbend_estimate_dfdv(), spring_hairbend_estimate_dfdx(), TEST(), transform_orientations_create_from_axis(), and vcloud_estimate_transform_v3().
| void zero_m4 | ( | float | m[4][4] | ) |
Definition at line 46 of file math_matrix.c.
Referenced by armdef_evaluate(), BKE_texture_mapping_init(), BMO_slot_mat_set(), gizmo_mesh_placement_modal_from_setup(), pseudoinverse_m4_m4(), shuffle_m4(), svd_m4(), and uv_map_rotation_matrix_ex().