Cleanup: Use C++ Vector in transform translate
This commit is contained in:
@@ -37,6 +37,8 @@
|
||||
#include "transform_mode.hh"
|
||||
#include "transform_snap.hh"
|
||||
|
||||
using namespace blender;
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name Transform (Translate) Custom Data
|
||||
* \{ */
|
||||
@@ -71,16 +73,16 @@ struct TranslateCustomData {
|
||||
struct TransDataArgs_Translate {
|
||||
const TransInfo *t;
|
||||
const TransDataContainer *tc;
|
||||
float pivot_local[3];
|
||||
float vec[3];
|
||||
float3 snap_source_local;
|
||||
float3 vec;
|
||||
enum eTranslateRotateMode rotate_mode;
|
||||
};
|
||||
|
||||
static void transdata_elem_translate(const TransInfo *t,
|
||||
const TransDataContainer *tc,
|
||||
TransData *td,
|
||||
const float pivot_local[3],
|
||||
const float vec[3],
|
||||
const float3 &snap_source_local,
|
||||
const float3 &vec,
|
||||
enum eTranslateRotateMode rotate_mode)
|
||||
{
|
||||
float rotate_offset[3] = {0};
|
||||
@@ -109,7 +111,7 @@ static void transdata_elem_translate(const TransInfo *t,
|
||||
rotation_between_vecs_to_mat3(mat, original_normal, t->tsnap.snapNormal);
|
||||
}
|
||||
|
||||
ElementRotation_ex(t, tc, td, mat, pivot_local);
|
||||
ElementRotation_ex(t, tc, td, mat, snap_source_local);
|
||||
|
||||
if (td->loc) {
|
||||
use_rotate_offset = true;
|
||||
@@ -165,7 +167,8 @@ static void transdata_elem_translate_fn(void *__restrict iter_data_v,
|
||||
if (td->flag & TD_SKIP) {
|
||||
return;
|
||||
}
|
||||
transdata_elem_translate(data->t, data->tc, td, data->pivot_local, data->vec, data->rotate_mode);
|
||||
transdata_elem_translate(
|
||||
data->t, data->tc, td, data->snap_source_local, data->vec, data->rotate_mode);
|
||||
}
|
||||
|
||||
/** \} */
|
||||
@@ -494,12 +497,12 @@ static void applyTranslationValue(TransInfo *t, const float vec[3])
|
||||
}
|
||||
|
||||
FOREACH_TRANS_DATA_CONTAINER (t, tc) {
|
||||
float pivot_local[3];
|
||||
float3 snap_source_local;
|
||||
if (rotate_mode != TRANSLATE_ROTATE_OFF) {
|
||||
copy_v3_v3(pivot_local, t->tsnap.snap_source);
|
||||
snap_source_local = t->tsnap.snap_source;
|
||||
/* The pivot has to be in local-space (see #49494) */
|
||||
if (tc->use_local_mat) {
|
||||
mul_m4_v3(tc->imat, pivot_local);
|
||||
snap_source_local = math::transform_point(float4x4(tc->imat), snap_source_local);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -509,15 +512,15 @@ static void applyTranslationValue(TransInfo *t, const float vec[3])
|
||||
if (td->flag & TD_SKIP) {
|
||||
continue;
|
||||
}
|
||||
transdata_elem_translate(t, tc, td, pivot_local, vec, rotate_mode);
|
||||
transdata_elem_translate(t, tc, td, snap_source_local, vec, rotate_mode);
|
||||
}
|
||||
}
|
||||
else {
|
||||
TransDataArgs_Translate data{};
|
||||
data.t = t;
|
||||
data.tc = tc;
|
||||
copy_v3_v3(data.pivot_local, pivot_local);
|
||||
copy_v3_v3(data.vec, vec);
|
||||
data.snap_source_local = snap_source_local;
|
||||
data.vec = vec;
|
||||
data.rotate_mode = rotate_mode;
|
||||
|
||||
TaskParallelSettings settings;
|
||||
|
||||
Reference in New Issue
Block a user