GPv3: Set keyframe type #111472

Merged
Falk David merged 2 commits from amelief/blender:gpv3-keyframe-type into main 2023-09-11 11:59:06 +02:00
3 changed files with 17 additions and 1 deletions

View File

@ -27,6 +27,16 @@
namespace blender::ed::greasepencil {
void set_selected_frames_type(bke::greasepencil::Layer &layer,
const eBezTriple_KeyframeType key_type)
{
for (GreasePencilFrame &frame : layer.frames_for_write().values()) {
if (frame.is_selected()) {
frame.type = key_type;
}
}
}
bool remove_all_selected_frames(GreasePencil &grease_pencil, bke::greasepencil::Layer &layer)
{
Vector<int> frames_to_remove;

View File

@ -47,6 +47,9 @@ eAttrDomain ED_grease_pencil_selection_domain_get(bContext *C);
namespace blender::ed::greasepencil {
void set_selected_frames_type(bke::greasepencil::Layer &layer,
const eBezTriple_KeyframeType key_type);
bool remove_all_selected_frames(GreasePencil &grease_pencil, bke::greasepencil::Layer &layer);
void select_layer_channel(GreasePencil &grease_pencil, bke::greasepencil::Layer *layer);

View File

@ -1662,7 +1662,10 @@ static void setkeytype_action_keys(bAnimContext *ac, short mode)
break;
case ANIMTYPE_GREASE_PENCIL_LAYER:
/* GPv3: To be implemented. */
blender::ed::greasepencil::set_selected_frames_type(
static_cast<GreasePencilLayer *>(ale->data)->wrap(),
static_cast<eBezTriple_KeyframeType>(mode));
ale->update |= ANIM_UPDATE_DEPS;
break;
case ANIMTYPE_FCURVE: