/* Not ported yet. Rename? */ void orthogonalize_m3(float R[3][3], int axis); void orthogonalize_m4(float R[4][4], int axis); void orthogonalize_m3_stable(float R[3][3], int axis, bool normalize); void orthogonalize_m4_stable(float R[4][4], int axis, bool normalize); bool orthogonalize_m3_zero_axes(float m[3][3], float unit_length); bool orthogonalize_m4_zero_axes(float m[4][4], float unit_length); /* Not ported. */ bool invert_m4_m4_fallback(float inverse[4][4], const float mat[4][4]); /* Not ported. */ void invert_m4_m4_safe(float inverse[4][4], const float mat[4][4]); void invert_m3_m3_safe_ortho(float inverse[3][3], const float mat[3][3]); void invert_m4_m4_safe_ortho(float inverse[4][4], const float mat[4][4]); /* ------ Not Worth Porting to new API ------- */ /* Not ported. Used only once. Easier with vector assignement. */ void shuffle_m4(float R[4][4], const int index[4]); /* Only used in one file (constraint.c). Move to this file. */ 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]); /* Only used in one file (armature.c). Move to this file. */ void mat4_to_size_fix_shear(float size[3], const float M[4][4]); /* Only used by mball. */ bool has_zero_axis_m4(const float matrix[4][4]); /* Not ported yet. Only used by gpencil. */ void zero_axis_bias_m4(float mat[4][4]); /* Replaced by math::abs(determinant(mat)). */ float mat3_to_volume_scale(const float mat[3][3]); float mat4_to_volume_scale(const float mat[4][4]); /* Not ported. Can be replaced by length(to_scale(mat)) * M_SQRT1_3. */ float mat3_to_scale(const float mat[3][3]); float mat4_to_scale(const float mat[4][4]); /* Not ported. Might not be a bottleneck. */ float mat3_to_size_max_axis(const float M[3][3]); float mat4_to_size_max_axis(const float M[4][4]); /* Not ported. Could be a matrix util? */ void transform_pivot_set_m4(float mat[4][4], const float pivot[3]); /* Move to own lib. */ void BLI_space_transform_from_matrices(struct SpaceTransform *data, const float local[4][4], const float target[4][4]); void BLI_space_transform_global_from_matrices(struct SpaceTransform *data, const float local[4][4], const float target[4][4]); void BLI_space_transform_apply(const struct SpaceTransform *data, float co[3]); void BLI_space_transform_invert(const struct SpaceTransform *data, float co[3]); void BLI_space_transform_apply_normal(const struct SpaceTransform *data, float no[3]); void BLI_space_transform_invert_normal(const struct SpaceTransform *data, float no[3]);