43 const float mat_final[3][3])
46 const float (*mat)[3] = mat_final;
59 float axis1[3], axis2[3];
70 float mat_final[3][3];
76 for (const int i : range) {
77 TransData *td = &tc->data[i];
78 TransDataExtension *td_ext = tc->data_ext ? &tc->data_ext[i] : nullptr;
79 if (td->flag & TD_SKIP) {
82 transdata_elem_trackball(t, tc, td, td_ext, axis, angle, mat_final);
109 IFACE_(
"Trackball: %s %s %s"),
117 IFACE_(
"Trackball: %.2f %.2f %s"),
128 float axis_final[3], angle_final;
141 float axis_final[3], angle_final;
144 float mat3[3][3], mat4[4][4];
158 status.item(
TIP_(
"Transform is set to only affect location"), ICON_ERROR);
void mul_m4_m4m4(float R[4][4], const float A[4][4], const float B[4][4])
void copy_m4_m3(float m1[4][4], const float m2[3][3])
void transform_pivot_set_m4(float mat[4][4], const float pivot[3])
void axis_angle_normalized_to_mat3(float R[3][3], const float axis[3], float angle)
MINLINE void madd_v3_v3fl(float r[3], const float a[3], float f)
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE float normalize_v3_v3(float r[3], const float a[3])
MINLINE void copy_v3_fl(float r[3], float f)
MINLINE void mul_v3_v3fl(float r[3], const float a[3], float f)
MINLINE float normalize_v3(float n[3])
size_t BLI_snprintf_utf8_rlen(char *__restrict dst, size_t dst_maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
void ED_area_status_text(ScrArea *area, const char *str)
static double angle(const Eigen::Vector3d &v1, const Eigen::Vector3d &v2)
VecBase< float, 3 > float3
void parallel_for(const IndexRange range, const int64_t grain_size, const Function &function, const TaskSizeHints &size_hints=detail::TaskSizeHints_Static(1))