Blender V5.0
ANIM_keyingsets.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2024 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
10
11#pragma once
12
13#include "RNA_types.hh"
14
15struct KeyingSet;
16struct ExtensionRNA;
17/* Forward declaration for this struct which is declared a bit later. */
18struct KeyingSetInfo;
19struct bContext;
20struct ID;
21struct Scene;
22struct PointerRNA;
23
24/* Names for builtin keying sets so we don't confuse these with labels/text,
25 * defined in python script: `keyingsets_builtins.py`. */
26
27static constexpr const char *ANIM_KS_LOCATION_ID = "Location";
28static constexpr const char *ANIM_KS_ROTATION_ID = "Rotation";
29static constexpr const char *ANIM_KS_SCALING_ID = "Scaling";
30static constexpr const char *ANIM_KS_LOC_ROT_SCALE_ID = "LocRotScale";
31static constexpr const char *ANIM_KS_LOC_ROT_SCALE_CPROP_ID = "LocRotScaleCProp";
32static constexpr const char *ANIM_KS_AVAILABLE_ID = "Available";
33static constexpr const char *ANIM_KS_WHOLE_CHARACTER_ID = "WholeCharacter";
34static constexpr const char *ANIM_KS_WHOLE_CHARACTER_SELECTED_ID = "WholeCharacterSelected";
35
37using cbKeyingSet_Poll = bool (*)(KeyingSetInfo *ksi, bContext *C);
41using cbKeyingSet_Generate = void (*)(KeyingSetInfo *ksi,
42 bContext *C,
43 KeyingSet *ks,
45
49
50 /* info */
52 char idname[/*MAX_NAME*/ 64];
54 char name[/*MAX_NAME*/ 64];
56 char description[/*RNA_DYN_DESCR_MAX*/ 1024];
59
60 /* polling callbacks */
63
64 /* generate callbacks */
73
76};
77
78namespace blender::animrig {
79
81enum class ModifyKeyMode {
82 INSERT = 0,
83 /* Not calling it just `DELETE` because that interferes with a macro on windows. */
85};
86
95
96/* -------------------------------------------------------------------- */
99
110 KeyingSet *keyingset);
111
124 KeyingSet *keyingset,
125 ModifyKeyMode mode,
126 float cfra);
127
129
130/* -------------------------------------------------------------------- */
133
140
145
149bool keyingset_find_id(KeyingSet *keyingset, ID *id);
150
154KeyingSet *get_keyingset_for_autokeying(const Scene *scene, const char *transformKSName);
155
160
162
163/* -------------------------------------------------------------------- */
166
171void keyingset_info_register(KeyingSetInfo *keyingset_info);
176void keyingset_info_unregister(Main *bmain, KeyingSetInfo *keyingset_info);
177
179
184 ID *id,
185 StructRNA *srna,
186 void *data);
188
190
191} // namespace blender::animrig
static constexpr const char * ANIM_KS_ROTATION_ID
static constexpr const char * ANIM_KS_SCALING_ID
static constexpr const char * ANIM_KS_WHOLE_CHARACTER_ID
bool(*)(KeyingSetInfo *ksi, bContext *C) cbKeyingSet_Poll
static constexpr const char * ANIM_KS_AVAILABLE_ID
static constexpr const char * ANIM_KS_LOC_ROT_SCALE_ID
void(*)(KeyingSetInfo *ksi, bContext *C, KeyingSet *ks) cbKeyingSet_Iterator
static constexpr const char * ANIM_KS_WHOLE_CHARACTER_SELECTED_ID
static constexpr const char * ANIM_KS_LOCATION_ID
void(*)(KeyingSetInfo *ksi, bContext *C, KeyingSet *ks, PointerRNA *ptr) cbKeyingSet_Generate
static constexpr const char * ANIM_KS_LOC_ROT_SCALE_CPROP_ID
#define C
Definition RandGen.cpp:29
BMesh const char void * data
KeyingSet * builtin_keyingset_get_named(const char name[])
void relative_keyingset_add_source(blender::Vector< PointerRNA > &sources, ID *id, StructRNA *srna, void *data)
KeyingSet * scene_get_active_keyingset(const Scene *scene)
KeyingSetInfo * keyingset_info_find_name(const char name[])
KeyingSet * get_keyingset_for_autokeying(const Scene *scene, const char *transformKSName)
void keyingset_info_register(KeyingSetInfo *keyingset_info)
void keyingset_info_unregister(Main *bmain, KeyingSetInfo *keyingset_info)
bool keyingset_find_id(KeyingSet *keyingset, ID *id)
int apply_keyingset(bContext *C, blender::Vector< PointerRNA > *sources, KeyingSet *keyingset, ModifyKeyMode mode, float cfra)
ModifyKeyReturn validate_keyingset(bContext *C, blender::Vector< PointerRNA > *sources, KeyingSet *keyingset)
const char * name
Definition DNA_ID.h:414
KeyingSetInfo * prev
KeyingSetInfo * next
cbKeyingSet_Generate generate
char description[1024]
ExtensionRNA rna_ext
cbKeyingSet_Iterator iter
cbKeyingSet_Poll poll
PointerRNA * ptr
Definition wm_files.cc:4238