Blender  V3.3
BKE_anim_data.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2009 Blender Foundation, Joshua Leung. All rights reserved. */
3 
4 #pragma once
5 
10 #include "BLI_sys_types.h" /* for bool */
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 struct AnimData;
17 struct BlendDataReader;
18 struct BlendExpander;
19 struct BlendLibReader;
20 struct BlendWriter;
21 struct ID;
23 struct Main;
24 struct ReportList;
25 struct bAction;
26 
27 /* ************************************* */
28 /* AnimData API */
29 
33 bool id_type_can_have_animdata(short id_type);
34 bool id_can_have_animdata(const struct ID *id);
35 
39 struct AnimData *BKE_animdata_from_id(const struct ID *id);
40 
44 struct AnimData *BKE_animdata_ensure_id(struct ID *id);
45 
58 bool BKE_animdata_set_action(struct ReportList *reports, struct ID *id, struct bAction *act);
59 
60 bool BKE_animdata_action_editable(const struct AnimData *adt);
61 
66 bool BKE_animdata_action_ensure_idroot(const struct ID *owner, struct bAction *action);
67 
71 void BKE_animdata_free(struct ID *id, bool do_id_user);
72 
76 bool BKE_animdata_id_is_animated(const struct ID *id);
77 
83 
90 struct AnimData *BKE_animdata_copy(struct Main *bmain, struct AnimData *adt, int flag);
91 
97 bool BKE_animdata_copy_id(struct Main *bmain, struct ID *id_to, struct ID *id_from, int flag);
98 
102 void BKE_animdata_copy_id_action(struct Main *bmain, struct ID *id);
103 
104 void BKE_animdata_duplicate_id_action(struct Main *bmain, struct ID *id, uint duplicate_flags);
105 
106 /* Merge copies of data from source AnimData block */
108  /* Keep destination action */
110 
111  /* Use src action (make a new copy) */
113 
114  /* Use src action (but just reference the existing version) */
117 
121 void BKE_animdata_merge_copy(struct Main *bmain,
122  struct ID *dst_id,
123  struct ID *src_id,
124  eAnimData_MergeCopy_Modes action_mode,
125  bool fix_drivers);
126 
127 void BKE_animdata_blend_write(struct BlendWriter *writer, struct AnimData *adt);
128 void BKE_animdata_blend_read_data(struct BlendDataReader *reader, struct AnimData *adt);
129 void BKE_animdata_blend_read_lib(struct BlendLibReader *reader,
130  struct ID *id,
131  struct AnimData *adt);
132 void BKE_animdata_blend_read_expand(struct BlendExpander *expander, struct AnimData *adt);
133 
134 #ifdef __cplusplus
135 }
136 #endif
void BKE_animdata_free(struct ID *id, bool do_id_user)
Definition: anim_data.c:197
void BKE_animdata_duplicate_id_action(struct Main *bmain, struct ID *id, uint duplicate_flags)
bool BKE_animdata_action_editable(const struct AnimData *adt)
void BKE_animdata_copy_id_action(struct Main *bmain, struct ID *id)
Definition: anim_data.c:372
bool BKE_animdata_set_action(struct ReportList *reports, struct ID *id, struct bAction *act)
Definition: anim_data.c:118
void BKE_animdata_blend_read_lib(struct BlendLibReader *reader, struct ID *id, struct AnimData *adt)
Definition: anim_data.c:1472
bool BKE_animdata_action_ensure_idroot(const struct ID *owner, struct bAction *action)
void BKE_animdata_blend_read_expand(struct BlendExpander *expander, struct AnimData *adt)
Definition: anim_data.c:1491
void BKE_animdata_foreach_id(struct AnimData *adt, struct LibraryForeachIDData *data)
Definition: anim_data.c:257
eAnimData_MergeCopy_Modes
@ ADT_MERGECOPY_KEEP_DST
@ ADT_MERGECOPY_SRC_COPY
@ ADT_MERGECOPY_SRC_REF
bool id_can_have_animdata(const struct ID *id)
struct AnimData * BKE_animdata_copy(struct Main *bmain, struct AnimData *adt, int flag)
Definition: anim_data.c:275
bool id_type_can_have_animdata(short id_type)
Definition: anim_data.c:57
bool BKE_animdata_id_is_animated(const struct ID *id)
Definition: anim_data.c:238
struct AnimData * BKE_animdata_ensure_id(struct ID *id)
Definition: anim_data.c:90
void BKE_animdata_merge_copy(struct Main *bmain, struct ID *dst_id, struct ID *src_id, eAnimData_MergeCopy_Modes action_mode, bool fix_drivers)
Definition: anim_data.c:387
void BKE_animdata_blend_read_data(struct BlendDataReader *reader, struct AnimData *adt)
Definition: anim_data.c:1443
void BKE_animdata_blend_write(struct BlendWriter *writer, struct AnimData *adt)
Definition: anim_data.c:1421
bool BKE_animdata_copy_id(struct Main *bmain, struct ID *id_to, struct ID *id_from, int flag)
Definition: anim_data.c:327
struct AnimData * BKE_animdata_from_id(const struct ID *id)
unsigned int uint
Definition: BLI_sys_types.h:67
bAction * action
Definition: DNA_ID.h:368
Definition: BKE_main.h:121