From c918f24edb5df8cc837b77363c4d928f8bfa9159 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 3 Jun 2014 22:02:02 +0600 Subject: Tweaks to bevel and crease transform They were using INPUT_SPRING in a way which didn't allow it to easily redo the operator because INPUT_SPRING internally is stored as a ration between old value and new one and crease and bevel were converting this to value delta. Now made it special input type INPUT_SPRING_DELTA which is storing delta of the spring, meaning now values in the redo panel kind of makes sense -- they mean how much to add/remove to the crease/bevel weight. Expect to be no functional changes from interactive transform POV, just a bit more convenient to use redo panel. --- source/blender/editors/transform/transform_input.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'source/blender/editors/transform/transform_input.c') diff --git a/source/blender/editors/transform/transform_input.c b/source/blender/editors/transform/transform_input.c index 70b565859f3..6546a05aedd 100644 --- a/source/blender/editors/transform/transform_input.c +++ b/source/blender/editors/transform/transform_input.c @@ -94,6 +94,12 @@ static void InputSpringFlip(TransInfo *t, MouseInput *mi, const int mval[2], flo } } +static void InputSpringDelta(TransInfo *t, MouseInput *mi, const int mval[2], float output[3]) +{ + InputSpring(t, mi, mval, output); + output[0] -= 1.0f; +} + static void InputTrackBall(TransInfo *UNUSED(t), MouseInput *mi, const int mval[2], float output[3]) { @@ -333,6 +339,11 @@ void initMouseInputMode(TransInfo *t, MouseInput *mi, MouseInputMode mode) mi->apply = InputSpringFlip; t->helpline = HLP_SPRING; break; + case INPUT_SPRING_DELTA: + calcSpringFactor(mi); + mi->apply = InputSpringDelta; + t->helpline = HLP_SPRING; + break; case INPUT_ANGLE: mi->data = MEM_callocN(sizeof(double), "angle accumulator"); mi->apply = InputAngle; -- cgit v1.2.3