Blender  V3.3
Classes
ED_anim_api.h File Reference

Go to the source code of this file.

Classes

struct  bAnimContext
 
struct  bAnimListElem
 
struct  bAnimChannelType
 

Macros

Flag Checking Macros
#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_CURVES_OBJD(ha)   (CHECK_TYPE_INLINE(ha, Curves *), ((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)
 
Channel Defines
#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)
 
NLA Channel Defines
#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)
 
Utility macros
#define BEZKEYTYPE(bezt)   ((bezt)->hide)
 
#define ACHANNEL_SET_FLAG(channel, smode, sflag)
 
#define ACHANNEL_SET_FLAG_NEG(channel, smode, sflag)
 

Functions

Public API
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)
 
bool ANIM_animdata_can_have_greasepencil (const eAnimCont_Types type)
 
Drawing API
const bAnimChannelTypeANIM_channel_get_typeinfo (bAnimListElem *ale)
 
void ANIM_channel_debug_print_info (bAnimListElem *ale, short indent_level)
 
bActionANIM_channel_action_get (const bAnimListElem *ale)
 
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)
 
Editing API
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)
 
Preview Range Drawing

Main call to draw preview range curtains.

void ANIM_draw_previewrange (const struct bContext *C, struct View2D *v2d, int end_frame_width)
 
Frame Range Drawing

Main call to draw normal frame range indicators.

void ANIM_draw_framerange (struct Scene *scene, struct View2D *v2d)
 
void ANIM_draw_action_framerange (struct AnimData *adt, struct bAction *action, struct View2D *v2d, float ymin, float ymax)
 
Copy/Paste Buffer
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)
 
Animation F-Curves <-> Icons/Names Mapping
int getname_anim_fcurve (char *name, struct ID *id, struct FCurve *fcu)
 
void getcolor_fcurve_rainbow (int cur, int tot, float out[3])
 
NLA Drawing
Note
Technically, this is not in the animation module (it's in space_nla) but these are sometimes needed by various animation API's.
void nla_action_get_color (struct AnimData *adt, struct bAction *act, float color[4])
 
NLA-Mapping
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)
 
Animation Updates
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)
 
Operators
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)
 
void ED_operatormacros_nla (void)
 

Channels

#define ANIM_UPDATE_DEFAULT   (ANIM_UPDATE_DEPS | ANIM_UPDATE_ORDER | ANIM_UPDATE_HANDLES)
 
#define ANIM_UPDATE_DEFAULT_NOHANDLES   (ANIM_UPDATE_DEFAULT & ~ANIM_UPDATE_HANDLES)
 
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) }
 
typedef struct bAnimListElem bAnimListElem
 
typedef enum eAnim_ChannelType eAnim_ChannelType
 
typedef enum eAnim_KeyType eAnim_KeyType
 
typedef enum eAnim_Update_Flags eAnim_Update_Flags
 

Context

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
}
 
typedef struct bAnimContext bAnimContext
 
typedef enum eAnimCont_Types eAnimCont_Types
 

Filtering

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_FCURVESONLY = (1 << 12) , ANIMFILTER_TMP_PEEK = (1 << 30) , ANIMFILTER_TMP_IGNORE_ONLYSEL = (1u << 31)
}
 
typedef enum eAnimFilter_Flags eAnimFilter_Flags
 
 ENUM_OPERATORS (eAnimFilter_Flags, ANIMFILTER_TMP_IGNORE_ONLYSEL)
 

Drawing TypeInfo

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
}
 
typedef enum eAnimChannel_Role eAnimChannel_Role
 
typedef enum eAnimChannels_SetFlag eAnimChannels_SetFlag
 
typedef enum eAnimChannel_Settings eAnimChannel_Settings
 
typedef struct bAnimChannelType bAnimChannelType
 

Current Frame Drawing

Main call to draw current-frame indicator in an Animation Editor.

enum  eAnimEditDraw_CurrentFrame { DRAWCFRA_UNIT_SECONDS = (1 << 0) , DRAWCFRA_WIDE = (1 << 1) }
 
typedef enum eAnimEditDraw_CurrentFrame eAnimEditDraw_CurrentFrame
 
void ANIM_draw_cfra (const struct bContext *C, struct View2D *v2d, short flag)
 

Unit Conversion Mappings

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)
}
 
typedef enum eAnimUnitConv_Flags eAnimUnitConv_Flags
 
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)
 

Animation Editor Exports

enum  eAnimvizCalcRange { ANIMVIZ_CALC_RANGE_CURRENT_FRAME , ANIMVIZ_CALC_RANGE_CHANGED , ANIMVIZ_CALC_RANGE_FULL }
 
typedef enum eAnimvizCalcRange eAnimvizCalcRange
 
struct AnimDataED_actedit_animdata_from_context (const struct bContext *C, struct ID **r_adt_id_owner)
 
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_motionpath_compute_range (struct Object *ob, struct Scene *scene)
 
void animviz_get_object_motionpaths (struct Object *ob, ListBase *targets)
 

UI Panel Drawing

typedef bool(* PanelTypePollFn) (const struct bContext *C, struct PanelType *pt)
 
typedef void(* uiListPanelIDFromDataFunc) (void *data_link, char *r_idname)
 
bool ANIM_nla_context_track_ptr (const struct bContext *C, struct PointerRNA *r_ptr)
 
bool ANIM_nla_context_strip_ptr (const struct bContext *C, struct PointerRNA *r_ptr)
 
struct NlaTrackANIM_nla_context_track (const struct bContext *C)
 
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)
 

Macro Definition Documentation

◆ ACHANNEL_BUTTON_WIDTH

#define ACHANNEL_BUTTON_WIDTH   (0.8f * U.widget_unit)

Channel toggle-buttons.

Definition at line 451 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)

Channel heights.

Definition at line 438 of file ED_anim_api.h.

◆ ACHANNEL_HEIGHT

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

Definition at line 440 of file ED_anim_api.h.

◆ ACHANNEL_NAMEWIDTH

#define ACHANNEL_NAMEWIDTH   (10 * U.widget_unit)

Channel widths.

Definition at line 448 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:552
@ ACHANNEL_SETFLAG_INVERT
Definition: ED_anim_api.h:554
SyclQueue void void size_t num_bytes void

Set/Clear/Toggle macro.

Parameters
channelChannel with a 'flag' member that we're setting.
smode0=clear, 1=set, 2=invert.
sflagbit-flag to set.

Definition at line 977 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)

Set/Clear/Toggle macro, where the flag is negative.

Parameters
channelchannel with a 'flag' member that we're setting.
smode0=clear, 1=set, 2=invert.
sflagBit-flag to set.

Definition at line 997 of file ED_anim_api.h.

◆ ACHANNEL_SKIP

#define ACHANNEL_SKIP   (0.1f * U.widget_unit)

Definition at line 441 of file ED_anim_api.h.

◆ ACHANNEL_STEP

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

Definition at line 442 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))

Additional offset to give some room at the end.

Definition at line 444 of file ED_anim_api.h.

◆ ANIM_UPDATE_DEFAULT

Definition at line 274 of file ED_anim_api.h.

◆ ANIM_UPDATE_DEFAULT_NOHANDLES

#define ANIM_UPDATE_DEFAULT_NOHANDLES   (ANIM_UPDATE_DEFAULT & ~ANIM_UPDATE_HANDLES)

Definition at line 275 of file ED_anim_api.h.

◆ BEZKEYTYPE

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

Provide access to Keyframe Type info in BezTriple. NOTE: this is so that we can change it from being stored in 'hide'

Definition at line 969 of file ED_anim_api.h.

◆ EDITABLE_AGRP

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

Action Channel Group.

Definition at line 391 of file ED_anim_api.h.

◆ EDITABLE_FCU

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

F-Curve Channels.

Definition at line 397 of file ED_anim_api.h.

◆ EDITABLE_GPL

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

Grease Pencil Layer settings.

Definition at line 408 of file ED_anim_api.h.

◆ EDITABLE_MASK

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

Grease Pencil Layer settings.

Definition at line 415 of file ED_anim_api.h.

◆ EDITABLE_NLT

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

Definition at line 420 of file ED_anim_api.h.

◆ EDITABLE_SHAPEKEY

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

Definition at line 401 of file ED_anim_api.h.

◆ EXPANDED_ACTC

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

Definition at line 385 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 392 of file ED_anim_api.h.

◆ EXPANDED_DRVD

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

Definition at line 387 of file ED_anim_api.h.

◆ EXPANDED_GPD

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

Grease Pencil data-block settings.

Definition at line 406 of file ED_anim_api.h.

◆ EXPANDED_MASK

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

Grease Pencil data-block settings.

Definition at line 413 of file ED_anim_api.h.

◆ EXPANDED_MCLIP

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

Definition at line 423 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 356 of file ED_anim_api.h.

◆ EXPANDED_PALETTE

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

Definition at line 426 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 350 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 369 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 363 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 362 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 365 of file ED_anim_api.h.

◆ FILTER_CURVES_OBJD

#define FILTER_CURVES_OBJD (   ha)    (CHECK_TYPE_INLINE(ha, Curves *), ((ha->flag & HA_DS_EXPAND)))

Definition at line 373 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 361 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 371 of file ED_anim_api.h.

◆ FILTER_LS_SCED

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

Definition at line 353 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 360 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 368 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 370 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 379 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 366 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 374 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 376 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 359 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 372 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 381 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 375 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 352 of file ED_anim_api.h.

◆ NLACHANNEL_BUTTON_WIDTH

#define NLACHANNEL_BUTTON_WIDTH   (0.8f * U.widget_unit)

Channel toggle-buttons

Definition at line 475 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)

NLA channel heights

Definition at line 460 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 462 of file ED_anim_api.h.

◆ NLACHANNEL_NAMEWIDTH

#define NLACHANNEL_NAMEWIDTH   (10 * U.widget_unit)

Channel widths

Definition at line 472 of file ED_anim_api.h.

◆ NLACHANNEL_SKIP

#define NLACHANNEL_SKIP   (0.1f * U.widget_unit)

Definition at line 465 of file ED_anim_api.h.

◆ NLACHANNEL_STEP

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

Definition at line 466 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))

Additional offset to give some room at the end.

Definition at line 468 of file ED_anim_api.h.

◆ SEL_ACTC

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

Definition at line 384 of file ED_anim_api.h.

◆ SEL_AGRP

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

Definition at line 395 of file ED_anim_api.h.

◆ SEL_ANIMDATA

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

Definition at line 429 of file ED_anim_api.h.

◆ SEL_FCU

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

Definition at line 398 of file ED_anim_api.h.

◆ SEL_GPL

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

Definition at line 409 of file ED_anim_api.h.

◆ SEL_MASKLAY

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

Definition at line 416 of file ED_anim_api.h.

◆ SEL_NLT

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

Definition at line 419 of file ED_anim_api.h.

◆ SEL_OBJC

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

Definition at line 355 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 349 of file ED_anim_api.h.

◆ SEL_SHAPEKEY

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

Definition at line 402 of file ED_anim_api.h.

Typedef Documentation

◆ bAnimChannelType

Drawing, mouse handling, and flag setting behavior.

◆ bAnimContext

typedef struct bAnimContext bAnimContext

This struct defines a structure used for animation-specific 'context' information.

◆ bAnimListElem

typedef struct bAnimListElem bAnimListElem

This struct defines a structure used for quick and uniform access for channels of animation data.

◆ 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

Flags for specifying the types of updates (i.e. recalculation/refreshing) that needs to be performed to the data contained in a channel following editing. For use with ANIM_animdata_update()

◆ eAnimChannel_Role

Role or level of anim-channel in the hierarchy.

◆ eAnimChannel_Settings

◆ eAnimChannels_SetFlag

◆ eAnimCont_Types

◆ eAnimEditDraw_CurrentFrame

◆ eAnimFilter_Flags

◆ eAnimUnitConv_Flags

Flags for conversion mapping.

◆ eAnimvizCalcRange

◆ PanelTypePollFn

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

Needed for abstraction between the graph editor and the NLA editor.

Definition at line 802 of file ED_anim_api.h.

◆ uiListPanelIDFromDataFunc

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

Avoid including UI_interface.h here.

Definition at line 804 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 189 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 248 of file ED_anim_api.h.

◆ eAnim_Update_Flags

Flags for specifying the types of updates (i.e. recalculation/refreshing) that needs to be performed to the data contained in a channel following editing. For use with ANIM_animdata_update()

Enumerator
ANIM_UPDATE_DEPS 
ANIM_UPDATE_ORDER 
ANIM_UPDATE_HANDLES 

Definition at line 267 of file ED_anim_api.h.

◆ eAnimChannel_Role

Role or level of anim-channel in the hierarchy.

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 538 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 560 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 548 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 102 of file ED_anim_api.h.

◆ eAnimEditDraw_CurrentFrame

Enumerator
DRAWCFRA_UNIT_SECONDS 

Plain time indicator with no special indicators. Time indication in seconds or frames.

DRAWCFRA_WIDE 

Draw indicator extra wide (for timeline).

Definition at line 736 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_FCURVESONLY 

avoid channel that does not have any F-curve data

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 284 of file ED_anim_api.h.

◆ eAnimUnitConv_Flags

Flags for conversion mapping.

Enumerator
ANIM_UNITCONV_RESTORE 

Restore to original internal values.

ANIM_UNITCONV_ONLYKEYS 

Ignore handles (i.e. only touch main keyframes).

ANIM_UNITCONV_ONLYSEL 

Only touch selected BezTriples.

ANIM_UNITCONV_SELVERTS 

Only touch selected vertices.

ANIM_UNITCONV_NORMALIZE 

Scale FCurve i a way it fits to -1..1 space.

ANIM_UNITCONV_NORMALIZE_FREEZE 

Only when normalization is used: use scale factor from previous run, prevents curves from jumping all over the place when tweaking them.

Definition at line 930 of file ED_anim_api.h.

◆ eAnimvizCalcRange

Enumerator
ANIMVIZ_CALC_RANGE_CURRENT_FRAME 

Update motion paths at the current frame only.

ANIMVIZ_CALC_RANGE_CHANGED 

Try to limit updates to a close neighborhood of the current frame.

ANIMVIZ_CALC_RANGE_FULL 

Update an entire range of the motion paths.

Definition at line 1088 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)

Toggle selection state of all animation channels in the context.

Definition at line 458 of file anim_channels_edit.c.

References ANIM_animdata_freelist(), anim_channels_for_selection(), anim_channels_select_set(), and anim_channels_selection_flag_for_toggle().

Referenced by animchannels_selectall_exec().

◆ ANIM_animdata_can_have_greasepencil()

bool ANIM_animdata_can_have_greasepencil ( const eAnimCont_Types  type)

◆ ANIM_animdata_context_getdata()

bool ANIM_animdata_context_getdata ( bAnimContext ac)

Obtain current anim-data context, given that context info from Blender context has already been set:

  • AnimContext to write to is provided as pointer to var on stack so that we don't have allocation/freeing costs (which are not that avoidable with channels).
    Returns
    whether the operation was successful.

Definition at line 349 of file anim_filter.c.

References actedit_get_context(), bAnimContext::data, graphedit_get_context(), nlaedit_get_context(), bAnimContext::sl, SPACE_ACTION, SPACE_GRAPH, SPACE_NLA, and bAnimContext::spacetype.

Referenced by ANIM_animdata_get_context().

◆ 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 3447 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(), blend_to_default_graph_keys(), blend_to_neighbor_graph_keys(), box_select_action(), box_select_anim_channels(), box_select_elem(), box_select_nla_strips(), breakdown_graph_keys(), 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(), 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(), equalize_graph_keys(), 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_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_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(), reset_bezts(), sample_action_keys(), sample_graph_keys(), scene_keyframes_loop(), scene_to_keylist(), screen_ctx_active_editable_fcurve(), screen_ctx_sel_actions_impl(), 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(), snap_action_keys(), snap_graph_keys(), special_aftertrans_update__actedit(), special_aftertrans_update__graph(), special_aftertrans_update__nla(), store_original_bezt_arrays(), 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 397 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(), blend_to_default_graph_keys(), blend_to_neighbor_graph_keys(), box_select_action(), box_select_anim_channels(), box_select_elem(), box_select_graphcurves(), box_select_graphkeys(), box_select_nla_strips(), breakdown_graph_keys(), 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(), 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(), equalize_graph_keys(), 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_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_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(), reset_bezts(), sample_action_keys(), sample_graph_keys(), scene_keyframes_loop(), scene_to_keylist(), screen_ctx_active_editable_fcurve(), screen_ctx_sel_actions_impl(), 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(), snap_action_keys(), snap_graph_keys(), special_aftertrans_update__actedit(), special_aftertrans_update__graph(), special_aftertrans_update__nla(), store_original_bezt_arrays(), 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 
)

Obtain current anim-data context from Blender Context info

  • AnimContext to write to is provided as pointer to var on stack so that we don't have allocation/freeing costs (which are not that avoidable with channels).
  • Clears data and sets the information from Blender Context which is useful
    Returns
    whether the operation was successful.

◆ ANIM_animdata_update()

void ANIM_animdata_update ( bAnimContext ac,
ListBase anim_data 
)

Acts on bAnimListElem eAnim_Update_Flags.

Definition at line 302 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_fcurve_handles_recalc(), BKE_gpencil_layer_frames_sort(), BLI_assert, bAnimContext::bmain, 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(), blend_to_default_graph_keys(), blend_to_neighbor_graph_keys(), box_select_action(), box_select_elem(), breakdown_graph_keys(), 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(), equalize_graph_keys(), graph_fmodifier_add_exec(), graph_fmodifier_paste_exec(), graphkeys_click_insert_exec(), graphkeys_euler_filter_exec(), graphkeys_smooth_exec(), insert_action_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(), 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_action_get()

bAction* ANIM_channel_action_get ( const bAnimListElem ale)

◆ 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 
)

Draw the given channel.

Definition at line 4382 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, 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, offset, 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 
)

Draw UI widgets the given channel.

◆ 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_action_framerange()

void ANIM_draw_action_framerange ( struct AnimData adt,
struct bAction action,
struct View2D v2d,
float  ymin,
float  ymax 
)

◆ ANIM_draw_cfra()

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

General call for drawing current frame indicator in animation editor.

◆ ANIM_draw_framerange()

void ANIM_draw_framerange ( struct Scene scene,
struct View2D v2d 
)

◆ ANIM_draw_previewrange()

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

Draw preview range 'curtains' for highlighting where the animation data is.

◆ 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 
)

Flush visibility (for Graph Editor) changes up/down hierarchy for changes in the given setting

  • anim_data: list of the all the anim channels that can be chosen -> filtered using ANIMFILTER_CHANNELS only, since if we took VISIBLE too, then the channels under closed expanders get ignored...
  • ale_setting: the anim channel (not in the anim_data list directly, though occurring there) with the new state of the setting that we want flushed up/down the hierarchy
  • setting: type of setting to set
  • on: whether the visibility setting has been enabled or disabled

Definition at line 577 of file anim_channels_edit.c.

References ACHANNEL_SETTING_ALWAYS_VISIBLE, ANIM_channel_get_typeinfo(), anim_flush_channel_setting_down(), anim_flush_channel_setting_up(), bAnimListElem::data, ELEM, ListBase::first, bAnimChannelType::get_offset, bAnimListElem::id, bAnimListElem::next, NULL, and bAnimListElem::type.

Referenced by achannel_setting_flush_widget_cb(), graphview_curves_hide_exec(), graphview_curves_reveal_exec(), and setflag_anim_channels().

◆ ANIM_fmodifier_panels()

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

Checks if the panels match the active strip / curve, rebuilds them if they don't.

◆ ANIM_fmodifiers_copy_to_buf()

bool ANIM_fmodifiers_copy_to_buf ( ListBase modifiers,
bool  active 
)

Copy the given F-Modifiers to the buffer, returning whether anything was copied or not assuming that the buffer has been cleared already with ANIM_fmodifiers_copybuf_free()

Parameters
activeOnly copy the active modifier.

Definition at line 960 of file fmodifier_ui.c.

References blender::compositor::active, BLI_addtail(), copy_fmodifier(), copy_fmodifiers(), ELEM, find_active_fmodifier(), ListBase::first, fmodifier_copypaste_buf, and NULL.

Referenced by graph_fmodifier_copy_exec(), and nla_fmodifier_copy_exec().

◆ ANIM_fmodifiers_copybuf_free()

void ANIM_fmodifiers_copybuf_free ( void  )

Free the copy/paste buffer.

Definition at line 954 of file fmodifier_ui.c.

References fmodifier_copypaste_buf, and free_fmodifiers().

Referenced by graph_fmodifier_copy_exec(), nla_fmodifier_copy_exec(), and WM_exit_ex().

◆ ANIM_fmodifiers_paste_from_buf()

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

'Paste' the F-Modifier(s) from the buffer to the specified list

Parameters
replaceFree all the existing modifiers to leave only the pasted ones.

Definition at line 989 of file fmodifier_ui.c.

References BKE_fcurve_handles_recalc(), BKE_fcurve_is_cyclic(), BLI_addtail(), copy_fmodifier(), curve, FModifier::curve, ListBase::first, FModifier::flag, fmodifier_copypaste_buf, FMODIFIER_FLAG_ACTIVE, free_fmodifiers(), FModifier::next, and NULL.

Referenced by graph_fmodifier_paste_exec(), and nla_fmodifier_paste_exec().

◆ 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 
)

Tags the given ID block for refreshes (if applicable) due to Animation Editor editing.

Definition at line 99 of file anim_deps.c.

References DEG_id_tag_update_ex(), ID_RECALC_ANIMATION, ID_RECALC_GEOMETRY, and ID_RECALC_TRANSFORM.

Referenced by recalcData_nla().

◆ 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 933 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_context_strip_ptr()

bool ANIM_nla_context_strip_ptr ( const struct bContext C,
struct PointerRNA r_ptr 
)

◆ ANIM_nla_context_track()

struct NlaTrack* ANIM_nla_context_track ( const struct bContext C)

◆ ANIM_nla_context_track_ptr()

bool ANIM_nla_context_track_ptr ( const struct bContext C,
struct PointerRNA r_ptr 
)

◆ 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)

Unlink the action from animdata if it's empty.

If the action has no F-Curves, unlink it from AnimData if it did not come from a NLA Strip being tweaked.

Definition at line 687 of file anim_channels_edit.c.

References AnimData::action, ADT_NLA_EDIT_ON, BLI_listbase_is_empty(), bAction::curves, AnimData::flag, bAction::id, id_us_min(), and NULL.

Referenced by ANIM_fcurve_delete_from_animdata(), and clear_anim_v3d_exec().

◆ 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)

Main call to be exported to animation editors.

◆ 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 
)

◆ animviz_motionpath_compute_range()

void animviz_motionpath_compute_range ( struct Object ob,
struct Scene scene 
)

◆ ED_actedit_animdata_from_context()

struct AnimData* ED_actedit_animdata_from_context ( const struct bContext C,
struct ID **  r_adt_id_owner 
)

Action Editor - Action Management. Helper function to find the active AnimData block from the Action Editor context.

Referenced by action_main_region_draw().

◆ 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 
)

Set up UI configuration for Drivers Editor (drivers editor window) and RNA (mode switching).

Note
Currently called from window-manager.

Definition at line 38 of file graph_utils.c.

References blender::compositor::area(), BKE_area_find_region_type(), C, View2D::cur, ED_region_visibility_change_update(), SpaceGraph::mode, RGN_FLAG_HIDDEN, RGN_TYPE_UI, RGN_TYPE_WINDOW, SIPO_MODE_DRIVERS, View2D::tot, UI_panel_category_active_set(), ARegion::v2d, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by drivers_editor_show_exec().

◆ ED_keymap_anim()

void ED_keymap_anim ( struct wmKeyConfig keyconf)

Definition at line 631 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 3615 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_operatormacros_nla()

void ED_operatormacros_nla ( void  )

◆ ED_operatortypes_anim()

void ED_operatortypes_anim ( void  )

◆ ED_operatortypes_animchannels()

void ED_operatortypes_animchannels ( void  )

◆ ENUM_OPERATORS()

ENUM_OPERATORS ( eAnimFilter_Flags  ,
ANIMFILTER_TMP_IGNORE_ONLYSEL   
)

◆ getcolor_fcurve_rainbow()

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

Automatically determine a color for the nth F-Curve.

Definition at line 214 of file anim_ipo_utils.c.

References float(), HSV_BANDWIDTH, hsv_to_rgb_v(), and usdtokens::out().

Referenced by graph_refresh_fcurve_colors().

◆ getname_anim_fcurve()

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

Get icon + name for channel-list displays for F-Curve.

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 32 of file anim_ipo_utils.c.

References FCurve::array_index, BLI_snprintf(), BLI_sprintfN(), BLI_str_quoted_substr(), Freestyle::c, PointerRNA::data, ELEM, FCURVE_DISABLED, FCurve::flag, GS, ID_SCE, MEM_freeN, ID::name, 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_is_a(), 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] 
)

Get color to use for NLA Action channel's background.

Note
color returned includes fine-tuned alpha!

Definition at line 52 of file nla_draw.c.

References ADT_NLA_EDIT_ON, ADT_NLA_SOLO_TRACK, color, AnimData::flag, TH_ANIM_ACTIVE, TH_ANIM_INACTIVE, TH_NLA_TWEAK, and UI_GetThemeColor4fv().

Referenced by acf_nlaaction_backdrop(), acf_nlaaction_color(), draw_nla_main_data(), and nla_action_draw_keyframes().