Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-07-26 14:52:59 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-07-26 14:52:59 +0400
commitffe92d0e430aa9498c59a0335beae76b73bd54d6 (patch)
tree9c785ceb3d09a640d627734e6bca571bd9e6f314 /source/blender/editors/transform
parent25469dfb6d92cc0374fa45f1a4daf4a56670fdc2 (diff)
mask/image: rotate about 2d cursor now works.
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r--source/blender/editors/transform/transform_generics.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index c7846b3935b..8962174ffe2 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -73,6 +73,7 @@
#include "BKE_context.h"
#include "BKE_tessmesh.h"
#include "BKE_tracking.h"
+#include "BKE_mask.h"
#include "ED_anim_api.h"
#include "ED_armature.h"
@@ -1449,8 +1450,26 @@ void calculateCenterCursor2D(TransInfo *t)
}
if (cursor) {
- t->center[0] = cursor[0] * aspx;
- t->center[1] = cursor[1] * aspy;
+ if (t->options & CTX_MASK) {
+ float co[2];
+ int width, height;
+ float frame_size[2];
+ SpaceImage *sima = (SpaceImage *)t->sa->spacedata.first;
+ ED_space_image_get_size(sima, &width, &height);
+ frame_size[0] = width;
+ frame_size[1] = height;
+
+ BKE_mask_coord_from_frame(co, cursor, frame_size);
+
+ ED_space_image_get_aspect(sima, &aspx, &aspy);
+
+ t->center[0] = co[0] * aspx;
+ t->center[1] = co[1] * aspy;
+ }
+ else {
+ t->center[0] = cursor[0] * aspx;
+ t->center[1] = cursor[1] * aspy;
+ }
}
calculateCenter2D(t);