diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-06-08 18:31:38 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-06-08 18:31:38 +0400 |
commit | b33c5168f4070e30f5ef66dcca76d1ad3c4aaa38 (patch) | |
tree | 9303fd49af427824aa3867813a45ec5e46cea781 /source/blender/editors/include | |
parent | 68c365e2f040cb61266d6ef1309fb22d064ab0d0 (diff) |
mask animation keys now editable in the dope sheet (duplicate, transform, delete, select- etc).
Diffstat (limited to 'source/blender/editors/include')
-rw-r--r-- | source/blender/editors/include/ED_anim_api.h | 16 | ||||
-rw-r--r-- | source/blender/editors/include/ED_gpencil.h | 3 | ||||
-rw-r--r-- | source/blender/editors/include/ED_keyframes_draw.h | 2 | ||||
-rw-r--r-- | source/blender/editors/include/ED_mask.h | 24 |
4 files changed, 42 insertions, 3 deletions
diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h index d91b29bb281..24aa88a36bd 100644 --- a/source/blender/editors/include/ED_anim_api.h +++ b/source/blender/editors/include/ED_anim_api.h @@ -97,7 +97,8 @@ typedef enum eAnimCont_Types { ANIMCONT_FCURVES = 5, /* animation F-Curves (bDopesheet) */ ANIMCONT_DRIVERS = 6, /* drivers (bDopesheet) */ ANIMCONT_NLA = 7, /* nla (bDopesheet) */ - ANIMCONT_CHANNEL = 8 /* animation channel (bAnimListElem) */ + ANIMCONT_CHANNEL = 8, /* animation channel (bAnimListElem) */ + ANIMCONT_MASK = 9 /* mask dopesheet */ } eAnimCont_Types; /* --------------- Channels -------------------- */ @@ -160,6 +161,9 @@ typedef enum eAnim_ChannelType { ANIMTYPE_GPDATABLOCK, ANIMTYPE_GPLAYER, + + ANIMTYPE_MASKDATABLOCK, + ANIMTYPE_MASKLAYER, ANIMTYPE_NLATRACK, ANIMTYPE_NLAACTION, @@ -173,6 +177,7 @@ typedef enum eAnim_KeyType { ALE_NONE = 0, /* no keyframe data */ ALE_FCURVE, /* F-Curve */ ALE_GPFRAME, /* Grease Pencil Frames */ + ALE_MASKLAY, /* Mask */ ALE_NLASTRIP, /* NLA Strips */ ALE_ALL, /* All channels summary */ @@ -279,6 +284,15 @@ typedef enum eAnimFilter_Flags { #define EDITABLE_GPL(gpl) ((gpl->flag & GP_LAYER_LOCKED) == 0) #define SEL_GPL(gpl) (gpl->flag & GP_LAYER_SELECT) +/* Mask Only */ +/* Grease Pencil datablock settings */ +#define EXPANDED_MASK(mask) (mask->flag & MASK_ANIMF_EXPAND) +/* Grease Pencil Layer settings */ +#define EDITABLE_MASK(masklay) ((masklay->flag & MASK_LAYERFLAG_LOCKED) == 0) +#define SEL_MASKLAY(masklay) (masklay->flag & SELECT) + + + /* NLA only */ #define SEL_NLT(nlt) (nlt->flag & NLATRACK_SELECTED) #define EDITABLE_NLT(nlt) ((nlt->flag & NLATRACK_PROTECTED) == 0) diff --git a/source/blender/editors/include/ED_gpencil.h b/source/blender/editors/include/ED_gpencil.h index 2040d4b9c32..ad686588f17 100644 --- a/source/blender/editors/include/ED_gpencil.h +++ b/source/blender/editors/include/ED_gpencil.h @@ -83,7 +83,8 @@ void draw_gpencil_view3d(struct Scene *scene, struct View3D *v3d, struct ARegion void gpencil_panel_standard(const struct bContext *C, struct Panel *pa); /* ----------- Grease-Pencil AnimEdit API ------------------ */ -short gplayer_frames_looper(struct bGPDlayer *gpl, struct Scene *scene, short (*gpf_cb)(struct bGPDframe *, struct Scene *)); +short gplayer_frames_looper(struct bGPDlayer *gpl, struct Scene *scene, + short (*gpf_cb)(struct bGPDframe *, struct Scene *)); void gplayer_make_cfra_list(struct bGPDlayer *gpl, ListBase *elems, short onlysel); short is_gplayer_frame_selected(struct bGPDlayer *gpl); diff --git a/source/blender/editors/include/ED_keyframes_draw.h b/source/blender/editors/include/ED_keyframes_draw.h index e24c21bc133..8a65699f404 100644 --- a/source/blender/editors/include/ED_keyframes_draw.h +++ b/source/blender/editors/include/ED_keyframes_draw.h @@ -123,6 +123,8 @@ void draw_summary_channel(struct View2D *v2d, struct bAnimContext *ac, float ypo /* Grease Pencil Layer */ // XXX not restored void draw_gpl_channel(struct View2D *v2d, struct bDopeSheet *ads, struct bGPDlayer *gpl, float ypos); +/* Mask Layer */ +void draw_masklay_channel(struct View2D *v2d, struct bDopeSheet *ads, struct MaskLayer *masklay, float ypos); /* Keydata Generation --------------- */ /* F-Curve */ diff --git a/source/blender/editors/include/ED_mask.h b/source/blender/editors/include/ED_mask.h index 0c2f6807632..bbfc47c582a 100644 --- a/source/blender/editors/include/ED_mask.h +++ b/source/blender/editors/include/ED_mask.h @@ -33,6 +33,7 @@ struct wmKeyConfig; struct MaskLayer; +struct MaskLayerShape; /* mask_editor.c */ void ED_operatortypes_mask(void); @@ -47,4 +48,25 @@ void ED_mask_layer_shape_auto_key(struct MaskLayer *masklay, const int frame); int ED_mask_layer_shape_auto_key_all(struct Mask *mask, const int frame); int ED_mask_layer_shape_auto_key_select(struct Mask *mask, const int frame); -#endif /* ED_TEXT_H */ +/* ----------- Mask AnimEdit API ------------------ */ +short masklayer_frames_looper(struct MaskLayer *masklay, struct Scene *scene, + short (*masklay_shape_cb)(struct MaskLayerShape *, struct Scene *)); +void masklayer_make_cfra_list(struct MaskLayer *masklay, ListBase *elems, short onlysel); + +short is_masklayer_frame_selected(struct MaskLayer *masklay); +void set_masklayer_frame_selection(struct MaskLayer *masklay, short mode); +void select_mask_frames(struct MaskLayer *masklay, short select_mode); +void select_mask_frame(struct MaskLayer *masklay, int selx, short select_mode); +void borderselect_masklayer_frames(struct MaskLayer *masklay, float min, float max, short select_mode); + +void delete_masklayer_frames(struct MaskLayer *masklay); +void duplicate_masklayer_frames(struct MaskLayer *masklay); + +//void free_gpcopybuf(void); +//void copy_gpdata(void); +//void paste_gpdata(void); + +void snap_masklayer_frames(struct MaskLayer *masklay, short mode); +void mirror_masklayer_frames(struct MaskLayer *masklay, short mode); + +#endif /* __ED_MASK_H__ */ |