Blender
V3.3
|
Go to the source code of this file.
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_m4_m4_db (double m1[4][4], const double 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_m3d_m3 (double m1[3][3], const float m2[3][3]) |
void | copy_m4d_m4 (double m1[4][4], const float m2[4][4]) |
void | copy_m3_m3d (float m1[3][3], const double m2[3][3]) |
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 | mul_m4_m4m4 (float R[4][4], const float A[4][4], const float B[4][4]) |
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 | mul_m3_m3m3 (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_m3_m3m3_uniq (float R[3][3], const float A[3][3], const float B[3][3]) |
void | mul_m4_m4m3 (float R[4][4], const float A[4][4], const float B[3][3]) |
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_m4_m3m4 (float R[4][4], const float A[3][3], const float B[4][4]) |
void | mul_m3_m4m4 (float R[3][3], const float A[4][4], const float B[4][4]) |
void | mul_v2_m3v2 (float r[2], const float m[3][3], const float v[2]) |
void | mul_m3_v2 (const float m[3][3], float r[2]) |
void | mul_m4_v3 (const float M[4][4], float r[3]) |
void | mul_v3_m4v3 (float r[3], const float mat[4][4], const float vec[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 mat[4][4], const float vec[3]) |
void | mul_v2_m2v2 (float r[2], const float mat[2][2], const float vec[2]) |
void | mul_m2_v2 (const float mat[2][2], float vec[2]) |
void | mul_mat3_m4_v3 (const float M[4][4], float r[3]) |
void | mul_v3_mat3_m4v3 (float r[3], const float mat[4][4], const float vec[3]) |
void | mul_v3_mat3_m4v3_db (double r[3], const double mat[4][4], const double vec[3]) |
void | mul_project_m4_v3 (const float mat[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 mat[4][4], const float vec[3]) |
void | mul_v4_m4v4 (float r[4], const float mat[4][4], const float v[4]) |
void | mul_m4_v4 (const float mat[4][4], float r[4]) |
void | mul_v4d_m4v4d (double r[4], const float mat[4][4], const double v[4]) |
void | mul_m4_v4d (const float mat[4][4], double r[4]) |
void | mul_v4_m4v3 (float r[4], const float M[4][4], const float v[3]) |
void | mul_v3_m3v3 (float r[3], const float M[3][3], const float a[3]) |
void | mul_v3_m3v3_db (double r[3], const double M[3][3], const double a[3]) |
void | mul_v2_m3v3 (float r[2], const float M[3][3], const float a[3]) |
void | mul_m3_v3 (const float M[3][3], float r[3]) |
void | mul_m3_v3_db (const double M[3][3], double r[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_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]) |
void | mul_m3_v3_double (const float M[3][3], double r[3]) |
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]) |
float | determinant_m3_array (const float m[3][3]) |
float | determinant_m4_mat3_array (const float m[4][4]) |
double | determinant_m3_array_db (const double m[3][3]) |
bool | invert_m2_m2 (float m1[2][2], const float m2[2][2]) |
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 m[3][3]) |
bool | invert_m3_m3 (float m1[3][3], const float m2[3][3]) |
bool | invert_m4 (float m[4][4]) |
bool | invert_m4_m4_fallback (float inverse[4][4], const float mat[4][4]) |
bool | invert_m4_m4 (float inverse[4][4], const float mat[4][4]) |
void | mul_m4_m4m4_aligned_scale (float R[4][4], const float A[4][4], const float B[4][4]) |
void | mul_m4_m4m4_split_channels (float R[4][4], const float A[4][4], const float B[4][4]) |
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 | orthogonalize_m3 (float R[3][3], int axis) |
void | orthogonalize_m4 (float R[4][4], int axis) |
static void | orthogonalize_stable (float v1[3], float v2[3], float v3[3], bool normalize) |
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 | is_orthogonal_m3 (const float m[3][3]) |
bool | is_orthogonal_m4 (const float m[4][4]) |
bool | is_orthonormal_m3 (const float m[3][3]) |
bool | is_orthonormal_m4 (const float m[4][4]) |
bool | is_uniform_scaled_m3 (const float m[3][3]) |
bool | is_uniform_scaled_m4 (const float m[4][4]) |
void | normalize_m2_ex (float R[2][2], float r_scale[2]) |
void | normalize_m2 (float R[2][2]) |
void | normalize_m2_m2_ex (float R[2][2], const float M[2][2], float r_scale[2]) |
void | normalize_m2_m2 (float R[2][2], const float M[2][2]) |
void | normalize_m3_ex (float R[3][3], float r_scale[3]) |
void | normalize_m3 (float R[3][3]) |
void | normalize_m3_m3_ex (float R[3][3], const float M[3][3], float r_scale[3]) |
void | normalize_m3_m3 (float R[3][3], const float M[3][3]) |
void | normalize_m4_ex (float R[4][4], float r_scale[3]) |
void | normalize_m4 (float R[4][4]) |
void | normalize_m4_m4_ex (float rmat[4][4], const float mat[4][4], float r_scale[3]) |
void | normalize_m4_m4 (float rmat[4][4], const float mat[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_m4 (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]) |
float | mat3_to_size_max_axis (const float M[3][3]) |
float | mat4_to_size_max_axis (const float M[4][4]) |
void | mat4_to_size_fix_shear (float size[3], const float M[4][4]) |
float | mat3_to_volume_scale (const float mat[3][3]) |
float | mat4_to_volume_scale (const float mat[4][4]) |
float | mat3_to_scale (const float mat[3][3]) |
float | mat4_to_scale (const float mat[4][4]) |
float | mat4_to_xy_scale (const float M[4][4]) |
void | mat3_to_rot_size (float rot[3][3], float size[3], const float mat3[3][3]) |
void | mat4_to_rot (float rot[3][3], const float wmat[4][4]) |
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 | scale_m3_fl (float R[3][3], float scale) |
void | scale_m4_fl (float R[4][4], float scale) |
void | scale_m4_v2 (float R[4][4], const float scale[2]) |
void | translate_m4 (float mat[4][4], float Tx, float Ty, float Tz) |
void | rotate_m4 (float mat[4][4], const char axis, const float angle) |
void | rescale_m4 (float mat[4][4], const float scale[3]) |
void | transform_pivot_set_m4 (float mat[4][4], const float pivot[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 | 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 rotOrder) |
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[3], const float angle, const float size[3]) |
void | print_m3 (const char *str, const float m[3][3]) |
void | print_m4 (const char *str, 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 | zero_axis_bias_m4 (float mat[4][4]) |
void | invert_m4_m4_safe (float Ainv[4][4], const float A[4][4]) |
void | BLI_space_transform_from_matrices (SpaceTransform *data, const float local[4][4], const float target[4][4]) |
void | BLI_space_transform_global_from_matrices (SpaceTransform *data, const float local[4][4], const float target[4][4]) |
void | BLI_space_transform_apply (const SpaceTransform *data, float co[3]) |
void | BLI_space_transform_invert (const SpaceTransform *data, float co[3]) |
void | BLI_space_transform_apply_normal (const SpaceTransform *data, float no[3]) |
void | BLI_space_transform_invert_normal (const SpaceTransform *data, float no[3]) |
Macro helpers for: mul_m3_series | |
void | _va_mul_m3_series_3 (float r[3][3], const float m1[3][3], const float m2[3][3]) |
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]) |
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]) |
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]) |
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]) |
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]) |
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]) |
Macro helpers for: mul_m4_series | |
void | _va_mul_m4_series_3 (float r[4][4], const float m1[4][4], const float m2[4][4]) |
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]) |
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]) |
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]) |
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]) |
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]) |
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]) |
Orthogonalize Matrix Zeroed Axes | |
Set any zeroed axes to an orthogonal vector in relation to the other axes. Typically used so matrix inversion can be performed.
| |
static bool | orthogonalize_m3_zero_axes_impl (float *mat[3], const float unit_length) |
bool | orthogonalize_m3_zero_axes (float m[3][3], const float unit_length) |
bool | orthogonalize_m4_zero_axes (float m[4][4], const float unit_length) |
Invert (Safe Orthographic) | |
Invert the matrix, filling in zeroed axes using the valid ones where possible. Unlike invert_m4_m4_safe set degenerate axis unit length instead of adding a small value, which has the results in:
| |
void | invert_m4_m4_safe_ortho (float Ainv[4][4], const float A[4][4]) |
void | invert_m3_m3_safe_ortho (float Ainv[3][3], const float A[3][3]) |
Definition at line 537 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 541 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 549 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 559 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 571 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 585 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 601 of file math_matrix.c.
References mul_m3_m3m3(), and r.
Definition at line 626 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 630 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 638 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 648 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 660 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 674 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 690 of file math_matrix.c.
References mul_m4_m4m4(), and r.
Definition at line 1032 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 1043 of file math_matrix.c.
Referenced by add_weighted_dq_dq().
Definition at line 1975 of file math_matrix.c.
References BLI_assert, M, and R.
Referenced by adjoint_matrix_n(), and invert_m2_m2().
Definition at line 1984 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 2000 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 2383 of file math_matrix.c.
References interp_qt_qtqt(), interp_v3_v3v3(), mat3_normalized_to_quat(), mat3_to_rot_size(), mul_m3_m3m3(), usdtokens::out(), quat_to_mat3(), size_to_mat3(), and src.
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 2409 of file math_matrix.c.
References interp_qt_qtqt(), interp_v3_v3v3(), loc_quat_size_to_mat4(), mat3_normalized_to_quat(), mat4_to_loc_rot_size(), usdtokens::out(), and src.
Referenced by BKE_tracking_camera_get_reconstructed_interpolate(), Matrix_lerp(), target_callback(), and warpModifier_do().
void BLI_space_transform_apply | ( | const SpaceTransform * | data, |
float | co[3] | ||
) |
Definition at line 3232 of file math_matrix.c.
References data, and mul_v3_m4v3().
void BLI_space_transform_apply_normal | ( | const SpaceTransform * | data, |
float | no[3] | ||
) |
Definition at line 3242 of file math_matrix.c.
References data, mul_mat3_m4_v3(), and normalize_v3().
void BLI_space_transform_from_matrices | ( | struct SpaceTransform * | data, |
const float | local[4][4], | ||
const float | target[4][4] | ||
) |
Global-invariant transform.
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 3212 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 | ( | struct 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 3222 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 SpaceTransform * | data, |
float | co[3] | ||
) |
Definition at line 3237 of file math_matrix.c.
References data, and mul_v3_m4v3().
void BLI_space_transform_invert_normal | ( | const SpaceTransform * | data, |
float | no[3] | ||
) |
Definition at line 3248 of file math_matrix.c.
References data, mul_mat3_m4_v3(), and normalize_v3().
Definition at line 1425 of file math_matrix.c.
References compare_v4v4().
Referenced by EEVEE_temporal_sampling_init(), blender::eevee::operator==(), and select_cache_init().
Definition at line 66 of file math_matrix.c.
Referenced by matrix_invert_safe_internal().
Definition at line 127 of file math_matrix.c.
Definition at line 71 of file math_matrix.c.
Referenced by add_pose_transdata(), addMatrixSpace(), applyBoneSize(), applyResize(), applyShear(), applySkinResize(), applyTrackballValue(), 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(), connection_node_frames(), connection_node_mat(), copy_bone_transform(), createTransArmatureVerts(), createTransCurveVerts(), createTransEdge(), createTransGPencil_curves(), createTransGPencil_strokes(), 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(), Matrix_to_quaternion(), mul_m3_m3_post(), mul_m3_m3_pre(), mul_m3_m3m4(), mul_m3_m4m3(), mul_m4_m3m4(), mul_m4_m4m3(), mul_v3m3_dq(), ObjectToTransData(), 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(), tranformViewUpdate(), transdata_elem_shear(), transdata_elem_skin_resize(), transform_convert_mesh_crazyspace_transdata_set(), transform_orientation_matrix_get(), transform_orientations_current_set(), v3d_cursor_snap_update(), vcloud_estimate_transform_v3(), VertsToTransData(), view3d_interactive_add_calc_snap(), view3d_interactive_add_modal(), and world_to_root_m3().
Definition at line 203 of file math_matrix.c.
References float().
Referenced by BKE_tracking_homography_between_two_quads(), and track_plane_from_existing_motion().
Definition at line 87 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(), createTransMeshVertCData(), 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_object(), gimbal_axis_pose(), 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(), init_curve_deform(), init_TransDataContainers(), initFlyInfo(), initResize(), 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(), Matrix_to_quaternion(), 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(), tranformViewUpdate(), blender::nodes::transform_curve_edit_hints(), uv_select_similar_edge_exec(), uv_select_similar_face_exec(), uv_select_similar_vert_exec(), v3d_cursor_poject_surface_normal(), v3d_cursor_snap_update(), 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 165 of file math_matrix.c.
Referenced by blender::bke::tests::EXPECT_M3_ORTHOGONAL().
Definition at line 142 of file math_matrix.c.
Definition at line 102 of file math_matrix.c.
Referenced by apply_objects_internal(), applyarmature_set_edit_position(), applyRotationMatrix(), applyTrackballMatrix(), 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(), C_Matrix_LocRotScale(), camera_frame_fit_data_init(), blender::io::usd::convert_to_z_up(), blender::io::alembic::copy_m44_axis_swap(), 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(), blender::ed::sculpt_paint::SlideOperationExecutor::get_slide_transform(), gizmo_axis_draw(), gizmo_mesh_placement_modal_from_setup(), blender::io::stl::importer_main(), 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(), blender::io::obj::transform_object(), v3d_cursor_snap_draw_fn(), view3d_ob_drop_matrix_from_snap(), where_is_ik_bone(), WIDGETGROUP_tool_generic_refresh(), WIDGETGROUP_xform_cage_refresh(), and wm_xr_fly_compute_turn().
Definition at line 77 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(), apply_objects_internal(), 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_mat_convertspace(), 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_copy_settings(), 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_apply_parent_inverse(), BKE_object_eval_parent(), BKE_object_get_parent_matrix(), 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_pchan_minmax(), 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(), 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(), drawPropCircle(), drawSnapping(), drw_call_matrix_init(), DRW_debug_m4_as_bbox(), DRW_debug_modelmat(), DRW_debug_sphere(), DRW_draw_depth_object(), DRW_hair_duplimat_get(), DRW_view_persmat_get(), DRW_view_update(), DRW_view_viewmat_get(), DRW_view_winmat_get(), drw_volume_object_grids_init(), drw_volume_object_mesh_init(), dvar_eval_locDiff(), dynamicPaint_brushMeshCalculateVelocity(), dynamicPaint_brushObjectCalculateVelocity(), dynamicPaint_generateBakeData(), dyntopo_detail_size_edit_invoke(), 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_array_m4(), ED_object_xform_skip_child_container_item_ensure(), ED_transform_calc_gizmo_stats(), ED_view3d_cameracontrol_update(), ED_view3d_cursor_snap_draw_util(), 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_curves_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_modal(), gizmo_move_matrix_basis_get(), gpencil_brush_grab_apply_cached(), GPENCIL_draw_object(), gpencil_light_pool_populate(), gpencil_paint_initstroke(), gpencil_sculpt_brush_init(), 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(), lineart_main_try_generate_shadow(), 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(), nearest_world_object_fn(), 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(), OVERLAY_relationship_lines(), 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(), sculpt_transform_radius_elastic(), 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_cursor_snap_update(), v3d_object_dimension_buts(), view3d_camera_to_view_selected_impl(), 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(), blender::ed::space_node::WIDGETGROUP_node_corner_pin_draw_prepare(), WIDGETGROUP_xform_cage_refresh(), wireframe_hair_cache_populate(), WM_gizmo_calc_matrix_final_params(), wm_xr_fly_compute_turn(), wm_xr_grab_compute(), WM_xr_session_state_viewer_pose_matrix_info_get(), and workbench_antialiasing_engine_init().
Definition at line 82 of file math_matrix.c.
Referenced by lineart_main_load_geometries(), and lineart_main_try_generate_shadow().
Definition at line 180 of file math_matrix.c.
Referenced by lineart_object_load_single_instance(), and projmat_dimensions_db().
Definition at line 2046 of file math_matrix.c.
References Freestyle::a, usdtokens::b(), and Freestyle::c.
Referenced by determinant_m3(), invert_m2_m2(), 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 2052 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 1098 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 1112 of file math_matrix.c.
Referenced by blender::bke::tests::EXPECT_M3_ORTHOGONAL().
Definition at line 2063 of file math_matrix.c.
References determinant_m3().
Referenced by mat4_to_dquat(), matrix_determinant_internal(), matrix_invert_safe_internal(), and blender::nodes::transform_volume().
Definition at line 1105 of file math_matrix.c.
Referenced by mat4_to_volume_scale().
Definition at line 2525 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 2531 of file math_matrix.c.
References equals_v4v4().
Referenced by BKE_gpencil_prepare_eval_data(), BKE_gpencil_update_layer_transforms(), dynamicPaint_surfaceHasMoved(), ED_gpencil_reset_layers_parent(), ED_object_xform_array_m4(), EEVEE_motion_blur_cache_populate(), object_apply_mat4_with_protect(), and workbench_antialiasing_engine_init().
Definition at line 3119 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 2436 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 ElementRotation_ex(), 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 2481 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().
Definition at line 1119 of file math_matrix.c.
References adjoint_m2_m2(), and determinant_m2().
Referenced by GEO_uv_parametrizer_average().
Definition at line 1171 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(), knife_constrain_axis(), move3d_get_translate(), multires_disp_run_cb(), multiresModifier_prepare_join(), sculpt_update_object(), set_axis(), setup_vertex_point(), blender::nodes::node_shader_vector_rotate_cc::sh_node_vector_rotate_euler(), transform_convert_mesh_islands_calc(), and view3d_ruler_item_mousemove().
Definition at line 1135 of file math_matrix.c.
References copy_m3_m3(), blender::robust_pred::epsilon, and invert_m3_m3_ex().
Definition at line 1180 of file math_matrix.c.
References Freestyle::a, adjoint_m3_m3(), usdtokens::b(), 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_crazyspace_api_displacement_to_original(), 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(), blender::float3x3::inverted(), 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 1144 of file math_matrix.c.
References Freestyle::a, adjoint_m3_m3(), usdtokens::b(), BLI_assert, determinant_m3_array(), blender::robust_pred::epsilon, fabsf, and LIKELY.
Referenced by invert_m3_ex().
Definition at line 3199 of file math_matrix.c.
References A, copy_m3_m3(), invert_m3_m3(), orthogonalize_m3_zero_axes(), unit_m3(), and UNLIKELY.
Referenced by createTransGPencil_strokes(), ED_gpencil_join_objects_exec(), ObjectToTransData(), tranformViewUpdate(), and transform_orientations_current_set().
Definition at line 1206 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_apply_parent_inverse(), 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(), gpencil_depth_plane(), gpencil_light_pool_populate(), gpencil_object_cache_add(), GPU_matrix_bind(), make_duplis_particle_system(), object_solver_inverted_matrix(), object_transform_to_mouse_exec(), pose_mirror_info_init(), SCULPT_do_multiplane_scrape_brush(), sequencer_image_crop_transform_matrix(), sequencer_thumbnail_transform(), set_axis(), set_plane_exec(), shrinkwrap_get_tarmat(), AnimationImporter::translate_animation_OLD(), warpModifier_do(), wireframe_hair_cache_populate(), wm_xr_fly_compute_turn(), wm_xr_grab_compute(), and wm_xr_grab_compute_bimanual().
Definition at line 1287 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(), apply_layer_settings(), AnimationImporter::apply_matrix_curves(), apply_objects_internal(), 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_apply_parent_inverse(), 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(), cloth_brush_solve_collision(), cloth_to_object(), convert_pose(), convert_tree(), blender::io::alembic::create_transform_matrix(), createTransParticleVerts(), cuboid_do(), curve_draw_event_add(), curve_draw_exec(), deflect_emitter_iter(), deformStroke(), deformVerts_do(), 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(), 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_bake_grease_pencil_animation_exec(), gpencil_brush_grab_apply_cached(), gpencil_paint_initstroke(), gpencil_primitive_set_initdata(), GPENCIL_render_init(), gpencil_sculpt_brush_init(), 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(), lineart_main_get_view_vector(), lineart_main_load_geometries(), lineart_main_try_generate_shadow(), lineart_object_load_single_instance(), 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(), nearest_world_tree(), 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_clay_strips_brush(), SCULPT_do_clay_thumb_brush(), 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(), blender::eevee::Camera::sync(), transform_convert_clip_mirror_modifier_apply(), AnimationImporter::translate_animation_OLD(), update_location_for_2d_curve(), 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 1215 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 3153 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 zeroed.
Definition at line 3188 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(), and ED_mesh_join_objects_exec().
Definition at line 2502 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(), Matrix_is_negative_get(), Matrix_to_quaternion(), and Quaternion_rotate().
Definition at line 2509 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(), blender::float4x4::is_negative(), Matrix_is_negative_get(), object_where_is_calc_ex(), transform_evaluate(), and unwrap_exec().
Definition at line 1779 of file math_matrix.c.
References dot_v3v3(), and fabsf.
Referenced by is_orthonormal_m3(), and Matrix_is_orthogonal_axis_vectors_get().
Definition at line 1794 of file math_matrix.c.
References dot_v4v4(), and fabsf.
Referenced by is_orthonormal_m4(), and Matrix_is_orthogonal_axis_vectors_get().
Definition at line 1809 of file math_matrix.c.
References dot_v3v3(), fabsf, and is_orthogonal_m3().
Referenced by mat4_to_dquat(), and Matrix_is_orthogonal_get().
Definition at line 1826 of file math_matrix.c.
References dot_v4v4(), fabsf, and is_orthogonal_m4().
Referenced by Matrix_is_orthogonal_get().
Definition at line 1843 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().
Definition at line 1867 of file math_matrix.c.
References copy_m3_m4(), is_uniform_scaled_m3(), and t.
Referenced by BKE_curve_transform_ex().
Definition at line 2516 of file math_matrix.c.
References is_zero_v3().
Definition at line 2520 of file math_matrix.c.
References is_zero_v4().
Referenced by bmo_transform_exec(), EEVEE_motion_blur_cache_populate(), EEVEE_motion_blur_curves_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[3], | ||
const float | angle, | ||
const float | size[3] | ||
) |
Definition at line 2620 of file math_matrix.c.
References angle(), axis_angle_to_quat(), loc_quat_size_to_mat4(), R, and size().
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 2547 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(), collection_drop_exec(), 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], | ||
short | order | ||
) |
Make a 4x4 matrix out of 3 transform components. Matrices are made in the order: scale * rot * loc
Definition at line 2571 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 2596 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(), and loc_axisangle_size_to_mat4().
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 2537 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(), mul_m4_m4m4_split_channels(), rotlike_evaluate(), seq_image_transform_quad_get_ex(), sequencer_image_crop_transform_matrix(), sequencer_thumbnail_transform(), and transform_evaluate().
Definition at line 1054 of file math_matrix.c.
Referenced by pchan_deform_accumulate(), and splineik_evaluate_bone().
Definition at line 1065 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 2270 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 2202 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 2176 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 2131 of file math_matrix.c.
References len_v3(), M, and size().
Referenced by apply_targetless_ik(), ElementBoneSize(), ElementResize(), orthogonalize_m3(), transdata_elem_skin_resize(), and where_is_ik_bone().
Return the largest scale on any axis, the equivalent of calling:
.. without 2x unnecessary sqrtf
calls.
Definition at line 2145 of file math_matrix.c.
References len_squared_v3(), M, max_fff(), and sqrtf.
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 2166 of file math_matrix.c.
References determinant_m3_array().
Definition at line 2253 of file math_matrix.c.
References mat3_normalized_to_quat(), mat4_to_loc_rot_size(), rot, and size().
Referenced by AnimationImporter::apply_matrix_curves(), and BCMatrix::set_transform().
Definition at line 2235 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_actions_update(), wm_xr_session_base_pose_calc(), wm_xr_session_controller_pose_calc(), and wm_xr_session_state_update().
Definition at line 2224 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(), mul_m4_m4m4_split_channels(), object_convert_exec(), object_preview_camera_create(), ObjectToTransData(), rotlike_evaluate(), and transform_evaluate().
Definition at line 2214 of file math_matrix.c.
References is_negative_m3(), negate_m3(), normalize_v3_v3(), rot, and UNLIKELY.
Definition at line 2185 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(), button2d_draw_intern(), 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(), gizmo_arrow_test_select(), gizmo_button2d_bounds(), 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 blender::draw::statvis_calc_thickness().
Definition at line 2138 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(), pchan_culling_test_bbone(), rotlimit_evaluate(), samevolume_evaluate(), blender::float4x4::scale(), sizelike_evaluate(), sizelimit_evaluate(), trackto_evaluate(), transform_evaluate(), AnimationImporter::translate_animation_OLD(), unwrap_exec(), view3d_ob_drop_matrix_from_snap(), visualkey_get_values(), voxel_size_edit_invoke(), 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 2155 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().
Only the first 3 axes are used.
Definition at line 2150 of file math_matrix.c.
References len_squared_v3(), M, max_fff(), and sqrtf.
Referenced by pchan_culling_test_bbone(), and pchan_culling_test_envelope().
Definition at line 2171 of file math_matrix.c.
References determinant_m4_mat3_array().
Referenced by BKE_bone_parent_transform_calc_from_matrices(), mat4_to_size_fix_shear(), and sizelike_evaluate().
Return 2D scale (in XY plane) of given mat4.
Definition at line 2194 of file math_matrix.c.
References float(), len_v3(), M, M_SQRT1_2, and mul_mat3_m4_v3().
Definition at line 785 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 956 of file math_matrix.c.
References R.
Referenced by armature_vert_task_with_dvert(), dfdv_damp(), dfdx_spring(), 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 409 of file math_matrix.c.
References A, B, BLI_assert, copy_m3_m3(), mul_m3_m3m3_uniq(), and R.
Referenced by mul_m3_m3m3(), object_preview_camera_create(), and blender::float3x3::operator*=().
Definition at line 401 of file math_matrix.c.
References A, B, BLI_assert, copy_m3_m3(), mul_m3_m3m3_uniq(), and R.
Referenced by ED_transform_calc_gizmo_stats(), knife_constrain_axis(), mul_m3_m3m3(), and view3d_ruler_item_mousemove().
Definition at line 388 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(), apply_objects_internal(), apply_targetless_ik(), applyAlign(), applyAxisConstraintSize(), applyObjectConstraintRot(), applyObjectConstraintSize(), 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(), colormanage_load_config(), blender::io::alembic::copy_m44_axis_swap(), createTransArmatureVerts(), drawObjectConstraint(), ED_armature_edit_transform(), ed_editnurb_spin(), ED_object_new_primitive_matrix(), EEVEE_lookdev_cache_init(), ElementBoneSize(), ElementMirror(), ElementResize(), ElementRotation_ex(), Euler_rotate(), execute_posetree(), blender::nodes::node_fn_rotate_euler_cc::get_multi_function(), gimbal_axis_object(), gimbal_axis_pose(), gizmo_axis_draw(), gizmo_mesh_spin_redo_update_orient_axis(), interp_m3_m3m3(), legacy_vec_roll_to_mat3_normalized(), 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(), projection_matrix_calc(), Quaternion_rotate(), root_to_world_m3(), rotate_eul(), rotate_eulO(), rotlike_evaluate(), splineik_evaluate_bone(), transdata_elem_skin_resize(), transform_convert_mesh_crazyspace_transdata_set(), transform_data_ext_rotate(), transform_evaluate(), vcloud_estimate_transform_v3(), vec_roll_to_mat3_normalized(), vfont_to_curve(), and world_to_root_m3().
Special matrix multiplies
R <-- AB
, R is neither A nor BR <-- AR
R <-- RB
. Definition at line 417 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(), mul_m4_m4m4_aligned_scale(), and mul_m4_m4m4_split_channels().
R = A * B
, ignore the elements on the 4th row/column of A.
Definition at line 454 of file math_matrix.c.
References A, B, copy_m3_m3(), copy_m4_m4(), and R.
R = A * B
, ignore the elements on the 4th row/column of B.
Definition at line 477 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 520 of file math_matrix.c.
Referenced by snap_selected_to_location(), and splineik_evaluate_bone().
Definition at line 724 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 926 of file math_matrix.c.
References M, mul_v3_m3v3(), r, and UNPACK3.
Referenced by apply_objects_internal(), applyAxisConstraintVec(), applyFaceNearest(), applyFaceProject(), applyGridAbsolute(), applyObjectConstraintVec(), armature_calc_roll_exec(), armature_click_extrude_exec(), BKE_mesh_remap_calc_polys_from_mesh(), BKE_mesh_transform(), bmesh_test_dist_add(), bmo_spin_exec(), calc_bbox(), calc_distanceCurveVerts(), calc_overlap(), blender::io::obj::OBJMesh::calc_poly_normal(), cloth_filter_apply_forces_task_cb(), 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_srgb_to_scene_linear_v3(), initFlyInfo(), blender::geometry::interpolate_position_with_interpolation(), 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(), blender::math::rotate_around_axis(), blender::nodes::node_geo_curve_primitive_arc_cc::rotate_vector_around_axis(), rotateflagNurb(), RotationBetween(), SCULPT_cursor_geometry_info_update(), sculpt_flush_pbvhvert_deform(), sculpt_gesture_context_init_common(), sculpt_update_cache_invariants(), blender::nodes::node_shader_vector_rotate_cc::sh_node_vector_rotate_around_axis(), blender::nodes::node_shader_vector_rotate_cc::sh_node_vector_rotate_euler(), snap_curs_to_sel_ex(), snap_sel_to_grid_exec(), snap_selected_to_location(), blender::io::obj::OBJMesh::store_normal_coords_and_indices(), transdata_elem_bend(), transdata_elem_push_pull(), transdata_elem_shear(), transdata_elem_to_sphere(), transdata_elem_translate(), transform_snap_increment_ex(), tri_to_quat_ex(), Vector_rotate(), viewops_data_create(), voxel_size_edit_invoke(), vwpaint_update_cache_invariants(), walkApply(), blender::compositor::warp_coord(), and WIDGETGROUP_xform_cage_refresh().
Definition at line 931 of file math_matrix.c.
References M, mul_v3_m3v3_db(), r, and UNPACK3.
Referenced by BLI_quadric_optimize().
Definition at line 967 of file math_matrix.c.
References R.
Referenced by add_weighted_dq_dq(), armdef_evaluate(), and normalize_dq().
Definition at line 500 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 380 of file math_matrix.c.
References A, B, BLI_assert, copy_m4_m4(), mul_m4_m4m4_uniq(), and R.
Referenced by apply_objects_internal(), BKE_object_apply_parent_inverse(), dyntopo_detail_size_edit_invoke(), GPU_matrix_mul(), mul_m4_m4m4(), blender::nodes::node_geo_collection_info_cc::node_geo_exec(), blender::float4x4::operator*=(), SCULPT_do_pose_brush(), and voxel_size_edit_invoke().
Definition at line 372 of file math_matrix.c.
References A, B, BLI_assert, copy_m4_m4(), mul_m4_m4m4_uniq(), and R.
Referenced by blender::ed::sculpt_paint::SlideOperationExecutor::get_slide_transform(), make_duplis_geometry_set_impl(), mul_m4_m4m4(), blender::nodes::node_geo_collection_info_cc::node_geo_exec(), blender::nodes::transform_volume(), and voxel_size_edit_invoke().
Definition at line 434 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(), draw_bone_update_disp_matrix_custom(), OVERLAY_gpencil_cache_init(), set_axis(), and single_axis_convert().
Definition at line 259 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(), applyRotationMatrix(), applyTrackballMatrix(), 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_camera_object_dof_distance(), BKE_constraint_apply_for_object(), BKE_constraint_apply_for_pose(), 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_apply_parent_inverse(), BKE_object_eval_parent(), BKE_object_get_parent_matrix(), 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(), 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(), 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_draw_spheres(), DRW_debug_sphere(), DRW_hair_duplimat_get(), drw_shgroup_bone_axes(), drw_shgroup_bone_box(), drw_shgroup_bone_custom_empty(), drw_shgroup_bone_custom_mesh_wire(), drw_shgroup_bone_custom_solid_mesh(), drw_shgroup_bone_octahedral(), drw_shgroup_bone_point(), drw_shgroup_custom_bone_curve(), 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_array_m4(), 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(), 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(), AnimationImporter::get_joint_rest_mat(), TransformReader::get_node_mat(), get_quick_mesh(), gizmo2d_xform_draw_prepare(), 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_verts_from_editmesh(), make_child_duplis_verts_from_mesh(), make_dmats(), make_dupli(), make_duplis_collection(), make_duplis_font(), make_duplis_geometry_set_impl(), 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_transform_to_mouse_exec(), 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(), blender::io::usd::USDXformReader::read_matrix(), reconstruct_retrieve_libmv_tracks(), reconstructed_camera_scale_set(), remap_hair_emitter(), render_cubemap(), BCQuat::rotate_to(), SCULPT_do_clay_strips_brush(), SCULPT_do_clay_thumb_brush(), 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(), blender::eevee::Camera::sync(), target_callback(), transform_convert_clip_mirror_modifier_apply(), transform_pivot_set_m4(), AnimationImporter::translate_animation_OLD(), translike_evaluate(), update_mirror_object(), USD_get_transform(), uvprojectModifier_do(), vertex_dupli(), view3d_viewmatrix_set(), vpaint_stroke_update_step_intern(), 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(), wm_xr_fly_compute_turn(), wm_xr_grab_compute(), wm_xr_grab_compute_bimanual(), wm_xr_navigation_fly_modal(), wm_xr_navigation_grab_apply(), wm_xr_navlocks_apply(), wm_xr_session_actions_update(), wm_xr_session_controller_pose_calc(), wm_xr_session_state_update(), 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.
NOTE: this effectively takes output location from simple multiplication, and uses mul_m4_m4m4_split_channels for rotation and scale.
Definition at line 1298 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 317 of file math_matrix.c.
References A, B, BLI_assert, ELEM, and R.
Separately combines location, rotation and scale of the input matrices.
Definition at line 1314 of file math_matrix.c.
References A, add_v3_v3v3(), B, loc_rot_size_to_mat4(), mat4_to_loc_rot_size(), mul_m3_m3m3_uniq(), mul_v3_v3v3(), and R.
Referenced by actcon_evaluate(), and translike_evaluate().
Definition at line 272 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 729 of file math_matrix.c.
Referenced by add_vertex_exec(), add_verts_to_dgroups(), apply_curve_transform(), applyarmature_process_selected_recursive(), applyFaceNearest(), applyFaceProject(), applyGridAbsolute(), 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_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_ortho_extent(), calc_point_from_barycentric_cage(), calc_point_from_barycentric_extrusion(), calc_sculpt_plane(), blender::io::obj::OBJMesh::calc_vertex_coords(), calculate_autoscale_factor(), calculateCenterActive(), camera_view3d_reconstruction(), 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_init_data(), 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_mesh_knife(), 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_window_project_2d(), gizmo_window_project_3d(), globallen(), gpencil_add_verts_to_dgroups(), gpencil_bake_grease_pencil_animation_exec(), 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_bm_tri_cagecos_get_worldspace(), 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(), 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_elastic_transform_task_cb(), sculpt_face_sets_change_visibility_exec(), SCULPT_raycast_init(), sculpt_topology_update(), sculpt_transform_task_cb(), seq_image_transform_quad_get_ex(), 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(), transform_convert_clip_mirror_modifier_apply(), update_location_for_2d_curve(), 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_cursor_plane_draw_grid(), v3d_editvertex_buts(), vert_slide_snap_apply(), blender::io::obj::OBJCurve::vertex_coordinates(), 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 862 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_2fv(), GPU_matrix_project_3fv(), 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 883 of file math_matrix.c.
References mul_v4d_m4v4d(), and r.
Definition at line 344 of file math_matrix.c.
References A, B, BLI_assert, ELEM, and R.
Referenced by lineart_main_load_geometries(), lineart_main_try_generate_shadow(), and lineart_object_load_single_instance().
Definition at line 978 of file math_matrix.c.
References R.
Referenced by add_primitive_monkey_exec(), BKE_bone_parent_transform_calc_from_matrices(), 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 790 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(), deformStroke(), 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(), 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_ob_drop_matrix_from_snap(), view3d_viewmatrix_set(), walk_ray_cast(), and workbench_studiolight_data_update().
Definition at line 820 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 936 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 946 of file math_matrix.c.
Referenced by calc_point_from_barycentric_extrusion(), displaceModifier_do_task(), face_to_plane(), knife_snap_angle_relative(), 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(), blender::draw::statvis_calc_overhang(), and stroke_elem_project_fallback().
Definition at line 777 of file math_matrix.c.
Referenced by mul_m2_v2(), snap_v2_angle(), and stitch_uv_rotate().
Definition at line 711 of file math_matrix.c.
References copy_v2_v2(), mul_v3_m3v3(), r, and v.
Referenced by MaskHandleToTransData(), MaskPointToTransData(), and mul_m3_v2().
Definition at line 917 of file math_matrix.c.
References Freestyle::a, copy_v3_v3(), M, r, and t.
Referenced by BKE_mesh_remap_calc_polys_from_mesh(), 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_vert_interp_from_face(), bmesh_calc_tessellation_for_face_beauty(), bmesh_calc_tessellation_for_face_impl(), C_BVHTree_FromPolygons(), blender::io::obj::fixup_invalid_polygon(), mesh_calc_tessellation_for_face_impl(), mesh_tessface_calc(), normalize_v2_m3_v3v3(), p_add_ngon(), poly_rotate_plane(), projected_boundary_area(), and smart_project_exec().
Definition at line 769 of file math_matrix.c.
Referenced by mul_v2_project_m4_v3().
Definition at line 841 of file math_matrix.c.
References fabsf, mul_project_m4_v3_zfac(), mul_v2_m4v3(), r, and w().
Referenced by blender::io::gpencil::GpencilIO::gpencil_3D_point_to_render_space(), and uvprojectModifier_do().
Definition at line 897 of file math_matrix.c.
References Freestyle::a, copy_v3_v3(), M, r, and t.
Referenced by apply_tangmat_callback(), applyNormalRotation(), applyTranslation(), applyTranslationMatrix(), assign_final_coords_from_mdisps(), assign_final_elements_from_orig_mdisps(), average_read_displacement_object(), BKE_crazyspace_api_displacement_to_deformed(), BKE_crazyspace_api_displacement_to_original(), BKE_gpencil_stroke_stretch(), 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_colormanagement_aces_to_scene_linear(), IMB_colormanagement_rec709_to_scene_linear(), IMB_colormanagement_scene_linear_to_aces(), IMB_colormanagement_scene_linear_to_rec709(), IMB_colormanagement_scene_linear_to_srgb_v3(), IMB_colormanagement_scene_linear_to_xyz(), IMB_colormanagement_xyz_to_scene_linear(), initResize(), mesh_init_origspace(), modifyMesh(), mul_m3_v3(), mul_v2_m3v2(), multires_disp_run_cb(), multires_reshape_apply_base_update_mesh_coords(), nearest_world_tree(), 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 907 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 739 of file math_matrix.c.
Referenced by add_hook_object(), add_vertex_invoke(), add_verts_to_dgroups(), annotation_stroke_convertcoords(), apply_layer_settings(), 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_pchan_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(), build_sequential(), bundle_midpoint(), cage3d_draw_box_interaction(), cage3d_draw_circle_handles(), calc_local_clipping(), calc_local_y(), calc_multiplane_scrape_surface_task_cb(), calc_point_weight_by_distance(), 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(), extrude_points_from_selected_vertices(), face_to_plane(), followtrack_evaluate_using_2d_position(), followtrack_project_to_depth_object_if_needed(), foreach_display_point_gpencil_stroke_fn(), generate_vert_coordinates(), get_bm_knife_vert(), 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_3fv(), hook_co_apply(), kinematic_get_tarmat(), lineart_gpencil_generate(), meshdeform_vert_task(), meshdeformModifier_do(), metaball_instance_data_set(), MOD_get_texture_coords(), mul_m4_m4m4_aligned_scale(), mul_v3_project_m4_v3(), nearest_world_tree(), 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_culling_test_bbone(), pchan_deform_accumulate(), pose_transform_mirror_update(), proj_paint_state_screen_coords_init(), raycast_all_cb(), reconstruct_retrieve_libmv_tracks(), remap_hair_emitter(), screenspace_to_worldspace(), 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_intern(), warpModifier_do(), WIDGETGROUP_xform_cage_refresh(), workbench_shadow_object_shadow_bbox_get(), and wpaint_stroke_update_step().
Definition at line 749 of file math_matrix.c.
Referenced by lineart_mvert_transform_task().
Definition at line 800 of file math_matrix.c.
Referenced by applyarmature_process_selected_recursive(), 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(), 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 810 of file math_matrix.c.
Referenced by lineart_load_tri_task().
Definition at line 831 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 888 of file math_matrix.c.
Referenced by GPU_matrix_project_2fv(), and GPU_matrix_project_3fv().
Definition at line 758 of file math_matrix.c.
Referenced by lineart_create_edges_from_isec_data(), lineart_geometry_check_visible(), lineart_main_make_enclosed_shapes(), lineart_mvert_transform_task(), lineart_shadow_cast_onto_triangle(), lineart_shadow_register_enclosed_shapes(), lineart_shadow_transform_task(), lineart_triangle_cull_single(), and lineart_triangle_edge_image_space_occlusion().
Definition at line 850 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(), snapArmature(), snapCurve(), snapEditMesh(), and snapMesh().
Definition at line 867 of file math_matrix.c.
References double(), r, v, x, y, and z.
Referenced by mul_m4_v4d().
Definition at line 989 of file math_matrix.c.
References R.
Referenced by BMD_mesh_intersection(), mat3_to_rot_size(), mat4_to_loc_quat(), mat4_to_rot(), Matrix_to_quaternion(), Quaternion_rotate(), SIM_mass_spring_force_reference_frame(), SIM_mass_spring_force_spring_bending_hair(), spring_hairbend_estimate_dfdv(), and spring_hairbend_estimate_dfdx().
Definition at line 1011 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().
Definition at line 1000 of file math_matrix.c.
References R.
Referenced by gizmo_placement_prop_matrix_set().
Definition at line 1882 of file math_matrix.c.
References normalize_v2(), and R.
Definition at line 1874 of file math_matrix.c.
References normalize_v2(), and R.
Definition at line 1897 of file math_matrix.c.
References M, normalize_v2_v2(), and R.
Referenced by Vector_rotate().
Definition at line 1890 of file math_matrix.c.
References M, normalize_v2_v2(), and R.
Definition at line 1912 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_object(), gimbal_axis_pose(), gizmo_mesh_extrude_draw_prepare(), locktrack_evaluate(), mat3_to_quat_is_ok(), mat4_to_compatible_eulO(), mat4_to_eulO(), mathutils_any_to_rotmat(), Matrix_normalize(), Matrix_to_euler(), Matrix_to_quaternion(), object_transform_axis_target_modal(), pivotcon_evaluate(), Quaternion_rotate(), SeqToTransData(), splineik_evaluate_bone(), tranformViewUpdate(), transform_orientation_matrix_get(), and v3d_cursor_poject_surface_normal().
Definition at line 1905 of file math_matrix.c.
References normalize_v3(), and R.
Definition at line 1927 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 1920 of file math_matrix.c.
References M, normalize_v3_v3(), and R.
Definition at line 1945 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(), ED_view3d_draw_offscreen_imbuf_simple(), execute_posetree(), hair_create_input_mesh(), Matrix_normalize(), proj_paint_state_viewport_init(), SCULPT_do_clay_strips_brush(), SCULPT_do_clay_thumb_brush(), SCULPT_do_multiplane_scrape_brush(), SCULPT_do_paint_brush(), and SCULPT_do_pinch_brush().
Definition at line 1935 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 1965 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(), object_transform_to_mouse_exec(), obmat_to_viewmat(), OVERLAY_camera_cache_populate(), OVERLAY_lightprobe_cache_populate(), and WIDGETGROUP_light_target_draw_prepare().
Definition at line 1956 of file math_matrix.c.
References copy_v4_v4(), and normalize_v3_v3().
Referenced by eevee_light_setup().
Make an orthonormal matrix around the selected axis of the given matrix.
axis | Axis to build the orthonormal basis around. |
Definition at line 1439 of file math_matrix.c.
References BLI_assert_unreachable, cross_v3_v3v3(), dot_v3v3(), mat3_to_size(), mul_v3_fl(), normalize_v3(), R, and size().
Referenced by v3d_cursor_poject_surface_normal(), and v3d_cursor_snap_update().
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 1660 of file math_matrix.c.
References BLI_assert_unreachable, blender::math::normalize(), orthogonalize_stable(), and R.
Definition at line 1768 of file math_matrix.c.
References orthogonalize_m3_zero_axes_impl(), and UNPACK3.
Referenced by invert_m3_m3_safe_ortho(), and ObjectToTransData().
Definition at line 1711 of file math_matrix.c.
References ATTR_FALLTHROUGH, BLI_assert_unreachable, cross_v3_v3v3(), ELEM, len_squared_v3(), normalize_v3_length(), ortho_v3_v3(), UNLIKELY, X, Y, and Z.
Referenced by orthogonalize_m3_zero_axes(), and orthogonalize_m4_zero_axes().
Make an orthonormal matrix around the selected axis of the given matrix.
axis | Axis to build the orthonormal basis around. |
Definition at line 1523 of file math_matrix.c.
References BLI_assert_unreachable, 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().
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 1678 of file math_matrix.c.
References BLI_assert_unreachable, blender::math::normalize(), orthogonalize_stable(), and R.
Referenced by armdef_accumulate_matrix(), BKE_bone_parent_transform_calc_from_matrices(), BKE_object_apply_parent_inverse(), rotlike_evaluate(), rotlimit_evaluate(), stretchto_evaluate(), and translike_evaluate().
Definition at line 1772 of file math_matrix.c.
References orthogonalize_m3_zero_axes_impl(), and UNPACK3.
Referenced by invert_m4_m4_safe_ortho().
Make an orthonormal basis around v1 in a way that is stable and symmetric.
Definition at line 1608 of file math_matrix.c.
References acosf, angle(), copy_v3_v3(), cosf, cross_v3_v3v3(), dot_v3v3(), fabsf, float(), len_squared_v3(), len_v3(), M_PI_2, madd_v3_v3fl(), mul_v3_fl(), mul_v3_v3fl(), blender::math::normalize(), normalize_v3(), normalize_v3_v3(), sinf, sqrtf, v1, and v2.
Referenced by orthogonalize_m3_stable(), and orthogonalize_m4_stable().
Definition at line 2630 of file math_matrix.c.
References str.
Definition at line 2639 of file math_matrix.c.
References str.
Referenced by armature_finalize_restpose().
Definition at line 3107 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_2D_impl(), createTransCursor_view3d(), createTransCurveVerts(), createTransEdge(), createTransEditVerts(), createTransGPencil_curves(), createTransLatticeVerts(), createTransMBallVerts(), createTransMeshSkin(), createTransMeshVertCData(), and createTransTexspace().
Definition at line 3085 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().
Scale a matrix in-place.
Definition at line 2362 of file math_matrix.c.
References mul_v3_fl().
Referenced by BKE_bone_parent_transform_apply(), BKE_bone_parent_transform_calc_from_matrices(), BKE_pchan_minmax(), C_Matrix_LocRotScale(), draw_axes(), draw_bone_update_disp_matrix_custom(), draw_bone_update_disp_matrix_default(), ED_object_new_primitive_matrix(), gpencil_depth_plane(), gpencil_object_cache_add(), gpencil_uv_transform_get(), gpencil_vfx_shadow(), blender::io::stl::importer_main(), loc_rot_size_to_mat4(), modifyMesh(), OVERLAY_gpencil_cache_init(), OVERLAY_light_cache_populate(), blender::io::gpencil::GpencilImporterSVG::read(), stretchto_evaluate(), and view3d_ob_drop_matrix_from_snap().
Rotate a matrix in-place.
Definition at line 2325 of file math_matrix.c.
References angle(), BLI_assert, BLI_assert_unreachable, col, cosf, and sinf.
Referenced by cursor_draw_point_with_symmetry(), EEVEE_random_rotation_m4(), gizmo2d_xform_draw_prepare(), 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 2289 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 2297 of file math_matrix.c.
References R.
Referenced by BKE_object_obdata_size_init(), BKE_pchan_minmax(), calc_brush_local_mat(), blender::io::alembic::ABCTransformWriter::do_write(), draw_bone_degrees_of_freedom(), DRW_debug_sphere(), drw_shgroup_bone_envelope(), EEVEE_lightprobes_cube_data_from_object(), external_cache_image_add(), followpath_get_tarmat(), GPU_matrix_scale_1f(), ob_parcurve(), OVERLAY_bounds(), blender::io::alembic::AbcObjectReader::read_matrix(), blender::io::usd::USDXformReader::read_matrix(), reconstructed_camera_scale_set(), SCULPT_do_clay_strips_brush(), SCULPT_do_clay_thumb_brush(), SCULPT_do_paint_brush(), and voxel_size_edit_invoke().
Definition at line 2307 of file math_matrix.c.
References R.
Build index shuffle matrix.
Definition at line 247 of file math_matrix.c.
Referenced by modifyMesh().
Definition at line 2098 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 2111 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(), AnimationImporter::evaluate_animation(), make_duplis_particle_system(), OVERLAY_bounds(), OVERLAY_texture_space(), sculpt_transform_matrices_init(), stabilization_data_to_mat4(), and voxel_size_edit_invoke().
Definition at line 1076 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 1087 of file math_matrix.c.
Compute the Single Value Decomposition of an arbitrary matrix A That is compute the 3 matrices U,W,V with U column orthogonal (m,n) ,W a diagonal matrix and V an orthogonal square matrix s.t.A = U.W.Vt
. From this decomposition it is trivial to compute the (pseudo-inverse) of A
as Ainv = V.Winv.transpose(U)
.
Definition at line 2649 of file math_matrix.c.
References A, usdtokens::b(), Freestyle::c, copy_m4_m4(), e, eps, fabsf, usdtokens::g(), hypotf, max_ff(), max_ii(), min_ii(), powf, sqrtf, t, V, zero_m4(), and zero_v4().
Referenced by pseudoinverse_m4_m4().
Definition at line 219 of file math_matrix.c.
References t.
Definition at line 233 of file math_matrix.c.
References t.
Referenced by vpaint_stroke_update_step_intern(), and wpaint_stroke_update_step().
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 2369 of file math_matrix.c.
References copy_v3_v3(), mul_m4_m4m4(), negate_v3(), and unit_m4().
Referenced by applyRotationMatrix(), applyTrackballMatrix(), bmo_rotate_exec(), ED_view3d_win_to_3d_on_plane_with_fallback(), gizmo_cage2d_modal(), gizmo_cage3d_modal(), seq_image_transform_quad_get_ex(), sequencer_image_crop_transform_matrix(), and sequencer_thumbnail_transform().
Definition at line 2318 of file math_matrix.c.
Referenced by BKE_pchan_minmax(), camera_stereo3d_model_matrix(), camera_view3d_reconstruction(), collection_drop_exec(), 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(), external_cache_image_add(), 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(), wm_xr_pose_scale_to_imat(), and wm_xr_pose_to_imat().
Definition at line 1332 of file math_matrix.c.
Referenced by axis_dominant_v3_to_m3(), axis_dominant_v3_to_m3_negate(), 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 1347 of file math_matrix.c.
References BLI_assert, M, and R.
Referenced by calc_deltas(), execute_posetree(), is_uniform_scaled_m3(), mat3_polar_decompose(), and blender::float3x3::transposed().
Definition at line 1362 of file math_matrix.c.
References BLI_assert, M, and R.
Referenced by nearest_world_tree(), psys_get_dupli_path_transform(), raycastEditMesh(), and raycastMesh().
Definition at line 1377 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_main_get_view_vector(), lineart_object_load_single_instance(), Matrix_transpose(), modifyMesh(), move3d_draw_intern(), pseudoinverse_m4_m4(), psys_vec_rot_to_face(), TEST(), and BCMatrix::transpose().
Definition at line 1403 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(), snapArmature(), snapCurve(), snapEditMesh(), snapMesh(), and blender::float4x4::transposed().
Definition at line 33 of file math_matrix.c.
Referenced by matrix_identity_internal(), and matrix_invert_safe_internal().
Definition at line 40 of file math_matrix.c.
Referenced by apply_objects_internal(), applyShear(), 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(), blender::compositor::PlaneDistortWarpImageOperation::calculate_corners(), 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_2D_impl(), 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(), ElementRotation_ex(), execute_posetree(), gizmo2d_xform_invoke_prepare(), gizmo_mesh_extrude_refresh(), gizmo_mesh_spin_redo_setup(), blender::float3x3::identity(), blender::io::stl::importer_main(), initTransform(), initTransInfo(), invert_m3_m3_safe_ortho(), legacy_vec_roll_to_mat3_normalized(), 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(), sequencer_thumbnail_transform(), 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(), transdata_elem_translate(), transform_convert_mesh_islands_calc(), transform_data_ext_rotate(), blender::io::obj::transform_object(), transform_orientation_matrix_get(), transform_orientations_create_from_axis(), UVsToTransData(), v3d_cursor_snap_update(), vcloud_estimate_transform_v3(), vec_roll_to_mat3_normalized(), vectomat(), and view3d_all_exec().
Definition at line 48 of file math_matrix.c.
Referenced by actcon_get_tarmat(), action_flip_pchan(), AnimationImporter::add_bone_animation_sampled(), add_hook_object(), annotation_session_initdata(), apply_layer_settings(), 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_init(), 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_ensure(), 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_LocRotScale(), C_Matrix_Translation(), blender::draw::image_engine::ImageEngine< DrawingMode >::cache_init(), AnimationImporter::calc_joint_parent_mat_rest(), camera_stereo3d_model_matrix(), childof_clear_inverse_exec(), childof_new_data(), clampto_evaluate(), clampto_get_tarmat(), clip_draw_main(), collection_drop_exec(), constraintTransLim(), convert_pose(), blender::io::usd::convert_to_z_up(), 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_manager_init(), ED_armature_join_objects_exec(), ED_object_new_primitive_matrix(), ED_object_parent(), ED_object_parent_clear(), ED_object_parent_set(), ED_object_xform_array_m4(), ED_transform_calc_gizmo_stats(), edge_slide_projmat_get(), 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(), external_cache_image_add(), followpath_get_tarmat(), foreach_mouse_hit_key_iter(), FRS_do_stroke_rendering(), TransformReader::get_node_mat(), gizmo2d_xform_draw_prepare(), 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(), blender::float4x4::identity(), image_camera_background_matrix_get(), blender::io::stl::importer_main(), init_context(), init_meta(), blender::draw::image_engine::SpaceNodeAccessor::init_ss_to_texture_matrix(), blender::draw::image_engine::SpaceImageAccessor::init_ss_to_texture_matrix(), invert_m4_m4_safe(), invert_m4_m4_safe_ortho(), kinematic_get_tarmat(), loc_eul_size_to_mat4(), loc_eulO_size_to_mat4(), loc_quat_size_to_mat4(), lookat_m4(), make_duplis_collection(), make_duplis_geometry_set_impl(), matrix_identity_internal(), matrix_invert_safe_internal(), Matrix_resize_4x4(), mesh_calc_eigen_matrix(), metaball_coords_and_quats_apply(), minmax_evaluate(), modifyMesh(), blender::ed::space_node::node_gizmo_calc_matrix_space(), blender::ed::space_node::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(), blender::io::usd::USDXformReader::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(), blender::io::obj::transform_object(), 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_software_cursor_draw_bitmap(), wm_xr_fly_compute_move(), wm_xr_grab_compute(), wm_xr_grab_compute_bimanual(), wm_xr_navigation_fly_modal(), WM_xr_session_state_viewer_pose_matrix_info_get(), workbench_shadow_update(), and workbench_studiolight_data_update().
Definition at line 57 of file math_matrix.c.
Referenced by lineart_main_load_geometries(), lineart_main_try_generate_shadow(), lineart_matrix_ortho_44d(), and lineart_matrix_perspective_44d().
Fix any zero scale axis adding a small bias orthogonal to the other valid axis.
Definition at line 3125 of file math_matrix.c.
References cross_v3_v3v3(), len_squared_v3(), and mul_v3_fl().
Referenced by ED_gpencil_project_stroke_to_view(), ED_gpencil_stroke_reproject(), gpencil_apply_parent(), gpencil_apply_parent_point(), gpencil_brush_grab_apply_cached(), and gpencil_sculpt_brush_init().
Definition at line 18 of file math_matrix.c.
Definition at line 23 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(), vcloud_estimate_transform_v3(), and blender::float3x3::zero().
Definition at line 28 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().