diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-07-26 14:52:59 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-07-26 14:52:59 +0400 |
commit | ffe92d0e430aa9498c59a0335beae76b73bd54d6 (patch) | |
tree | 9c785ceb3d09a640d627734e6bca571bd9e6f314 /source/blender/editors/transform | |
parent | 25469dfb6d92cc0374fa45f1a4daf4a56670fdc2 (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.c | 23 |
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); |