Blender  V2.93
Classes | Macros | Typedefs | Enumerations | Functions
ED_anim_api.h File Reference

Go to the source code of this file.

Classes

struct  bAnimContext
 
struct  bAnimListElem
 
struct  bAnimChannelType
 

Macros

#define ANIM_UPDATE_DEFAULT   (ANIM_UPDATE_DEPS | ANIM_UPDATE_ORDER | ANIM_UPDATE_HANDLES)
 
#define ANIM_UPDATE_DEFAULT_NOHANDLES   (ANIM_UPDATE_DEFAULT & ~ANIM_UPDATE_HANDLES)
 
#define SEL_SCEC(sce)   (CHECK_TYPE_INLINE(sce, Scene *), ((sce->flag & SCE_DS_SELECTED)))
 
#define EXPANDED_SCEC(sce)   (CHECK_TYPE_INLINE(sce, Scene *), ((sce->flag & SCE_DS_COLLAPSED) == 0))
 
#define FILTER_WOR_SCED(wo)   (CHECK_TYPE_INLINE(wo, World *), (wo->flag & WO_DS_EXPAND))
 
#define FILTER_LS_SCED(linestyle)   ((linestyle->flag & LS_DS_EXPAND))
 
#define SEL_OBJC(base)   (CHECK_TYPE_INLINE(base, Base *), ((base->flag & SELECT)))
 
#define EXPANDED_OBJC(ob)    (CHECK_TYPE_INLINE(ob, Object *), (((ob)->nlaflag & OB_ADS_COLLAPSED) == 0))
 
#define FILTER_SKE_OBJD(key)   (CHECK_TYPE_INLINE(key, Key *), ((key->flag & KEY_DS_EXPAND)))
 
#define FILTER_MAT_OBJD(ma)   (CHECK_TYPE_INLINE(ma, Material *), ((ma->flag & MA_DS_EXPAND)))
 
#define FILTER_LAM_OBJD(la)   (CHECK_TYPE_INLINE(la, Light *), ((la->flag & LA_DS_EXPAND)))
 
#define FILTER_CAM_OBJD(ca)   (CHECK_TYPE_INLINE(ca, Camera *), ((ca->flag & CAM_DS_EXPAND)))
 
#define FILTER_CACHEFILE_OBJD(cf)    (CHECK_TYPE_INLINE(cf, CacheFile *), (((cf)->flag & CACHEFILE_DS_EXPAND)))
 
#define FILTER_CUR_OBJD(cu)   (CHECK_TYPE_INLINE(cu, Curve *), ((cu->flag & CU_DS_EXPAND)))
 
#define FILTER_PART_OBJD(part)    (CHECK_TYPE_INLINE(part, ParticleSettings *), (((part)->flag & PART_DS_EXPAND)))
 
#define FILTER_MBALL_OBJD(mb)   (CHECK_TYPE_INLINE(mb, MetaBall *), ((mb->flag2 & MB_DS_EXPAND)))
 
#define FILTER_ARM_OBJD(arm)   (CHECK_TYPE_INLINE(arm, bArmature *), ((arm->flag & ARM_DS_EXPAND)))
 
#define FILTER_MESH_OBJD(me)   (CHECK_TYPE_INLINE(me, Mesh *), ((me->flag & ME_DS_EXPAND)))
 
#define FILTER_LATTICE_OBJD(lt)   (CHECK_TYPE_INLINE(lt, Lattice *), ((lt->flag & LT_DS_EXPAND)))
 
#define FILTER_SPK_OBJD(spk)   (CHECK_TYPE_INLINE(spk, Speaker *), ((spk->flag & SPK_DS_EXPAND)))
 
#define FILTER_HAIR_OBJD(ha)   (CHECK_TYPE_INLINE(ha, Hair *), ((ha->flag & HA_DS_EXPAND)))
 
#define FILTER_POINTS_OBJD(pt)   (CHECK_TYPE_INLINE(pt, PointCloud *), ((pt->flag & PT_DS_EXPAND)))
 
#define FILTER_VOLUME_OBJD(vo)   (CHECK_TYPE_INLINE(vo, Volume *), ((vo->flag & VO_DS_EXPAND)))
 
#define FILTER_SIMULATION_OBJD(sim)    (CHECK_TYPE_INLINE(sim, Simulation *), ((sim->flag & SIM_DS_EXPAND)))
 
#define FILTER_NTREE_DATA(ntree)    (CHECK_TYPE_INLINE(ntree, bNodeTree *), (((ntree)->flag & NTREE_DS_EXPAND)))
 
#define FILTER_TEX_DATA(tex)   (CHECK_TYPE_INLINE(tex, Tex *), ((tex->flag & TEX_DS_EXPAND)))
 
#define SEL_ACTC(actc)   ((actc->flag & ACT_SELECTED))
 
#define EXPANDED_ACTC(actc)   ((actc->flag & ACT_COLLAPSED) == 0)
 
#define EXPANDED_DRVD(adt)   ((adt->flag & ADT_DRIVERS_COLLAPSED) == 0)
 
#define EDITABLE_AGRP(agrp)   (((agrp)->flag & AGRP_PROTECTED) == 0)
 
#define EXPANDED_AGRP(ac, agrp)
 
#define SEL_AGRP(agrp)   (((agrp)->flag & AGRP_SELECTED) || ((agrp)->flag & AGRP_ACTIVE))
 
#define EDITABLE_FCU(fcu)   ((fcu->flag & FCURVE_PROTECTED) == 0)
 
#define SEL_FCU(fcu)   (fcu->flag & FCURVE_SELECTED)
 
#define EDITABLE_SHAPEKEY(kb)   ((kb->flag & KEYBLOCK_LOCKED) == 0)
 
#define SEL_SHAPEKEY(kb)   (kb->flag & KEYBLOCK_SEL)
 
#define EXPANDED_GPD(gpd)   (gpd->flag & GP_DATA_EXPAND)
 
#define EDITABLE_GPL(gpl)   ((gpl->flag & GP_LAYER_LOCKED) == 0)
 
#define SEL_GPL(gpl)   (gpl->flag & GP_LAYER_SELECT)
 
#define EXPANDED_MASK(mask)   (mask->flag & MASK_ANIMF_EXPAND)
 
#define EDITABLE_MASK(masklay)   ((masklay->flag & MASK_LAYERFLAG_LOCKED) == 0)
 
#define SEL_MASKLAY(masklay)   (masklay->flag & SELECT)
 
#define SEL_NLT(nlt)   (nlt->flag & NLATRACK_SELECTED)
 
#define EDITABLE_NLT(nlt)   ((nlt->flag & NLATRACK_PROTECTED) == 0)
 
#define EXPANDED_MCLIP(clip)   (clip->flag & MCLIP_DATA_EXPAND)
 
#define EXPANDED_PALETTE(palette)   (palette->flag & PALETTE_DATA_EXPAND)
 
#define SEL_ANIMDATA(adt)   (adt->flag & ADT_UI_SELECTED)
 
#define ACHANNEL_FIRST_TOP(ac)    (UI_view2d_scale_get_y(&(ac)->region->v2d) * -UI_TIME_SCRUB_MARGIN_Y - ACHANNEL_SKIP)
 
#define ACHANNEL_HEIGHT(ac)   (0.8f * (ac)->yscale_fac * U.widget_unit)
 
#define ACHANNEL_SKIP   (0.1f * U.widget_unit)
 
#define ACHANNEL_STEP(ac)   (ACHANNEL_HEIGHT(ac) + ACHANNEL_SKIP)
 
#define ACHANNEL_TOT_HEIGHT(ac, item_amount)    (-ACHANNEL_FIRST_TOP(ac) + ACHANNEL_STEP(ac) * (item_amount + 1))
 
#define ACHANNEL_NAMEWIDTH   (10 * U.widget_unit)
 
#define ACHANNEL_BUTTON_WIDTH   (0.8f * U.widget_unit)
 
#define NLACHANNEL_FIRST_TOP(ac)    (UI_view2d_scale_get_y(&(ac)->region->v2d) * -UI_TIME_SCRUB_MARGIN_Y - NLACHANNEL_SKIP)
 
#define NLACHANNEL_HEIGHT(snla)
 
#define NLACHANNEL_SKIP   (0.1f * U.widget_unit)
 
#define NLACHANNEL_STEP(snla)   (NLACHANNEL_HEIGHT(snla) + NLACHANNEL_SKIP)
 
#define NLACHANNEL_TOT_HEIGHT(ac, item_amount)    (-NLACHANNEL_FIRST_TOP(ac) + NLACHANNEL_STEP(((SpaceNla *)(ac)->sl)) * (item_amount + 1))
 
#define NLACHANNEL_NAMEWIDTH   (10 * U.widget_unit)
 
#define NLACHANNEL_BUTTON_WIDTH   (0.8f * U.widget_unit)
 
#define BEZKEYTYPE(bezt)   ((bezt)->hide)
 
#define ACHANNEL_SET_FLAG(channel, smode, sflag)
 
#define ACHANNEL_SET_FLAG_NEG(channel, smode, sflag)
 

Typedefs

typedef struct bAnimContext bAnimContext
 
typedef enum eAnimCont_Types eAnimCont_Types
 
typedef struct bAnimListElem bAnimListElem
 
typedef enum eAnim_ChannelType eAnim_ChannelType
 
typedef enum eAnim_KeyType eAnim_KeyType
 
typedef enum eAnim_Update_Flags eAnim_Update_Flags
 
typedef enum eAnimFilter_Flags eAnimFilter_Flags
 
typedef enum eAnimChannel_Role eAnimChannel_Role
 
typedef enum eAnimChannels_SetFlag eAnimChannels_SetFlag
 
typedef enum eAnimChannel_Settings eAnimChannel_Settings
 
typedef struct bAnimChannelType bAnimChannelType
 
typedef enum eAnimEditDraw_CurrentFrame eAnimEditDraw_CurrentFrame
 
typedef bool(* PanelTypePollFn) (const struct bContext *C, struct PanelType *pt)
 
typedef void(* uiListPanelIDFromDataFunc) (void *data_link, char *r_idname)
 
typedef enum eAnimUnitConv_Flags eAnimUnitConv_Flags
 
typedef enum eAnimvizCalcRange eAnimvizCalcRange
 

Enumerations

enum  eAnimCont_Types {
  ANIMCONT_NONE = 0 , ANIMCONT_ACTION = 1 , ANIMCONT_SHAPEKEY = 2 , ANIMCONT_GPENCIL = 3 ,
  ANIMCONT_DOPESHEET = 4 , ANIMCONT_FCURVES = 5 , ANIMCONT_DRIVERS = 6 , ANIMCONT_NLA = 7 ,
  ANIMCONT_CHANNEL = 8 , ANIMCONT_MASK = 9 , ANIMCONT_TIMELINE = 10
}
 
enum  eAnim_ChannelType {
  ANIMTYPE_NONE = 0 , ANIMTYPE_ANIMDATA , ANIMTYPE_SPECIALDATA__UNUSED , ANIMTYPE_SUMMARY ,
  ANIMTYPE_SCENE , ANIMTYPE_OBJECT , ANIMTYPE_GROUP , ANIMTYPE_FCURVE ,
  ANIMTYPE_NLACONTROLS , ANIMTYPE_NLACURVE , ANIMTYPE_FILLACTD , ANIMTYPE_FILLDRIVERS ,
  ANIMTYPE_DSMAT , ANIMTYPE_DSLAM , ANIMTYPE_DSCAM , ANIMTYPE_DSCACHEFILE ,
  ANIMTYPE_DSCUR , ANIMTYPE_DSSKEY , ANIMTYPE_DSWOR , ANIMTYPE_DSNTREE ,
  ANIMTYPE_DSPART , ANIMTYPE_DSMBALL , ANIMTYPE_DSARM , ANIMTYPE_DSMESH ,
  ANIMTYPE_DSTEX , ANIMTYPE_DSLAT , ANIMTYPE_DSLINESTYLE , ANIMTYPE_DSSPK ,
  ANIMTYPE_DSGPENCIL , ANIMTYPE_DSMCLIP , ANIMTYPE_DSHAIR , ANIMTYPE_DSPOINTCLOUD ,
  ANIMTYPE_DSVOLUME , ANIMTYPE_DSSIMULATION , ANIMTYPE_SHAPEKEY , ANIMTYPE_GPDATABLOCK ,
  ANIMTYPE_GPLAYER , ANIMTYPE_MASKDATABLOCK , ANIMTYPE_MASKLAYER , ANIMTYPE_NLATRACK ,
  ANIMTYPE_NLAACTION , ANIMTYPE_PALETTE , ANIMTYPE_NUM_TYPES
}
 
enum  eAnim_KeyType {
  ALE_NONE = 0 , ALE_FCURVE , ALE_GPFRAME , ALE_MASKLAY ,
  ALE_NLASTRIP , ALE_ALL , ALE_SCE , ALE_OB ,
  ALE_ACT , ALE_GROUP
}
 
enum  eAnim_Update_Flags { ANIM_UPDATE_DEPS = (1 << 0) , ANIM_UPDATE_ORDER = (1 << 1) , ANIM_UPDATE_HANDLES = (1 << 2) }
 
enum  eAnimFilter_Flags {
  ANIMFILTER_DATA_VISIBLE = (1 << 0) , ANIMFILTER_LIST_VISIBLE = (1 << 1) , ANIMFILTER_CURVE_VISIBLE = (1 << 2) , ANIMFILTER_LIST_CHANNELS = (1 << 3) ,
  ANIMFILTER_ACTIVE = (1 << 4) , ANIMFILTER_ACTGROUPED = (1 << 5) , ANIMFILTER_SEL = (1 << 6) , ANIMFILTER_UNSEL = (1 << 7) ,
  ANIMFILTER_FOREDIT = (1 << 8) , ANIMFILTER_SELEDIT = (1 << 9) , ANIMFILTER_ANIMDATA = (1 << 10) , ANIMFILTER_NODUPLIS = (1 << 11) ,
  ANIMFILTER_TMP_PEEK = (1 << 30) , ANIMFILTER_TMP_IGNORE_ONLYSEL = (1u << 31)
}
 
enum  eAnimChannel_Role { ACHANNEL_ROLE_EXPANDER = -1 , ACHANNEL_ROLE_CHANNEL = 1 }
 
enum  eAnimChannels_SetFlag { ACHANNEL_SETFLAG_CLEAR = 0 , ACHANNEL_SETFLAG_ADD = 1 , ACHANNEL_SETFLAG_INVERT = 2 , ACHANNEL_SETFLAG_TOGGLE = 3 }
 
enum  eAnimChannel_Settings {
  ACHANNEL_SETTING_SELECT = 0 , ACHANNEL_SETTING_PROTECT = 1 , ACHANNEL_SETTING_MUTE = 2 , ACHANNEL_SETTING_EXPAND = 3 ,
  ACHANNEL_SETTING_VISIBLE = 4 , ACHANNEL_SETTING_SOLO = 5 , ACHANNEL_SETTING_PINNED = 6 , ACHANNEL_SETTING_MOD_OFF = 7 ,
  ACHANNEL_SETTING_ALWAYS_VISIBLE = 8
}
 
enum  eAnimEditDraw_CurrentFrame { DRAWCFRA_UNIT_SECONDS = (1 << 0) , DRAWCFRA_WIDE = (1 << 1) }
 
enum  eAnimUnitConv_Flags {
  ANIM_UNITCONV_RESTORE = (1 << 0) , ANIM_UNITCONV_ONLYKEYS = (1 << 1) , ANIM_UNITCONV_ONLYSEL = (1 << 2) , ANIM_UNITCONV_SELVERTS = (1 << 3) ,
  ANIM_UNITCONV_NORMALIZE = (1 << 5) , ANIM_UNITCONV_NORMALIZE_FREEZE = (1 << 6)
}
 
enum  eAnimvizCalcRange { ANIMVIZ_CALC_RANGE_CURRENT_FRAME , ANIMVIZ_CALC_RANGE_CHANGED , ANIMVIZ_CALC_RANGE_FULL }
 

Functions

size_t ANIM_animdata_filter (bAnimContext *ac, ListBase *anim_data, eAnimFilter_Flags filter_mode, void *data, eAnimCont_Types datatype)
 
bool ANIM_animdata_get_context (const struct bContext *C, bAnimContext *ac)
 
bool ANIM_animdata_context_getdata (bAnimContext *ac)
 
void ANIM_animdata_update (bAnimContext *ac, ListBase *anim_data)
 
void ANIM_animdata_freelist (ListBase *anim_data)
 
const bAnimChannelTypeANIM_channel_get_typeinfo (bAnimListElem *ale)
 
void ANIM_channel_debug_print_info (bAnimListElem *ale, short indent_level)
 
void ANIM_channel_draw (bAnimContext *ac, bAnimListElem *ale, float yminc, float ymaxc, size_t channel_index)
 
void ANIM_channel_draw_widgets (const struct bContext *C, bAnimContext *ac, bAnimListElem *ale, struct uiBlock *block, rctf *rect, size_t channel_index)
 
short ANIM_channel_setting_get (bAnimContext *ac, bAnimListElem *ale, eAnimChannel_Settings setting)
 
void ANIM_channel_setting_set (bAnimContext *ac, bAnimListElem *ale, eAnimChannel_Settings setting, eAnimChannels_SetFlag mode)
 
void ANIM_flush_setting_anim_channels (bAnimContext *ac, ListBase *anim_data, bAnimListElem *ale_setting, eAnimChannel_Settings setting, eAnimChannels_SetFlag mode)
 
void ANIM_anim_channels_select_set (bAnimContext *ac, eAnimChannels_SetFlag sel)
 
void ANIM_anim_channels_select_toggle (bAnimContext *ac)
 
void ANIM_set_active_channel (bAnimContext *ac, void *data, eAnimCont_Types datatype, eAnimFilter_Flags filter, void *channel_data, eAnim_ChannelType channel_type)
 
void ANIM_fcurve_delete_from_animdata (bAnimContext *ac, struct AnimData *adt, struct FCurve *fcu)
 
bool ANIM_remove_empty_action_from_animdata (struct AnimData *adt)
 
void ANIM_draw_cfra (const struct bContext *C, struct View2D *v2d, short flag)
 
void ANIM_draw_previewrange (const struct bContext *C, struct View2D *v2d, int end_frame_width)
 
void ANIM_draw_framerange (struct Scene *scene, struct View2D *v2d)
 
struct NlaStripANIM_nla_context_strip (const struct bContext *C)
 
struct FCurveANIM_graph_context_fcurve (const struct bContext *C)
 
void ANIM_fmodifier_panels (const struct bContext *C, struct ID *owner_id, struct ListBase *fmodifiers, uiListPanelIDFromDataFunc panel_id_fn)
 
void ANIM_modifier_panels_register_graph_and_NLA (struct ARegionType *region_type, const char *modifier_panel_prefix, PanelTypePollFn poll_function)
 
void ANIM_modifier_panels_register_graph_only (struct ARegionType *region_type, const char *modifier_panel_prefix, PanelTypePollFn poll_function)
 
void ANIM_fmodifiers_copybuf_free (void)
 
bool ANIM_fmodifiers_copy_to_buf (ListBase *modifiers, bool active)
 
bool ANIM_fmodifiers_paste_from_buf (ListBase *modifiers, bool replace, struct FCurve *curve)
 
int getname_anim_fcurve (char *name, struct ID *id, struct FCurve *fcu)
 
void getcolor_fcurve_rainbow (int cur, int tot, float out[3])
 
void nla_action_get_color (struct AnimData *adt, struct bAction *act, float color[4])
 
struct AnimDataANIM_nla_mapping_get (bAnimContext *ac, bAnimListElem *ale)
 
void ANIM_nla_mapping_apply_fcurve (struct AnimData *adt, struct FCurve *fcu, bool restore, bool only_keys)
 
void ED_nla_postop_refresh (bAnimContext *ac)
 
short ANIM_get_normalization_flags (bAnimContext *ac)
 
float ANIM_unit_mapping_get_factor (struct Scene *scene, struct ID *id, struct FCurve *fcu, short flag, float *r_offset)
 
void ANIM_id_update (struct Main *bmain, struct ID *id)
 
void ANIM_list_elem_update (struct Main *bmain, struct Scene *scene, bAnimListElem *ale)
 
void ANIM_sync_animchannels_to_data (const struct bContext *C)
 
void ANIM_center_frame (struct bContext *C, int smooth_viewtx)
 
void ED_operatortypes_animchannels (void)
 
void ED_keymap_animchannels (struct wmKeyConfig *keyconf)
 
void ED_operatortypes_anim (void)
 
void ED_keymap_anim (struct wmKeyConfig *keyconf)
 
void ED_operatormacros_graph (void)
 
void ED_operatormacros_action (void)
 
struct AnimDataED_actedit_animdata_from_context (struct bContext *C)
 
void ED_animedit_unlink_action (struct bContext *C, struct ID *id, struct AnimData *adt, struct bAction *act, struct ReportList *reports, bool force_delete)
 
void ED_drivers_editor_init (struct bContext *C, struct ScrArea *area)
 
struct Depsgraphanimviz_depsgraph_build (struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, struct ListBase *targets)
 
void animviz_calc_motionpaths (struct Depsgraph *depsgraph, struct Main *bmain, struct Scene *scene, ListBase *targets, eAnimvizCalcRange range, bool restore)
 
void animviz_get_object_motionpaths (struct Object *ob, ListBase *targets)
 

Macro Definition Documentation

◆ ACHANNEL_BUTTON_WIDTH

#define ACHANNEL_BUTTON_WIDTH   (0.8f * U.widget_unit)

Definition at line 440 of file ED_anim_api.h.

◆ ACHANNEL_FIRST_TOP

#define ACHANNEL_FIRST_TOP (   ac)     (UI_view2d_scale_get_y(&(ac)->region->v2d) * -UI_TIME_SCRUB_MARGIN_Y - ACHANNEL_SKIP)

Definition at line 427 of file ED_anim_api.h.

◆ ACHANNEL_HEIGHT

#define ACHANNEL_HEIGHT (   ac)    (0.8f * (ac)->yscale_fac * U.widget_unit)

Definition at line 429 of file ED_anim_api.h.

◆ ACHANNEL_NAMEWIDTH

#define ACHANNEL_NAMEWIDTH   (10 * U.widget_unit)

Definition at line 437 of file ED_anim_api.h.

◆ ACHANNEL_SET_FLAG

#define ACHANNEL_SET_FLAG (   channel,
  smode,
  sflag 
)
Value:
{ \
if (smode == ACHANNEL_SETFLAG_INVERT) { \
(channel)->flag ^= (sflag); \
} \
else if (smode == ACHANNEL_SETFLAG_ADD) { \
(channel)->flag |= (sflag); \
} \
else { \
(channel)->flag &= ~(sflag); \
} \
} \
((void)0)
@ ACHANNEL_SETFLAG_ADD
Definition: ED_anim_api.h:510
@ ACHANNEL_SETFLAG_INVERT
Definition: ED_anim_api.h:512

Definition at line 796 of file ED_anim_api.h.

◆ ACHANNEL_SET_FLAG_NEG

#define ACHANNEL_SET_FLAG_NEG (   channel,
  smode,
  sflag 
)
Value:
{ \
if (smode == ACHANNEL_SETFLAG_INVERT) { \
(channel)->flag ^= (sflag); \
} \
else if (smode == ACHANNEL_SETFLAG_ADD) { \
(channel)->flag &= ~(sflag); \
} \
else { \
(channel)->flag |= (sflag); \
} \
} \
((void)0)

Definition at line 815 of file ED_anim_api.h.

◆ ACHANNEL_SKIP

#define ACHANNEL_SKIP   (0.1f * U.widget_unit)

Definition at line 430 of file ED_anim_api.h.

◆ ACHANNEL_STEP

#define ACHANNEL_STEP (   ac)    (ACHANNEL_HEIGHT(ac) + ACHANNEL_SKIP)

Definition at line 431 of file ED_anim_api.h.

◆ ACHANNEL_TOT_HEIGHT

#define ACHANNEL_TOT_HEIGHT (   ac,
  item_amount 
)     (-ACHANNEL_FIRST_TOP(ac) + ACHANNEL_STEP(ac) * (item_amount + 1))

Definition at line 433 of file ED_anim_api.h.

◆ ANIM_UPDATE_DEFAULT

#define ANIM_UPDATE_DEFAULT   (ANIM_UPDATE_DEPS | ANIM_UPDATE_ORDER | ANIM_UPDATE_HANDLES)

Definition at line 281 of file ED_anim_api.h.

◆ ANIM_UPDATE_DEFAULT_NOHANDLES

#define ANIM_UPDATE_DEFAULT_NOHANDLES   (ANIM_UPDATE_DEFAULT & ~ANIM_UPDATE_HANDLES)

Definition at line 282 of file ED_anim_api.h.

◆ BEZKEYTYPE

#define BEZKEYTYPE (   bezt)    ((bezt)->hide)

Definition at line 789 of file ED_anim_api.h.

◆ EDITABLE_AGRP

#define EDITABLE_AGRP (   agrp)    (((agrp)->flag & AGRP_PROTECTED) == 0)

Definition at line 384 of file ED_anim_api.h.

◆ EDITABLE_FCU

#define EDITABLE_FCU (   fcu)    ((fcu->flag & FCURVE_PROTECTED) == 0)

Definition at line 390 of file ED_anim_api.h.

◆ EDITABLE_GPL

#define EDITABLE_GPL (   gpl)    ((gpl->flag & GP_LAYER_LOCKED) == 0)

Definition at line 401 of file ED_anim_api.h.

◆ EDITABLE_MASK

#define EDITABLE_MASK (   masklay)    ((masklay->flag & MASK_LAYERFLAG_LOCKED) == 0)

Definition at line 408 of file ED_anim_api.h.

◆ EDITABLE_NLT

#define EDITABLE_NLT (   nlt)    ((nlt->flag & NLATRACK_PROTECTED) == 0)

Definition at line 413 of file ED_anim_api.h.

◆ EDITABLE_SHAPEKEY

#define EDITABLE_SHAPEKEY (   kb)    ((kb->flag & KEYBLOCK_LOCKED) == 0)

Definition at line 394 of file ED_anim_api.h.

◆ EXPANDED_ACTC

#define EXPANDED_ACTC (   actc)    ((actc->flag & ACT_COLLAPSED) == 0)

Definition at line 378 of file ED_anim_api.h.

◆ EXPANDED_AGRP

#define EXPANDED_AGRP (   ac,
  agrp 
)
Value:
(((!(ac) || ((ac)->spacetype != SPACE_GRAPH)) && ((agrp)->flag & AGRP_EXPANDED)) || \
(((ac) && ((ac)->spacetype == SPACE_GRAPH)) && ((agrp)->flag & AGRP_EXPANDED_G)))
@ AGRP_EXPANDED_G
@ AGRP_EXPANDED
@ SPACE_GRAPH

Definition at line 385 of file ED_anim_api.h.

◆ EXPANDED_DRVD

#define EXPANDED_DRVD (   adt)    ((adt->flag & ADT_DRIVERS_COLLAPSED) == 0)

Definition at line 380 of file ED_anim_api.h.

◆ EXPANDED_GPD

#define EXPANDED_GPD (   gpd)    (gpd->flag & GP_DATA_EXPAND)

Definition at line 399 of file ED_anim_api.h.

◆ EXPANDED_MASK

#define EXPANDED_MASK (   mask)    (mask->flag & MASK_ANIMF_EXPAND)

Definition at line 406 of file ED_anim_api.h.

◆ EXPANDED_MCLIP

#define EXPANDED_MCLIP (   clip)    (clip->flag & MCLIP_DATA_EXPAND)

Definition at line 416 of file ED_anim_api.h.

◆ EXPANDED_OBJC

#define EXPANDED_OBJC (   ob)     (CHECK_TYPE_INLINE(ob, Object *), (((ob)->nlaflag & OB_ADS_COLLAPSED) == 0))

Definition at line 349 of file ED_anim_api.h.

◆ EXPANDED_PALETTE

#define EXPANDED_PALETTE (   palette)    (palette->flag & PALETTE_DATA_EXPAND)

Definition at line 419 of file ED_anim_api.h.

◆ EXPANDED_SCEC

#define EXPANDED_SCEC (   sce)    (CHECK_TYPE_INLINE(sce, Scene *), ((sce->flag & SCE_DS_COLLAPSED) == 0))

Definition at line 343 of file ED_anim_api.h.

◆ FILTER_ARM_OBJD

#define FILTER_ARM_OBJD (   arm)    (CHECK_TYPE_INLINE(arm, bArmature *), ((arm->flag & ARM_DS_EXPAND)))

Definition at line 362 of file ED_anim_api.h.

◆ FILTER_CACHEFILE_OBJD

#define FILTER_CACHEFILE_OBJD (   cf)     (CHECK_TYPE_INLINE(cf, CacheFile *), (((cf)->flag & CACHEFILE_DS_EXPAND)))

Definition at line 356 of file ED_anim_api.h.

◆ FILTER_CAM_OBJD

#define FILTER_CAM_OBJD (   ca)    (CHECK_TYPE_INLINE(ca, Camera *), ((ca->flag & CAM_DS_EXPAND)))

Definition at line 355 of file ED_anim_api.h.

◆ FILTER_CUR_OBJD

#define FILTER_CUR_OBJD (   cu)    (CHECK_TYPE_INLINE(cu, Curve *), ((cu->flag & CU_DS_EXPAND)))

Definition at line 358 of file ED_anim_api.h.

◆ FILTER_HAIR_OBJD

#define FILTER_HAIR_OBJD (   ha)    (CHECK_TYPE_INLINE(ha, Hair *), ((ha->flag & HA_DS_EXPAND)))

Definition at line 366 of file ED_anim_api.h.

◆ FILTER_LAM_OBJD

#define FILTER_LAM_OBJD (   la)    (CHECK_TYPE_INLINE(la, Light *), ((la->flag & LA_DS_EXPAND)))

Definition at line 354 of file ED_anim_api.h.

◆ FILTER_LATTICE_OBJD

#define FILTER_LATTICE_OBJD (   lt)    (CHECK_TYPE_INLINE(lt, Lattice *), ((lt->flag & LT_DS_EXPAND)))

Definition at line 364 of file ED_anim_api.h.

◆ FILTER_LS_SCED

#define FILTER_LS_SCED (   linestyle)    ((linestyle->flag & LS_DS_EXPAND))

Definition at line 346 of file ED_anim_api.h.

◆ FILTER_MAT_OBJD

#define FILTER_MAT_OBJD (   ma)    (CHECK_TYPE_INLINE(ma, Material *), ((ma->flag & MA_DS_EXPAND)))

Definition at line 353 of file ED_anim_api.h.

◆ FILTER_MBALL_OBJD

#define FILTER_MBALL_OBJD (   mb)    (CHECK_TYPE_INLINE(mb, MetaBall *), ((mb->flag2 & MB_DS_EXPAND)))

Definition at line 361 of file ED_anim_api.h.

◆ FILTER_MESH_OBJD

#define FILTER_MESH_OBJD (   me)    (CHECK_TYPE_INLINE(me, Mesh *), ((me->flag & ME_DS_EXPAND)))

Definition at line 363 of file ED_anim_api.h.

◆ FILTER_NTREE_DATA

#define FILTER_NTREE_DATA (   ntree)     (CHECK_TYPE_INLINE(ntree, bNodeTree *), (((ntree)->flag & NTREE_DS_EXPAND)))

Definition at line 372 of file ED_anim_api.h.

◆ FILTER_PART_OBJD

#define FILTER_PART_OBJD (   part)     (CHECK_TYPE_INLINE(part, ParticleSettings *), (((part)->flag & PART_DS_EXPAND)))

Definition at line 359 of file ED_anim_api.h.

◆ FILTER_POINTS_OBJD

#define FILTER_POINTS_OBJD (   pt)    (CHECK_TYPE_INLINE(pt, PointCloud *), ((pt->flag & PT_DS_EXPAND)))

Definition at line 367 of file ED_anim_api.h.

◆ FILTER_SIMULATION_OBJD

#define FILTER_SIMULATION_OBJD (   sim)     (CHECK_TYPE_INLINE(sim, Simulation *), ((sim->flag & SIM_DS_EXPAND)))

Definition at line 369 of file ED_anim_api.h.

◆ FILTER_SKE_OBJD

#define FILTER_SKE_OBJD (   key)    (CHECK_TYPE_INLINE(key, Key *), ((key->flag & KEY_DS_EXPAND)))

Definition at line 352 of file ED_anim_api.h.

◆ FILTER_SPK_OBJD

#define FILTER_SPK_OBJD (   spk)    (CHECK_TYPE_INLINE(spk, Speaker *), ((spk->flag & SPK_DS_EXPAND)))

Definition at line 365 of file ED_anim_api.h.

◆ FILTER_TEX_DATA

#define FILTER_TEX_DATA (   tex)    (CHECK_TYPE_INLINE(tex, Tex *), ((tex->flag & TEX_DS_EXPAND)))

Definition at line 374 of file ED_anim_api.h.

◆ FILTER_VOLUME_OBJD

#define FILTER_VOLUME_OBJD (   vo)    (CHECK_TYPE_INLINE(vo, Volume *), ((vo->flag & VO_DS_EXPAND)))

Definition at line 368 of file ED_anim_api.h.

◆ FILTER_WOR_SCED

#define FILTER_WOR_SCED (   wo)    (CHECK_TYPE_INLINE(wo, World *), (wo->flag & WO_DS_EXPAND))

Definition at line 345 of file ED_anim_api.h.

◆ NLACHANNEL_BUTTON_WIDTH

#define NLACHANNEL_BUTTON_WIDTH   (0.8f * U.widget_unit)

Definition at line 460 of file ED_anim_api.h.

◆ NLACHANNEL_FIRST_TOP

#define NLACHANNEL_FIRST_TOP (   ac)     (UI_view2d_scale_get_y(&(ac)->region->v2d) * -UI_TIME_SCRUB_MARGIN_Y - NLACHANNEL_SKIP)

Definition at line 445 of file ED_anim_api.h.

◆ NLACHANNEL_HEIGHT

#define NLACHANNEL_HEIGHT (   snla)
Value:
(((snla) && ((snla)->flag & SNLA_NOSTRIPCURVES)) ? (0.8f * U.widget_unit) : \
(1.2f * U.widget_unit))
@ SNLA_NOSTRIPCURVES
unsigned int U
Definition: btGjkEpa3.h:78

Definition at line 447 of file ED_anim_api.h.

◆ NLACHANNEL_NAMEWIDTH

#define NLACHANNEL_NAMEWIDTH   (10 * U.widget_unit)

Definition at line 457 of file ED_anim_api.h.

◆ NLACHANNEL_SKIP

#define NLACHANNEL_SKIP   (0.1f * U.widget_unit)

Definition at line 450 of file ED_anim_api.h.

◆ NLACHANNEL_STEP

#define NLACHANNEL_STEP (   snla)    (NLACHANNEL_HEIGHT(snla) + NLACHANNEL_SKIP)

Definition at line 451 of file ED_anim_api.h.

◆ NLACHANNEL_TOT_HEIGHT

#define NLACHANNEL_TOT_HEIGHT (   ac,
  item_amount 
)     (-NLACHANNEL_FIRST_TOP(ac) + NLACHANNEL_STEP(((SpaceNla *)(ac)->sl)) * (item_amount + 1))

Definition at line 453 of file ED_anim_api.h.

◆ SEL_ACTC

#define SEL_ACTC (   actc)    ((actc->flag & ACT_SELECTED))

Definition at line 377 of file ED_anim_api.h.

◆ SEL_AGRP

#define SEL_AGRP (   agrp)    (((agrp)->flag & AGRP_SELECTED) || ((agrp)->flag & AGRP_ACTIVE))

Definition at line 388 of file ED_anim_api.h.

◆ SEL_ANIMDATA

#define SEL_ANIMDATA (   adt)    (adt->flag & ADT_UI_SELECTED)

Definition at line 422 of file ED_anim_api.h.

◆ SEL_FCU

#define SEL_FCU (   fcu)    (fcu->flag & FCURVE_SELECTED)

Definition at line 391 of file ED_anim_api.h.

◆ SEL_GPL

#define SEL_GPL (   gpl)    (gpl->flag & GP_LAYER_SELECT)

Definition at line 402 of file ED_anim_api.h.

◆ SEL_MASKLAY

#define SEL_MASKLAY (   masklay)    (masklay->flag & SELECT)

Definition at line 409 of file ED_anim_api.h.

◆ SEL_NLT

#define SEL_NLT (   nlt)    (nlt->flag & NLATRACK_SELECTED)

Definition at line 412 of file ED_anim_api.h.

◆ SEL_OBJC

#define SEL_OBJC (   base)    (CHECK_TYPE_INLINE(base, Base *), ((base->flag & SELECT)))

Definition at line 348 of file ED_anim_api.h.

◆ SEL_SCEC

#define SEL_SCEC (   sce)    (CHECK_TYPE_INLINE(sce, Scene *), ((sce->flag & SCE_DS_SELECTED)))

Definition at line 342 of file ED_anim_api.h.

◆ SEL_SHAPEKEY

#define SEL_SHAPEKEY (   kb)    (kb->flag & KEYBLOCK_SEL)

Definition at line 395 of file ED_anim_api.h.

Typedef Documentation

◆ bAnimChannelType

◆ bAnimContext

typedef struct bAnimContext bAnimContext

◆ bAnimListElem

typedef struct bAnimListElem bAnimListElem

◆ eAnim_ChannelType

Some types for easier type-testing

Note
need to keep the order of these synchronized with the channels define code which is used for drawing and handling channel lists for.

◆ eAnim_KeyType

◆ eAnim_Update_Flags

◆ eAnimChannel_Role

◆ eAnimChannel_Settings

◆ eAnimChannels_SetFlag

◆ eAnimCont_Types

◆ eAnimEditDraw_CurrentFrame

◆ eAnimFilter_Flags

◆ eAnimUnitConv_Flags

◆ eAnimvizCalcRange

◆ PanelTypePollFn

typedef bool(* PanelTypePollFn) (const struct bContext *C, struct PanelType *pt)

Definition at line 685 of file ED_anim_api.h.

◆ uiListPanelIDFromDataFunc

typedef void(* uiListPanelIDFromDataFunc) (void *data_link, char *r_idname)

Definition at line 687 of file ED_anim_api.h.

Enumeration Type Documentation

◆ eAnim_ChannelType

Some types for easier type-testing

Note
need to keep the order of these synchronized with the channels define code which is used for drawing and handling channel lists for.
Enumerator
ANIMTYPE_NONE 
ANIMTYPE_ANIMDATA 
ANIMTYPE_SPECIALDATA__UNUSED 
ANIMTYPE_SUMMARY 
ANIMTYPE_SCENE 
ANIMTYPE_OBJECT 
ANIMTYPE_GROUP 
ANIMTYPE_FCURVE 
ANIMTYPE_NLACONTROLS 
ANIMTYPE_NLACURVE 
ANIMTYPE_FILLACTD 
ANIMTYPE_FILLDRIVERS 
ANIMTYPE_DSMAT 
ANIMTYPE_DSLAM 
ANIMTYPE_DSCAM 
ANIMTYPE_DSCACHEFILE 
ANIMTYPE_DSCUR 
ANIMTYPE_DSSKEY 
ANIMTYPE_DSWOR 
ANIMTYPE_DSNTREE 
ANIMTYPE_DSPART 
ANIMTYPE_DSMBALL 
ANIMTYPE_DSARM 
ANIMTYPE_DSMESH 
ANIMTYPE_DSTEX 
ANIMTYPE_DSLAT 
ANIMTYPE_DSLINESTYLE 
ANIMTYPE_DSSPK 
ANIMTYPE_DSGPENCIL 
ANIMTYPE_DSMCLIP 
ANIMTYPE_DSHAIR 
ANIMTYPE_DSPOINTCLOUD 
ANIMTYPE_DSVOLUME 
ANIMTYPE_DSSIMULATION 
ANIMTYPE_SHAPEKEY 
ANIMTYPE_GPDATABLOCK 
ANIMTYPE_GPLAYER 
ANIMTYPE_MASKDATABLOCK 
ANIMTYPE_MASKLAYER 
ANIMTYPE_NLATRACK 
ANIMTYPE_NLAACTION 
ANIMTYPE_PALETTE 
ANIMTYPE_NUM_TYPES 

Definition at line 197 of file ED_anim_api.h.

◆ eAnim_KeyType

Enumerator
ALE_NONE 
ALE_FCURVE 
ALE_GPFRAME 
ALE_MASKLAY 
ALE_NLASTRIP 
ALE_ALL 
ALE_SCE 
ALE_OB 
ALE_ACT 
ALE_GROUP 

Definition at line 256 of file ED_anim_api.h.

◆ eAnim_Update_Flags

Enumerator
ANIM_UPDATE_DEPS 
ANIM_UPDATE_ORDER 
ANIM_UPDATE_HANDLES 

Definition at line 274 of file ED_anim_api.h.

◆ eAnimChannel_Role

Enumerator
ACHANNEL_ROLE_EXPANDER 

datablock expander - a "composite" channel type

ACHANNEL_ROLE_CHANNEL 

special purposes - not generally for hierarchy processing data channel - a channel representing one of the actual building blocks of channels

Definition at line 496 of file ED_anim_api.h.

◆ eAnimChannel_Settings

Enumerator
ACHANNEL_SETTING_SELECT 
ACHANNEL_SETTING_PROTECT 

warning: for drawing UI's, need to check if this is off (maybe inverse this later)

ACHANNEL_SETTING_MUTE 
ACHANNEL_SETTING_EXPAND 
ACHANNEL_SETTING_VISIBLE 

only for Graph Editor

ACHANNEL_SETTING_SOLO 

only for NLA Tracks

ACHANNEL_SETTING_PINNED 

only for NLA Actions

ACHANNEL_SETTING_MOD_OFF 
ACHANNEL_SETTING_ALWAYS_VISIBLE 

channel is pinned and always visible

Definition at line 518 of file ED_anim_api.h.

◆ eAnimChannels_SetFlag

Enumerator
ACHANNEL_SETFLAG_CLEAR 

turn off

ACHANNEL_SETFLAG_ADD 

turn on

ACHANNEL_SETFLAG_INVERT 

on->off, off->on

ACHANNEL_SETFLAG_TOGGLE 

some on -> all off / all on

Definition at line 506 of file ED_anim_api.h.

◆ eAnimCont_Types

Enumerator
ANIMCONT_NONE 
ANIMCONT_ACTION 
ANIMCONT_SHAPEKEY 
ANIMCONT_GPENCIL 
ANIMCONT_DOPESHEET 
ANIMCONT_FCURVES 
ANIMCONT_DRIVERS 
ANIMCONT_NLA 
ANIMCONT_CHANNEL 
ANIMCONT_MASK 
ANIMCONT_TIMELINE 

Definition at line 115 of file ED_anim_api.h.

◆ eAnimEditDraw_CurrentFrame

Enumerator
DRAWCFRA_UNIT_SECONDS 
DRAWCFRA_WIDE 

Definition at line 654 of file ED_anim_api.h.

◆ eAnimFilter_Flags

Enumerator
ANIMFILTER_DATA_VISIBLE 

Data which channel represents is fits the dope-sheet filters (i.e. scene visibility criteria).

XXX: it's hard to think of any examples where this ISN'T the case... perhaps becomes implicit?.

ANIMFILTER_LIST_VISIBLE 

channel is visible within the channel-list hierarchy (i.e. F-Curves within Groups in ActEdit)

ANIMFILTER_CURVE_VISIBLE 

channel has specifically been tagged as visible in Graph Editor (* Graph Editor Only)

ANIMFILTER_LIST_CHANNELS 

include summary channels and "expanders" (for drawing/mouse-selection in channel list)

ANIMFILTER_ACTIVE 

for its type, channel should be "active" one

ANIMFILTER_ACTGROUPED 

channel is a child of the active group (* Actions specialty)

ANIMFILTER_SEL 

channel must be selected/not-selected, but both must not be set together

ANIMFILTER_UNSEL 
ANIMFILTER_FOREDIT 

editability status - must be editable to be included

ANIMFILTER_SELEDIT 

only selected animchannels should be considerable as editable - mainly for Graph Editor's option for keys on select curves only

ANIMFILTER_ANIMDATA 

Flags used to enforce certain data types.

Note
The ones for curves and NLA tracks were redundant and have been removed for now.
ANIMFILTER_NODUPLIS 

duplicate entries for animation data attached to multi-user blocks must not occur

ANIMFILTER_TMP_PEEK 

for checking if we should keep some collapsed channel around (internal use only!)

ANIMFILTER_TMP_IGNORE_ONLYSEL 

Ignore ONLYSEL flag from bDopeSheet.filterflag (internal use only!)

Definition at line 287 of file ED_anim_api.h.

◆ eAnimUnitConv_Flags

Enumerator
ANIM_UNITCONV_RESTORE 
ANIM_UNITCONV_ONLYKEYS 
ANIM_UNITCONV_ONLYSEL 
ANIM_UNITCONV_SELVERTS 
ANIM_UNITCONV_NORMALIZE 
ANIM_UNITCONV_NORMALIZE_FREEZE 

Definition at line 759 of file ED_anim_api.h.

◆ eAnimvizCalcRange

Enumerator
ANIMVIZ_CALC_RANGE_CURRENT_FRAME 
ANIMVIZ_CALC_RANGE_CHANGED 
ANIMVIZ_CALC_RANGE_FULL 

Definition at line 873 of file ED_anim_api.h.

Function Documentation

◆ ANIM_anim_channels_select_set()

void ANIM_anim_channels_select_set ( bAnimContext ac,
eAnimChannels_SetFlag  sel 
)

◆ ANIM_anim_channels_select_toggle()

void ANIM_anim_channels_select_toggle ( bAnimContext ac)

◆ ANIM_animdata_context_getdata()

bool ANIM_animdata_context_getdata ( bAnimContext ac)

◆ ANIM_animdata_filter()

size_t ANIM_animdata_filter ( bAnimContext ac,
ListBase anim_data,
eAnimFilter_Flags  filter_mode,
void *  data,
eAnimCont_Types  datatype 
)

This function filters the active data source to leave only animation channels suitable for usage by the caller. It will return the length of the list

Parameters
anim_dataIs a pointer to a ListBase, to which the filtered animation channels will be placed for use.
filter_modehow should the data be filtered - bit-mapping accessed flags.

Definition at line 3442 of file anim_filter.c.

References bAnimContext::ads, SpaceAction::ads, Key::adt, Object::adt, ANIMCHANNEL_NEW_CHANNEL, ANIMCONT_ACTION, ANIMCONT_CHANNEL, ANIMCONT_DOPESHEET, ANIMCONT_DRIVERS, ANIMCONT_FCURVES, ANIMCONT_GPENCIL, ANIMCONT_MASK, ANIMCONT_NLA, ANIMCONT_SHAPEKEY, ANIMCONT_TIMELINE, animdata_filter_animchan(), animdata_filter_dopesheet(), animdata_filter_dopesheet_summary(), animdata_filter_gpencil(), animdata_filter_mask(), animdata_filter_remove_duplis(), animdata_filter_remove_invalid(), animdata_filter_shapekey(), animfilter_action(), ANIMFILTER_ANIMDATA, ANIMFILTER_NODUPLIS, ANIMTYPE_ANIMDATA, bAnimContext::bmain, data, LIKELY, NULL, bAnimContext::obact, bAnimContext::sl, and UNLIKELY.

Referenced by achannel_setting_flush_widget_cb(), actkeys_channels_get_selected_extents(), actkeys_find_list_element_at_position(), actkeys_framejump_exec(), actkeys_mselect_channel_only(), actkeys_mselect_column(), actkeys_mselect_single(), actkeys_select_leftright(), actkeys_select_linked_exec(), ANIM_animdata_keyframe_callback(), anim_channels_for_selection(), ANIM_editkeyframes_refresh(), ANIM_set_active_channel(), ANIM_sync_animchannels_to_data(), animchannels_clean_empty_exec(), animchannels_delete_exec(), animchannels_enable_exec(), animchannels_group_channels(), animchannels_group_exec(), animchannels_rearrange_exec(), animchannels_ungroup_exec(), bake_graph_curves(), box_select_action(), box_select_anim_channels(), box_select_elem(), box_select_nla_strips(), cachefile_to_keylist(), clean_action_keys(), clean_graph_keys(), columnselect_action_keys(), columnselect_graph_keys(), copy_action_keys(), copy_graph_keys(), createTransActionData(), createTransNlaData(), decimate_graph_keys(), decimate_reset_bezts(), delete_action_keys(), delete_graph_keys(), deselect_action_keys(), deselect_nla_strips(), draw_channel_names(), draw_channel_strips(), draw_nla_channel_list(), draw_nla_main_data(), duplicate_action_keys(), duplicate_graph_keys(), ED_gpencil_anim_copybuf_copy(), ED_gpencil_anim_copybuf_paste(), ED_nla_postop_refresh(), get_active_fcurve_channel(), get_keyframe_extents(), get_nearest_fcurve_verts_list(), get_nlastrip_extents(), graph_draw_channel_names(), graph_draw_curves(), graph_driver_delete_invalid_exec(), graph_fmodifier_add_exec(), graph_fmodifier_paste_exec(), graph_refresh_fcurve_colors(), graphkeys_decimate_invoke(), graphkeys_euler_filter_exec(), graphkeys_mselect_column(), graphkeys_select_leftright(), graphkeys_select_linked_exec(), graphkeys_smooth_exec(), graphop_editable_keyframes_poll(), graphop_selected_fcurve_poll(), graphop_visible_keyframes_poll(), graphview_curves_hide_exec(), graphview_curves_reveal_exec(), initialize_box_select_anim_data(), insert_action_keys(), insert_gpencil_keys(), insert_graph_keys(), markers_selectkeys_between(), mirror_action_keys(), mirror_graph_keys(), mouse_anim_channels(), mouse_nla_channels(), nla_channels_get_selected_extents(), nla_fmodifier_add_exec(), nla_fmodifier_copy_exec(), nla_fmodifier_paste_exec(), nla_panel_context(), nlachannels_pushdown_exec(), nlaedit_add_actionclip_exec(), nlaedit_add_meta_exec(), nlaedit_add_sound_exec(), nlaedit_add_tracks_empty(), nlaedit_add_tracks_existing(), nlaedit_add_transition_exec(), nlaedit_apply_scale_exec(), nlaedit_clear_scale_exec(), nlaedit_delete_exec(), nlaedit_delete_tracks_exec(), nlaedit_disable_tweakmode(), nlaedit_duplicate_exec(), nlaedit_enable_tweakmode_exec(), nlaedit_make_single_user_exec(), nlaedit_move_down_exec(), nlaedit_move_up_exec(), nlaedit_remove_meta_exec(), nlaedit_select_leftright(), nlaedit_snap_exec(), nlaedit_split_exec(), nlaedit_strip_at_region_position(), nlaedit_swap_exec(), nlaedit_sync_actlen_exec(), nlaedit_toggle_mute_exec(), ob_keyframes_loop(), ob_to_keylist(), paste_action_keys(), paste_graph_keys(), posttrans_action_clean(), rearrange_animchannels_filter_visible(), rearrange_gpencil_channels(), region_select_action_keys(), region_select_elem(), rename_anim_channels(), sample_action_keys(), sample_graph_keys(), scene_keyframes_loop(), scene_to_keylist(), screen_ctx_active_editable_fcurve(), screen_ctx_sel_edit_fcurves_(), screen_ctx_selected_editable_keyframes(), screen_ctx_selected_nla_strips(), select_anim_channel_keys(), select_moreless_action_keys(), select_moreless_graph_keys(), seteasing_graph_keys(), setexpo_action_keys(), setexpo_graph_keys(), setflag_anim_channels(), sethandles_action_keys(), sethandles_graph_keys(), setipo_graph_keys(), setkeytype_action_keys(), setkeytype_gpencil_keys(), snap_action_keys(), snap_graph_keys(), special_aftertrans_update__actedit(), special_aftertrans_update__graph(), special_aftertrans_update__nla(), sum_selected_keyframes(), summary_keyframes_loop(), summary_to_keylist(), and unbake_graph_curves().

◆ ANIM_animdata_freelist()

void ANIM_animdata_freelist ( ListBase anim_data)

Definition at line 425 of file anim_deps.c.

References BLI_assert, BLI_freelistN(), BLI_listbase_clear(), ListBase::first, MEM_freeN, bAnimListElem::next, and bAnimListElem::update.

Referenced by achannel_setting_flush_widget_cb(), actkeys_channels_get_selected_extents(), actkeys_find_list_element_at_position(), actkeys_framejump_exec(), actkeys_mselect_channel_only(), actkeys_mselect_column(), actkeys_mselect_single(), actkeys_select_leftright(), actkeys_select_linked_exec(), ANIM_anim_channels_select_set(), ANIM_anim_channels_select_toggle(), ANIM_animdata_keyframe_callback(), ANIM_editkeyframes_refresh(), ANIM_set_active_channel(), ANIM_sync_animchannels_to_data(), animchannels_clean_empty_exec(), animchannels_delete_exec(), animchannels_enable_exec(), animchannels_group_channels(), animchannels_group_exec(), animchannels_rearrange_exec(), animchannels_ungroup_exec(), bake_graph_curves(), box_select_action(), box_select_anim_channels(), box_select_elem(), box_select_graphkeys(), box_select_nla_strips(), cachefile_to_keylist(), clean_action_keys(), clean_graph_keys(), columnselect_action_keys(), columnselect_graph_keys(), copy_action_keys(), copy_graph_keys(), createTransActionData(), createTransNlaData(), decimate_graph_keys(), decimate_reset_bezts(), delete_action_keys(), delete_graph_keys(), deselect_action_keys(), deselect_nla_strips(), draw_channel_names(), draw_channel_strips(), draw_nla_channel_list(), draw_nla_main_data(), duplicate_action_keys(), duplicate_graph_keys(), ED_gpencil_anim_copybuf_copy(), ED_gpencil_anim_copybuf_paste(), ED_nla_postop_refresh(), get_active_fcurve_channel(), get_keyframe_extents(), get_nearest_fcurve_verts_list(), get_nlastrip_extents(), graph_draw_channel_names(), graph_draw_curves(), graph_driver_delete_invalid_exec(), graph_fmodifier_add_exec(), graph_fmodifier_paste_exec(), graph_refresh_fcurve_colors(), graphkeys_decimate_invoke(), graphkeys_euler_filter_exec(), graphkeys_mselect_column(), graphkeys_select_leftright(), graphkeys_select_linked_exec(), graphkeys_smooth_exec(), graphop_editable_keyframes_poll(), graphop_selected_fcurve_poll(), graphop_visible_keyframes_poll(), graphview_curves_hide_exec(), graphview_curves_reveal_exec(), insert_action_keys(), insert_gpencil_keys(), insert_graph_keys(), markers_selectkeys_between(), mirror_action_keys(), mirror_graph_keys(), mouse_anim_channels(), mouse_nla_channels(), nla_channels_get_selected_extents(), nla_fmodifier_add_exec(), nla_fmodifier_copy_exec(), nla_fmodifier_paste_exec(), nla_panel_context(), nlachannels_pushdown_exec(), nlaedit_add_actionclip_exec(), nlaedit_add_meta_exec(), nlaedit_add_sound_exec(), nlaedit_add_tracks_empty(), nlaedit_add_tracks_existing(), nlaedit_add_transition_exec(), nlaedit_apply_scale_exec(), nlaedit_clear_scale_exec(), nlaedit_delete_exec(), nlaedit_delete_tracks_exec(), nlaedit_disable_tweakmode(), nlaedit_duplicate_exec(), nlaedit_enable_tweakmode_exec(), nlaedit_make_single_user_exec(), nlaedit_move_down_exec(), nlaedit_move_up_exec(), nlaedit_remove_meta_exec(), nlaedit_select_leftright(), nlaedit_snap_exec(), nlaedit_split_exec(), nlaedit_strip_at_region_position(), nlaedit_swap_exec(), nlaedit_sync_actlen_exec(), nlaedit_toggle_mute_exec(), ob_keyframes_loop(), ob_to_keylist(), paste_action_keys(), paste_graph_keys(), posttrans_action_clean(), rearrange_gpencil_channels(), region_select_action_keys(), region_select_elem(), rename_anim_channels(), sample_action_keys(), sample_graph_keys(), scene_keyframes_loop(), scene_to_keylist(), screen_ctx_active_editable_fcurve(), screen_ctx_sel_edit_fcurves_(), screen_ctx_selected_editable_keyframes(), screen_ctx_selected_nla_strips(), select_anim_channel_keys(), select_moreless_action_keys(), select_moreless_graph_keys(), seteasing_graph_keys(), setexpo_action_keys(), setexpo_graph_keys(), setflag_anim_channels(), sethandles_action_keys(), sethandles_graph_keys(), setipo_graph_keys(), setkeytype_action_keys(), setkeytype_gpencil_keys(), snap_action_keys(), snap_graph_keys(), special_aftertrans_update__actedit(), special_aftertrans_update__graph(), special_aftertrans_update__nla(), sum_selected_keyframes(), summary_keyframes_loop(), summary_to_keylist(), and unbake_graph_curves().

◆ ANIM_animdata_get_context()

bool ANIM_animdata_get_context ( const struct bContext C,
bAnimContext ac 
)

◆ ANIM_animdata_update()

void ANIM_animdata_update ( bAnimContext ac,
ListBase anim_data 
)

Definition at line 330 of file anim_deps.c.

References ALE_FCURVE, ALE_MASKLAY, ANIM_list_elem_update(), ANIM_UPDATE_DEPS, ANIM_UPDATE_HANDLES, ANIM_UPDATE_ORDER, ANIMTYPE_ANIMDATA, ANIMTYPE_GPLAYER, ANIMTYPE_NLAACTION, ANIMTYPE_NLACURVE, ANIMTYPE_NLATRACK, BKE_gpencil_layer_frames_sort(), BLI_assert, bAnimContext::bmain, calchandles_fcurve(), bAnimListElem::data, bAnimListElem::datatype, ELEM, ListBase::first, G, G_DEBUG, bAnimListElem::key_data, bAnimListElem::next, NULL, bAnimContext::scene, sort_time_fcurve(), bAnimListElem::type, and bAnimListElem::update.

Referenced by actkeys_mselect_channel_only(), actkeys_mselect_column(), actkeys_mselect_single(), actkeys_select_leftright(), ANIM_animdata_keyframe_callback(), ANIM_editkeyframes_refresh(), animchannels_delete_exec(), animchannels_enable_exec(), bake_graph_curves(), box_select_action(), box_select_elem(), clean_action_keys(), clean_graph_keys(), columnselect_action_keys(), decimate_graph_keys(), delete_action_keys(), delete_graph_keys(), deselect_action_keys(), duplicate_action_keys(), duplicate_graph_keys(), ED_nla_postop_refresh(), graph_fmodifier_add_exec(), graph_fmodifier_paste_exec(), graphkeys_click_insert_exec(), graphkeys_euler_filter_exec(), graphkeys_smooth_exec(), insert_action_keys(), insert_gpencil_keys(), insert_graph_keys(), markers_selectkeys_between(), mirror_action_keys(), mirror_graph_keys(), mouse_action_keys(), mouse_nla_channels(), nla_fmodifier_add_exec(), nla_fmodifier_paste_exec(), nlaedit_add_meta_exec(), nlaedit_add_tracks_empty(), nlaedit_add_tracks_existing(), nlaedit_apply_scale_exec(), nlaedit_delete_tracks_exec(), nlaedit_disable_tweakmode(), nlaedit_enable_tweakmode_exec(), nlaedit_make_single_user_exec(), nlaedit_remove_meta_exec(), nlaedit_snap_exec(), nlaedit_sync_actlen_exec(), nlaedit_toggle_mute_exec(), paste_animedit_keys(), region_select_action_keys(), region_select_elem(), sample_action_keys(), sample_graph_keys(), seteasing_graph_keys(), setexpo_action_keys(), setexpo_graph_keys(), sethandles_action_keys(), sethandles_graph_keys(), setipo_graph_keys(), setkeytype_action_keys(), setkeytype_gpencil_keys(), snap_action_keys(), snap_graph_keys(), and unbake_graph_curves().

◆ ANIM_center_frame()

void ANIM_center_frame ( struct bContext C,
int  smooth_viewtx 
)

◆ ANIM_channel_debug_print_info()

void ANIM_channel_debug_print_info ( bAnimListElem ale,
short  indent_level 
)

◆ ANIM_channel_draw()

void ANIM_channel_draw ( bAnimContext ac,
bAnimListElem ale,
float  yminc,
float  ymaxc,
size_t  channel_index 
)

Definition at line 4380 of file anim_channels_defines.c.

References ACHANNEL_BUTTON_WIDTH, achannel_is_being_renamed(), ACHANNEL_SETTING_ALWAYS_VISIBLE, ACHANNEL_SETTING_EXPAND, ACHANNEL_SETTING_MOD_OFF, ACHANNEL_SETTING_MUTE, ACHANNEL_SETTING_PINNED, ACHANNEL_SETTING_PROTECT, ACHANNEL_SETTING_SELECT, ACHANNEL_SETTING_SOLO, ACHANNEL_SETTING_VISIBLE, ANIM_CHAN_NAME_SIZE, ANIM_channel_get_typeinfo(), ANIM_channel_setting_get(), ANIMTYPE_FCURVE, ANIMTYPE_GPLAYER, ANIMTYPE_GROUP, ANIMTYPE_NLAACTION, ANIMTYPE_NLACURVE, ANIMTYPE_SHAPEKEY, BLI_rcti_size_x(), col, FCurve::color, View2D::cur, bAnimListElem::data, bAnimChannelType::draw_backdrop, ELEM, EXTRA_SCROLL_PAD, FCURVE_DISABLED, FCURVE_VISIBLE, bAnimListElem::flag, SpaceAction::flag, FCurve::flag, SpaceGraph::flag, bAnimChannelType::get_backdrop_color, bAnimChannelType::get_offset, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_line_width(), GPU_PRIM_LINES, GPU_SHADER_2D_UNIFORM_COLOR, GPU_vertformat_attr_add(), GRAPH_COLOR_BAND_WIDTH, GRAPH_ICON_VISIBILITY_OFFSET, bAnimChannelType::has_setting, bAnimChannelType::icon, ICON_WIDTH, immBegin(), immBindBuiltinProgram(), immEnd(), immRectf(), immUnbindProgram(), immUniformColor3f(), immUniformColor3fv(), immUniformColor3fvAlpha(), immVertex2f(), immVertexFormat(), View2D::mask, bAnimChannelType::name, NLACHANNEL_SKIP, NULL, pos, bAnimContext::region, SACTION_SLIDERS, SIPO_SLIDERS, bAnimContext::sl, SLIDER_WIDTH, SPACE_ACTION, SPACE_GRAPH, SPACE_NLA, bAnimContext::spacetype, TH_TEXT, TH_TEXT_HI, bAnimListElem::type, UI_fontstyle_draw_simple(), UI_FSTYLE_WIDGET, UI_GetThemeColor4ubv(), UI_icon_draw(), ARegion::v2d, V2D_SCROLL_WIDTH, rctf::xmax, and y.

Referenced by draw_channel_names(), draw_nla_channel_list(), and graph_draw_channel_names().

◆ ANIM_channel_draw_widgets()

void ANIM_channel_draw_widgets ( const struct bContext C,
bAnimContext ac,
bAnimListElem ale,
struct uiBlock block,
rctf rect,
size_t  channel_index 
)

◆ ANIM_channel_get_typeinfo()

const bAnimChannelType* ANIM_channel_get_typeinfo ( bAnimListElem ale)

◆ ANIM_channel_setting_get()

short ANIM_channel_setting_get ( bAnimContext ac,
bAnimListElem ale,
eAnimChannel_Settings  setting 
)

◆ ANIM_channel_setting_set()

void ANIM_channel_setting_set ( bAnimContext ac,
bAnimListElem ale,
eAnimChannel_Settings  setting,
eAnimChannels_SetFlag  mode 
)

◆ ANIM_draw_cfra()

void ANIM_draw_cfra ( const struct bContext C,
struct View2D v2d,
short  flag 
)

◆ ANIM_draw_framerange()

void ANIM_draw_framerange ( Scene scene,
View2D v2d 
)

◆ ANIM_draw_previewrange()

void ANIM_draw_previewrange ( const struct bContext C,
struct View2D v2d,
int  end_frame_width 
)

◆ ANIM_fcurve_delete_from_animdata()

void ANIM_fcurve_delete_from_animdata ( bAnimContext ac,
struct AnimData adt,
struct FCurve fcu 
)

◆ ANIM_flush_setting_anim_channels()

void ANIM_flush_setting_anim_channels ( bAnimContext ac,
ListBase anim_data,
bAnimListElem ale_setting,
eAnimChannel_Settings  setting,
eAnimChannels_SetFlag  mode 
)

◆ ANIM_fmodifier_panels()

void ANIM_fmodifier_panels ( const struct bContext C,
struct ID owner_id,
struct ListBase fmodifiers,
uiListPanelIDFromDataFunc  panel_id_fn 
)

◆ ANIM_fmodifiers_copy_to_buf()

bool ANIM_fmodifiers_copy_to_buf ( ListBase modifiers,
bool  active 
)

◆ ANIM_fmodifiers_copybuf_free()

void ANIM_fmodifiers_copybuf_free ( void  )

◆ ANIM_fmodifiers_paste_from_buf()

bool ANIM_fmodifiers_paste_from_buf ( ListBase modifiers,
bool  replace,
struct FCurve curve 
)

◆ ANIM_get_normalization_flags()

short ANIM_get_normalization_flags ( bAnimContext ac)

◆ ANIM_graph_context_fcurve()

struct FCurve* ANIM_graph_context_fcurve ( const struct bContext C)

◆ ANIM_id_update()

void ANIM_id_update ( struct Main bmain,
struct ID id 
)

◆ ANIM_list_elem_update()

void ANIM_list_elem_update ( struct Main bmain,
struct Scene scene,
bAnimListElem ale 
)

◆ ANIM_modifier_panels_register_graph_and_NLA()

void ANIM_modifier_panels_register_graph_and_NLA ( struct ARegionType region_type,
const char *  modifier_panel_prefix,
PanelTypePollFn  poll_function 
)

◆ ANIM_modifier_panels_register_graph_only()

void ANIM_modifier_panels_register_graph_only ( struct ARegionType region_type,
const char *  modifier_panel_prefix,
PanelTypePollFn  poll_function 
)

Definition at line 954 of file fmodifier_ui.c.

References panel_register_cycles().

Referenced by graph_buttons_register().

◆ ANIM_nla_context_strip()

struct NlaStrip* ANIM_nla_context_strip ( const struct bContext C)

◆ ANIM_nla_mapping_apply_fcurve()

void ANIM_nla_mapping_apply_fcurve ( struct AnimData adt,
struct FCurve fcu,
bool  restore,
bool  only_keys 
)

◆ ANIM_nla_mapping_get()

struct AnimData* ANIM_nla_mapping_get ( bAnimContext ac,
bAnimListElem ale 
)

◆ ANIM_remove_empty_action_from_animdata()

bool ANIM_remove_empty_action_from_animdata ( struct AnimData adt)

◆ ANIM_set_active_channel()

void ANIM_set_active_channel ( bAnimContext ac,
void *  data,
eAnimCont_Types  datatype,
eAnimFilter_Flags  filter,
void *  channel_data,
eAnim_ChannelType  channel_type 
)

◆ ANIM_sync_animchannels_to_data()

void ANIM_sync_animchannels_to_data ( const struct bContext C)

◆ ANIM_unit_mapping_get_factor()

float ANIM_unit_mapping_get_factor ( struct Scene scene,
struct ID id,
struct FCurve fcu,
short  flag,
float r_offset 
)

◆ animviz_calc_motionpaths()

void animviz_calc_motionpaths ( struct Depsgraph depsgraph,
struct Main bmain,
struct Scene scene,
ListBase targets,
eAnimvizCalcRange  range,
bool  restore 
)

◆ animviz_depsgraph_build()

struct Depsgraph* animviz_depsgraph_build ( struct Main bmain,
struct Scene scene,
struct ViewLayer view_layer,
struct ListBase targets 
)

◆ animviz_get_object_motionpaths()

void animviz_get_object_motionpaths ( struct Object ob,
ListBase targets 
)

◆ ED_actedit_animdata_from_context()

struct AnimData* ED_actedit_animdata_from_context ( struct bContext C)

◆ ED_animedit_unlink_action()

void ED_animedit_unlink_action ( struct bContext C,
struct ID id,
struct AnimData adt,
struct bAction act,
struct ReportList reports,
bool  force_delete 
)

◆ ED_drivers_editor_init()

void ED_drivers_editor_init ( struct bContext C,
struct ScrArea area 
)

◆ ED_keymap_anim()

void ED_keymap_anim ( struct wmKeyConfig keyconf)

Definition at line 556 of file anim_ops.c.

References WM_keymap_ensure().

Referenced by ED_spacetypes_keymap().

◆ ED_keymap_animchannels()

void ED_keymap_animchannels ( struct wmKeyConfig keyconf)

Definition at line 3595 of file anim_channels_edit.c.

References WM_keymap_ensure().

Referenced by ED_spacetypes_keymap().

◆ ED_nla_postop_refresh()

void ED_nla_postop_refresh ( bAnimContext ac)

◆ ED_operatormacros_action()

void ED_operatormacros_action ( void  )

◆ ED_operatormacros_graph()

void ED_operatormacros_graph ( void  )

◆ ED_operatortypes_anim()

void ED_operatortypes_anim ( void  )

◆ ED_operatortypes_animchannels()

void ED_operatortypes_animchannels ( void  )

◆ getcolor_fcurve_rainbow()

void getcolor_fcurve_rainbow ( int  cur,
int  tot,
float  out[3] 
)

Definition at line 209 of file anim_ipo_utils.c.

References float(), HSV_BANDWIDTH, and hsv_to_rgb_v().

Referenced by graph_refresh_fcurve_colors().

◆ getname_anim_fcurve()

int getname_anim_fcurve ( char *  name,
ID id,
FCurve fcu 
)

Write into "name" buffer, the name of the property (retrieved using RNA from the curve's settings), and return the icon used for the struct that this property refers to

Warning
name buffer we're writing to cannot exceed 256 chars (check anim_channels_defines.c for details).

Definition at line 54 of file anim_ipo_utils.c.

References FCurve::array_index, BLI_snprintf(), BLI_sprintfN(), BLI_str_quoted_substrN(), Freestyle::c, PointerRNA::data, ELEM, FCURVE_DISABLED, FCurve::flag, MEM_freeN, NULL, PointerRNA::owner_id, ptr, RNA_id_pointer_create(), FCurve::rna_path, RNA_path_resolve_property(), RNA_property_array_check(), RNA_property_array_item_char(), RNA_property_string_get_alloc(), RNA_property_ui_name(), RNA_struct_name_property(), RNA_struct_ui_icon(), RNA_struct_ui_name(), TIP_, and PointerRNA::type.

Referenced by acf_fcurve_name(), graph_draw_driven_property_panel(), and graph_panel_properties().

◆ nla_action_get_color()

void nla_action_get_color ( struct AnimData adt,
struct bAction act,
float  color[4] 
)