diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-08-27 00:23:26 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-08-27 00:23:26 +0400 |
commit | 03dbae07d346dcfb5cdaeeeea3585f642cd90d31 (patch) | |
tree | 866db44539cf778c636cd774f524970d434c77d3 /source/blender/editors/mask/mask_edit.c | |
parent | 11aa7a76fab53809f891ab8ff7898a2dd70005b8 (diff) |
Mask primitives
Currently only circle and square, might be easily
extended in the future.
New primitives are creating at cursor location.
This also implied adding 2d cursor to space clip.
Also fix set 2D cursor location which didn't work
in image editor's mask mode since 2.67.
TODO: draw_image_cursor better be moved to some
more generic file, but it's not so much
important for now and might be solved later.
Thanks Campbell for the review!
Diffstat (limited to 'source/blender/editors/mask/mask_edit.c')
-rw-r--r-- | source/blender/editors/mask/mask_edit.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/source/blender/editors/mask/mask_edit.c b/source/blender/editors/mask/mask_edit.c index 96cb2d7ccc3..62eb9cc240a 100644 --- a/source/blender/editors/mask/mask_edit.c +++ b/source/blender/editors/mask/mask_edit.c @@ -363,6 +363,40 @@ void ED_mask_pixelspace_factor(ScrArea *sa, ARegion *ar, float *scalex, float *s } } +void ED_mask_cursor_location_get(ScrArea *sa, float cursor[2]) +{ + if (sa) { + switch (sa->spacetype) { + case SPACE_CLIP: + { + SpaceClip *space_clip = sa->spacedata.first; + copy_v2_v2(cursor, space_clip->cursor); + break; + } + case SPACE_SEQ: + { + zero_v2(cursor); + break; + } + case SPACE_IMAGE: + { + SpaceImage *space_image = sa->spacedata.first; + copy_v2_v2(cursor, space_image->cursor); + break; + } + default: + /* possible other spaces from which mask editing is available */ + BLI_assert(0); + zero_v2(cursor); + break; + } + } + else { + BLI_assert(0); + zero_v2(cursor); + } +} + /********************** registration *********************/ void ED_operatortypes_mask(void) @@ -376,6 +410,8 @@ void ED_operatortypes_mask(void) /* add */ WM_operatortype_append(MASK_OT_add_vertex); WM_operatortype_append(MASK_OT_add_feather_vertex); + WM_operatortype_append(MASK_OT_primitive_circle_add); + WM_operatortype_append(MASK_OT_primitive_square_add); /* geometry */ WM_operatortype_append(MASK_OT_switch_direction); @@ -432,6 +468,9 @@ void ED_keymap_mask(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "MASK_OT_new", NKEY, KM_PRESS, KM_ALT, 0); + /* add menu */ + WM_keymap_add_menu(keymap, "MASK_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0); + /* mask mode supports PET now */ ED_keymap_proportional_cycle(keyconf, keymap); ED_keymap_proportional_maskmode(keyconf, keymap); |