[Bf-blender-cvs] [5e6fdaa07ff] master: Revert "Allow navigating while transforming"
Germano Cavalcante
noreply at git.blender.org
Thu Nov 18 17:43:01 CET 2021
Commit: 5e6fdaa07fff907e02b36813ccde0702bad4fb4d
Author: Germano Cavalcante
Date: Tue Nov 16 21:05:30 2021 -0300
Branches: master
https://developer.blender.org/rB5e6fdaa07fff907e02b36813ccde0702bad4fb4d
Revert "Allow navigating while transforming"
This reverts commit 1d1855e95f916685fed970904fc37701a4a0e031.
===================================================================
M release/scripts/startup/bl_ui/space_userpref.py
M source/blender/editors/transform/transform.c
M source/blender/editors/transform/transform.h
M source/blender/editors/transform/transform_convert_node.c
M source/blender/editors/transform/transform_generics.c
M source/blender/editors/transform/transform_input.c
M source/blender/editors/transform/transform_ops.c
M source/blender/makesdna/DNA_userdef_types.h
M source/blender/makesrna/intern/rna_userdef.c
M source/blender/windowmanager/WM_api.h
M source/blender/windowmanager/intern/wm_event_system.c
M source/blender/windowmanager/intern/wm_operator_utils.c
M source/blender/windowmanager/wm_event_system.h
===================================================================
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index 93f01cbe139..5032256e4d1 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -2292,16 +2292,8 @@ class USERPREF_PT_experimental_new_features(ExperimentalPanel, Panel):
({"property": "use_sculpt_tools_tilt"}, "T82877"),
({"property": "use_extended_asset_browser"}, ("project/view/130/", "Project Page")),
({"property": "use_override_templates"}, ("T73318", "Milestone 4")),
- ({"property": "use_navigate_while_transform"}, ("T73993", "Milestone 2")),
),
)
- experimental = context.preferences.experimental
-
- if experimental.use_navigate_while_transform:
- split = self.layout.split(factor=0.66)
- row = split.split()
- row.operator("transform.modalkeymap_update")
- row.operator("transform.modalkeymap_restore")
class USERPREF_PT_experimental_prototypes(ExperimentalPanel, Panel):
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 51167b327d6..c376c718245 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -108,6 +108,9 @@ void setTransformViewMatrices(TransInfo *t)
unit_m4(t->persinv);
t->persp = RV3D_ORTHO;
}
+
+ calculateCenter2D(t);
+ calculateCenterLocal(t, t->center_global);
}
void setTransformViewAspect(TransInfo *t, float r_aspect[3])
@@ -899,6 +902,8 @@ int transformEvent(TransInfo *t, const wmEvent *event)
t->con.mode |= CON_SELECT;
}
+ copy_v2_v2_int(t->mval, event->mval);
+
/* Use this for soft redraw. Might cause flicker in object mode */
// t->redraw |= TREDRAW_SOFT;
t->redraw |= TREDRAW_HARD;
diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index 9046f1970a3..6219bdba6b7 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -155,9 +155,6 @@ typedef enum {
/** No cursor wrapping on region bounds */
T_NO_CURSOR_WRAP = 1 << 23,
-
- /** To indicate that V3D matrices have changed due to navigation. */
- T_VIEW_DIRTY = 1 << 24,
} eTFlag;
/** #TransInfo.modifiers */
@@ -769,7 +766,6 @@ void applyMouseInput(struct TransInfo *t,
const int mval[2],
float output[3]);
void transform_input_reset(MouseInput *mi, const int mval[2]);
-void transform_input_update(TransInfo *t, const float fac);
void setCustomPoints(TransInfo *t, MouseInput *mi, const int start[2], const int end[2]);
void setCustomPointsFromDirection(TransInfo *t, MouseInput *mi, const float dir[2]);
@@ -802,7 +798,6 @@ void calculateCenter2D(TransInfo *t);
void calculateCenterLocal(TransInfo *t, const float center_global[3]);
void calculateCenter(TransInfo *t);
-void tranformViewUpdate(TransInfo *t);
/* API functions for getting center points */
void calculateCenterBound(TransInfo *t, float r_center[3]);
diff --git a/source/blender/editors/transform/transform_convert_node.c b/source/blender/editors/transform/transform_convert_node.c
index 10c0ee48749..da11666d445 100644
--- a/source/blender/editors/transform/transform_convert_node.c
+++ b/source/blender/editors/transform/transform_convert_node.c
@@ -164,7 +164,6 @@ void createTransNodeData(TransInfo *t)
void flushTransNodes(TransInfo *t)
{
const float dpi_fac = UI_DPI_FAC;
- float offset[2] = {0.0f, 0.0f};
View2DEdgePanData *customdata = (View2DEdgePanData *)t->custom.type.data;
@@ -178,16 +177,14 @@ void flushTransNodes(TransInfo *t)
t->region->winrct.xmin + t->mval[0],
t->region->winrct.ymin + t->mval[1],
};
- const rctf rect = t->region->v2d.cur;
UI_view2d_edge_pan_apply(t->context, customdata, xy);
- if (!BLI_rctf_compare(&rect, &t->region->v2d.cur, FLT_EPSILON)) {
- /* Additional offset due to change in view2D rect. */
- BLI_rctf_transform_pt_v(&t->region->v2d.cur, &rect, offset, offset);
- t->flag |= T_VIEW_DIRTY;
- }
}
}
+ /* Initial and current view2D rects for additional transform due to view panning and zooming */
+ const rctf *rect_src = &customdata->initial_rect;
+ const rctf *rect_dst = &t->region->v2d.cur;
+
FOREACH_TRANS_DATA_CONTAINER (t, tc) {
applyGridAbsolute(t);
@@ -198,7 +195,10 @@ void flushTransNodes(TransInfo *t)
bNode *node = td->extra;
float loc[2];
- add_v2_v2v2(loc, td2d->loc, offset);
+ copy_v2_v2(loc, td2d->loc);
+
+ /* additional offset due to change in view2D rect */
+ BLI_rctf_transform_pt_v(rect_dst, rect_src, loc, loc);
#ifdef USE_NODE_CENTER
loc[0] -= 0.5f * BLI_rctf_size_x(&node->totr);
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 7846fa93f03..4194fb2a0ad 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -679,8 +679,6 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve
}
setTransformViewMatrices(t);
- calculateCenter2D(t);
- calculateCenterLocal(t, t->center_global);
initNumInput(&t->num);
}
@@ -1142,33 +1140,6 @@ static void calculateCenter_FromAround(TransInfo *t, int around, float r_center[
}
}
-static void calculateZfac(TransInfo *t)
-{
- /* ED_view3d_calc_zfac() defines a factor for perspective depth correction,
- * used in ED_view3d_win_to_delta() */
-
- /* zfac is only used convertViewVec only in cases operator was invoked in RGN_TYPE_WINDOW
- * and never used in other cases.
- *
- * We need special case here as well, since ED_view3d_calc_zfac will crash when called
- * for a region different from RGN_TYPE_WINDOW.
- */
- if (t->spacetype == SPACE_VIEW3D) {
- t->zfac = ED_view3d_calc_zfac(t->region->regiondata, t->center_global, NULL);
- }
- else if (t->spacetype == SPACE_IMAGE) {
- SpaceImage *sima = t->area->spacedata.first;
- t->zfac = 1.0f / sima->zoom;
- }
- else {
- View2D *v2d = &t->region->v2d;
- /* Get zoom fac the same way as in
- * `ui_view2d_curRect_validate_resize` - better keep in sync! */
- const float zoomx = (float)(BLI_rcti_size_x(&v2d->mask) + 1) / BLI_rctf_size_x(&v2d->cur);
- t->zfac = 1.0f / zoomx;
- }
-}
-
void calculateCenter(TransInfo *t)
{
if ((t->flag & T_OVERRIDE_CENTER) == 0) {
@@ -1203,38 +1174,23 @@ void calculateCenter(TransInfo *t)
}
}
- calculateZfac(t);
-}
-
-/* Called every time the view changes due to navigation.
- * Adjusts the mouse position relative to the object. */
-void tranformViewUpdate(TransInfo *t)
-{
if (t->spacetype == SPACE_VIEW3D) {
- setTransformViewMatrices(t);
-
- for (int i = 0; i < ARRAY_SIZE(t->orient); i++) {
- if (t->orient[i].type == V3D_ORIENT_VIEW) {
- copy_m3_m4(t->orient[i].matrix, t->viewinv);
- normalize_m3(t->orient[i].matrix);
- if (t->orient_curr == i) {
- copy_m3_m3(t->spacemtx, t->orient[i].matrix);
- invert_m3_m3_safe_ortho(t->spacemtx_inv, t->spacemtx);
- }
- }
+ /* ED_view3d_calc_zfac() defines a factor for perspective depth correction,
+ * used in ED_view3d_win_to_delta() */
+
+ /* zfac is only used convertViewVec only in cases operator was invoked in RGN_TYPE_WINDOW
+ * and never used in other cases.
+ *
+ * We need special case here as well, since ED_view3d_calc_zfac will crash when called
+ * for a region different from RGN_TYPE_WINDOW.
+ */
+ if (t->region->regiontype == RGN_TYPE_WINDOW) {
+ t->zfac = ED_view3d_calc_zfac(t->region->regiondata, t->center_global, NULL);
+ }
+ else {
+ t->zfac = 0.0f;
}
}
-
- float fac = 1.0f;
- if (ELEM(t->spacetype, SPACE_VIEW3D, SPACE_IMAGE, SPACE_NODE)) {
- float zfac_prev = t->zfac;
- calculateZfac(t);
- fac = zfac_prev / t->zfac;
- }
-
- calculateCenter2D(t);
- transform_input_update(t, fac);
- t->flag &= ~T_VIEW_DIRTY;
}
void calculatePropRatio(TransInfo *t)
diff --git a/source/blender/editors/transform/transform_input.c b/source/blender/editors/transform/transform_input.c
index 5d437e3c1d1..d9a29b8d6b7 100644
--- a/source/blender/editors/transform/transform_input.c
+++ b/source/blender/editors/transform/transform_input.c
@@ -459,32 +459,6 @@ void applyMouseInput(TransInfo *t, MouseInput *mi, const int mval[2], float outp
}
}
-void transform_input_update(TransInfo *t, const float fac)
-{
- MouseInput *mi = &t->mouse;
- int offset[2], center_2d_int[2] = {mi->center[0], mi->center[1]};
- sub_v2_v2v2_int(offset, mi->imval, center_2d_int);
- offset[0] *= fac;
- offset[1] *= fac;
- t->mouse.factor *= fac;
-
- center_2d_int[0] = t->center2d[0];
- center_2d_int[1] = t->center2d[1];
- add_v2_v2v2_int(mi->imval, center_2d_int, offset);
-
- float center_old[2];
- copy_v2_v2(center_old, mi->center);
- copy_v2_v2(mi->center, t->center2d);
-
- if (ELEM(mi->apply, InputAngle, InputAngleSpring)) {
- float offset_center[2];
- sub_v2_v2v2(offset_center, mi->center, center_old);
- struct InputAngle_Data *data = mi->data;
- data->mval_prev[0] += offset_center[0];
- data->mval_prev[1] += offset_center[1];
- }
-}
-
void transform_input_reset(MouseInput *mi, const int mval[2])
{
copy_v2_v2_int(mi->imval, mval);
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c
index 37eb85bfda2..5ed340abf97 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -23,10 +23,7 @@
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "BLI_alloca.h"
-#include "BLI_listbase.h"
#include "BLI_math.h"
-#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
@@ -424,17 +421,7 @@ static int transform_modal(bContext *C, wmOperator *op, const wmEvent *event)
return OPERATOR_P
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list