diff options
Diffstat (limited to 'source/blender/editors/transform/transform_convert.c')
-rw-r--r-- | source/blender/editors/transform/transform_convert.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/source/blender/editors/transform/transform_convert.c b/source/blender/editors/transform/transform_convert.c index 027ae04795a..c2e3c8ef508 100644 --- a/source/blender/editors/transform/transform_convert.c +++ b/source/blender/editors/transform/transform_convert.c @@ -69,6 +69,8 @@ #include "ED_clip.h" #include "ED_mask.h" +#include "UI_view2d.h" + #include "WM_api.h" /* for WM_event_add_notifier to deal with stabilization nodes */ #include "WM_types.h" @@ -787,6 +789,28 @@ void clipUVData(TransInfo *t) /* ********************* ANIMATION EDITORS (GENERAL) ************************* */ +/** + * For modal operation: `t->center_global` may not have been set yet. + */ +void transform_convert_center_global_v2(TransInfo *t, float r_center[2]) +{ + if (t->flag & T_MODAL) { + UI_view2d_region_to_view( + (View2D *)t->view, t->mouse.imval[0], t->mouse.imval[1], &r_center[0], &r_center[1]); + } + else { + copy_v2_v2(r_center, t->center_global); + } +} + +void transform_convert_center_global_v2_int(TransInfo *t, int r_center[2]) +{ + float center[2]; + transform_convert_center_global_v2(t, center); + r_center[0] = round_fl_to_int(center[0]); + r_center[1] = round_fl_to_int(center[1]); +} + /* This function tests if a point is on the "mouse" side of the cursor/frame-marking */ bool FrameOnMouseSide(char side, float frame, float cframe) { @@ -2514,7 +2538,7 @@ void createTransData(bContext *C, TransInfo *t) t->obedit_type = -1; t->num.flag |= NUM_NO_FRACTION; /* sequencer has no use for floating point trasnform */ - createTransSeqData(C, t); + createTransSeqData(t); countAndCleanTransDataContainer(t); } else if (t->spacetype == SPACE_GRAPH) { |