247#define ANIM_UPDATE_DEFAULT (ANIM_UPDATE_DEPS | ANIM_UPDATE_ORDER | ANIM_UPDATE_HANDLES)
248#define ANIM_UPDATE_DEFAULT_NOHANDLES (ANIM_UPDATE_DEFAULT & ~ANIM_UPDATE_HANDLES)
408#define SEL_SCEC(sce) (CHECK_TYPE_INLINE(sce, Scene *), ((sce->flag & SCE_DS_SELECTED)))
409#define EXPANDED_SCEC(sce) (CHECK_TYPE_INLINE(sce, Scene *), ((sce->flag & SCE_DS_COLLAPSED) == 0))
411#define FILTER_WOR_SCED(wo) (CHECK_TYPE_INLINE(wo, World *), (wo->flag & WO_DS_EXPAND))
412#define FILTER_LS_SCED(linestyle) ((linestyle->flag & LS_DS_EXPAND))
414#define SEL_OBJC(base) (CHECK_TYPE_INLINE(base, Base *), ((base->flag & SELECT)))
415#define EXPANDED_OBJC(ob) \
416 (CHECK_TYPE_INLINE(ob, Object *), (((ob)->nlaflag & OB_ADS_COLLAPSED) == 0))
418#define FILTER_SKE_OBJD(key) (CHECK_TYPE_INLINE(key, Key *), ((key->flag & KEY_DS_EXPAND)))
419#define FILTER_MAT_OBJD(ma) (CHECK_TYPE_INLINE(ma, Material *), ((ma->flag & MA_DS_EXPAND)))
420#define FILTER_LAM_OBJD(la) (CHECK_TYPE_INLINE(la, Light *), ((la->flag & LA_DS_EXPAND)))
421#define FILTER_CAM_OBJD(ca) (CHECK_TYPE_INLINE(ca, Camera *), ((ca->flag & CAM_DS_EXPAND)))
422#define FILTER_CACHEFILE_OBJD(cf) \
423 (CHECK_TYPE_INLINE(cf, CacheFile *), (((cf)->flag & CACHEFILE_DS_EXPAND)))
424#define FILTER_CUR_OBJD(cu) (CHECK_TYPE_INLINE(cu, Curve *), ((cu->flag & CU_DS_EXPAND)))
425#define FILTER_PART_OBJD(part) \
426 (CHECK_TYPE_INLINE(part, ParticleSettings *), (((part)->flag & PART_DS_EXPAND)))
427#define FILTER_MBALL_OBJD(mb) (CHECK_TYPE_INLINE(mb, MetaBall *), ((mb->flag2 & MB_DS_EXPAND)))
428#define FILTER_ARM_OBJD(arm) (CHECK_TYPE_INLINE(arm, bArmature *), ((arm->flag & ARM_DS_EXPAND)))
429#define FILTER_MESH_OBJD(me) (CHECK_TYPE_INLINE(me, Mesh *), ((me->flag & ME_DS_EXPAND)))
430#define FILTER_LATTICE_OBJD(lt) (CHECK_TYPE_INLINE(lt, Lattice *), ((lt->flag & LT_DS_EXPAND)))
431#define FILTER_SPK_OBJD(spk) (CHECK_TYPE_INLINE(spk, Speaker *), ((spk->flag & SPK_DS_EXPAND)))
432#define FILTER_CURVES_OBJD(ha) (CHECK_TYPE_INLINE(ha, Curves *), ((ha->flag & HA_DS_EXPAND)))
433#define FILTER_POINTS_OBJD(pt) (CHECK_TYPE_INLINE(pt, PointCloud *), ((pt->flag & PT_DS_EXPAND)))
434#define FILTER_VOLUME_OBJD(vo) (CHECK_TYPE_INLINE(vo, Volume *), ((vo->flag & VO_DS_EXPAND)))
436#define FILTER_NTREE_DATA(ntree) \
437 (CHECK_TYPE_INLINE(ntree, bNodeTree *), (((ntree)->flag & NTREE_DS_EXPAND)))
438#define FILTER_TEX_DATA(tex) (CHECK_TYPE_INLINE(tex, Tex *), ((tex->flag & TEX_DS_EXPAND)))
441#define SEL_ACTC(actc) ((actc->flag & ACT_SELECTED))
442#define EXPANDED_ACTC(actc) ((actc->flag & ACT_COLLAPSED) == 0)
444#define EXPANDED_DRVD(adt) ((adt->flag & ADT_DRIVERS_COLLAPSED) == 0)
445#define EXPANDED_ADT(adt) ((adt->flag & ADT_UI_EXPANDED) != 0)
449#define EDITABLE_AGRP(agrp) (((agrp)->flag & AGRP_PROTECTED) == 0)
450#define EXPANDED_AGRP(ac, agrp) \
451 (((!(ac) || ((ac)->spacetype != SPACE_GRAPH)) && ((agrp)->flag & AGRP_EXPANDED)) || \
452 (((ac) && ((ac)->spacetype == SPACE_GRAPH)) && ((agrp)->flag & AGRP_EXPANDED_G)))
453#define SEL_AGRP(agrp) (((agrp)->flag & AGRP_SELECTED) || ((agrp)->flag & AGRP_ACTIVE))
455#define EDITABLE_FCU(fcu) (((fcu)->flag & FCURVE_PROTECTED) == 0)
456#define SEL_FCU(fcu) ((fcu)->flag & FCURVE_SELECTED)
459#define EDITABLE_SHAPEKEY(kb) ((kb->flag & KEYBLOCK_LOCKED) == 0)
460#define SEL_SHAPEKEY(kb) (kb->flag & KEYBLOCK_SEL)
464#define EXPANDED_GPD(gpd) (gpd->flag & GP_DATA_EXPAND)
466#define EDITABLE_GPL(gpl) ((gpl->flag & GP_LAYER_LOCKED) == 0)
467#define SEL_GPL(gpl) (gpl->flag & GP_LAYER_SELECT)
471#define EXPANDED_MASK(mask) (mask->flag & MASK_ANIMF_EXPAND)
473#define EDITABLE_MASK(masklay) ((masklay->flag & MASK_LAYERFLAG_LOCKED) == 0)
474#define SEL_MASKLAY(masklay) (masklay->flag & SELECT)
477#define SEL_NLT(nlt) (nlt->flag & NLATRACK_SELECTED)
478#define EDITABLE_NLT(nlt) ((nlt->flag & NLATRACK_PROTECTED) == 0)
481#define EXPANDED_MCLIP(clip) (clip->flag & MCLIP_DATA_EXPAND)
484#define EXPANDED_PALETTE(palette) (palette->flag & PALETTE_DATA_EXPAND)
487#define SEL_ANIMDATA(adt) (adt->flag & ADT_UI_SELECTED)
496#define NLATRACK_FIRST_TOP(ac) \
497 (UI_view2d_scale_get_y(&(ac)->region->v2d) * -UI_TIME_SCRUB_MARGIN_Y - NLATRACK_SKIP)
498#define NLATRACK_HEIGHT(snla) \
499 (((snla) && ((snla)->flag & SNLA_NOSTRIPCURVES)) ? (0.8f * U.widget_unit) : \
500 (1.2f * U.widget_unit))
501#define NLATRACK_SKIP (0.1f * U.widget_unit)
502#define NLATRACK_STEP(snla) (NLATRACK_HEIGHT(snla) + NLATRACK_SKIP)
504#define NLATRACK_TOT_HEIGHT(ac, item_amount) \
505 (-NLATRACK_FIRST_TOP(ac) + NLATRACK_STEP(((SpaceNla *)(ac)->sl)) * (item_amount + 1))
508#define NLATRACK_NAMEWIDTH (10 * U.widget_unit)
707 size_t channel_index);
872 const char *modifier_panel_prefix,
875 const char *modifier_panel_prefix,
1037#define ACHANNEL_SET_FLAG(channel, smode, sflag) \
1039 if (smode == ACHANNEL_SETFLAG_INVERT) { \
1040 (channel)->flag ^= (sflag); \
1042 else if (smode == ACHANNEL_SETFLAG_ADD) { \
1043 (channel)->flag |= (sflag); \
1046 (channel)->flag &= ~(sflag); \
1057#define ACHANNEL_SET_FLAG_NEG(channel, smode, sflag) \
1059 if (smode == ACHANNEL_SETFLAG_INVERT) { \
1060 (channel)->flag ^= (sflag); \
1062 else if (smode == ACHANNEL_SETFLAG_ADD) { \
1063 (channel)->flag &= ~(sflag); \
1066 (channel)->flag |= (sflag); \
#define ENUM_OPERATORS(_type, _max)
@ ACHANNEL_SETFLAG_TOGGLE
@ ACHANNEL_SETFLAG_EXTEND_RANGE
@ ACHANNEL_SETFLAG_INVERT
std::string getname_anim_fcurve_for_slot(Main &bmain, const blender::animrig::Slot &slot, FCurve &fcurve)
NlaTrack * ANIM_nla_context_track(const bContext *C)
bool ANIM_fmodifiers_paste_from_buf(ListBase *modifiers, bool replace, FCurve *curve)
bool ANIM_animdata_can_have_greasepencil(const eAnimCont_Types type)
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 ED_operatortypes_anim()
short ANIM_get_normalization_flags(SpaceLink *space_link)
AnimData * ANIM_nla_mapping_get(bAnimContext *ac, bAnimListElem *ale)
void ED_keymap_animchannels(wmKeyConfig *keyconf)
@ ANIMTYPE_SPECIALDATA__UNUSED
@ ANIMTYPE_GREASE_PENCIL_DATABLOCK
@ ANIMTYPE_GREASE_PENCIL_LAYER
@ ANIMTYPE_FILLACT_LAYERED
@ ANIMTYPE_GREASE_PENCIL_LAYER_GROUP
AnimData * ED_actedit_animdata_from_context(const bContext *C, ID **r_adt_id_owner)
void ANIM_channel_setting_set(bAnimContext *ac, bAnimListElem *ale, eAnimChannel_Settings setting, eAnimChannels_SetFlag mode)
float ANIM_UI_get_channel_skip()
void animviz_calc_motionpaths(Depsgraph *depsgraph, Main *bmain, Scene *scene, ListBase *targets, eAnimvizCalcRange range, bool restore)
void ANIM_channel_draw_widgets(const bContext *C, bAnimContext *ac, bAnimListElem *ale, uiBlock *block, const rctf *rect, size_t channel_index)
float ANIM_UI_get_keyframe_scale_factor()
void ED_operatormacros_graph()
float ANIM_UI_get_channel_name_width()
void ED_nla_postop_refresh(bAnimContext *ac)
void ANIM_animdata_freelist(ListBase *anim_data)
void animviz_get_object_motionpaths(Object *ob, ListBase *targets)
void ANIM_channel_draw(bAnimContext *ac, bAnimListElem *ale, float yminc, float ymaxc, size_t channel_index)
void ANIM_draw_action_framerange(AnimData *adt, bAction *action, View2D *v2d, float ymin, float ymax)
void ANIM_frame_channel_y_extents(bContext *C, bAnimContext *ac)
rctf ANIM_frame_range_view2d_add_xmargin(const View2D &view_2d, rctf view_rect)
void ED_operatormacros_action()
const bAnimChannelType * ANIM_channel_get_typeinfo(bAnimListElem *ale)
bool ANIM_animdata_get_context(const bContext *C, bAnimContext *ac)
float ANIM_UI_get_channel_step()
void(*)(void *data_link, char *r_idname) uiListPanelIDFromDataFunc
bool ANIM_is_active_channel(bAnimListElem *ale)
float ANIM_UI_get_channels_total_height(View2D *v2d, int item_count)
@ ALE_GREASE_PENCIL_GROUP
void animviz_motionpath_compute_range(Object *ob, Scene *scene)
std::optional< int > getname_anim_fcurve(char *name, ID *id, FCurve *fcu)
float ANIM_UI_get_first_channel_top(View2D *v2d)
void ANIM_draw_cfra(const bContext *C, View2D *v2d, short flag)
void ED_animedit_unlink_action(bContext *C, ID *id, AnimData *adt, bAction *act, ReportList *reports, bool force_delete)
void ANIM_set_active_channel(bAnimContext *ac, void *data, eAnimCont_Types datatype, eAnimFilter_Flags filter, void *channel_data, eAnim_ChannelType channel_type)
void ANIM_channel_debug_print_info(bAnimListElem *ale, short indent_level)
bool ANIM_animdata_context_getdata(bAnimContext *ac)
void ANIM_deselect_keys_in_animation_editors(bContext *C)
void ANIM_modifier_panels_register_graph_only(ARegionType *region_type, const char *modifier_panel_prefix, PanelTypePollFn poll_function)
float ANIM_UI_get_channel_height()
void getcolor_fcurve_rainbow(int cur, int tot, float out[3])
void ANIM_center_frame(bContext *C, int smooth_viewtx)
void ANIM_nla_mapping_apply_fcurve(AnimData *adt, FCurve *fcu, bool restore, bool only_keys)
NlaStrip * ANIM_nla_context_strip(const bContext *C)
void ANIM_modifier_panels_register_graph_and_NLA(ARegionType *region_type, const char *modifier_panel_prefix, PanelTypePollFn poll_function)
void ANIM_sync_animchannels_to_data(const bContext *C)
FCurve * ANIM_graph_context_fcurve(const bContext *C)
@ ACHANNEL_SETTING_ALWAYS_VISIBLE
@ ACHANNEL_SETTING_PINNED
@ ACHANNEL_SETTING_PROTECT
@ ACHANNEL_SETTING_VISIBLE
@ ACHANNEL_SETTING_EXPAND
@ ACHANNEL_SETTING_MOD_OFF
@ ACHANNEL_SETTING_SELECT
bAction * ANIM_channel_action_get(const bAnimListElem *ale)
void ANIM_id_update(Main *bmain, ID *id)
void nla_action_get_color(AnimData *adt, bAction *act, float color[4])
size_t ANIM_animdata_filter(bAnimContext *ac, ListBase *anim_data, eAnimFilter_Flags filter_mode, void *data, eAnimCont_Types datatype)
void ANIM_draw_previewrange(const bContext *C, View2D *v2d, int end_frame_width)
void ANIM_anim_channels_select_toggle(bAnimContext *ac)
short ANIM_channel_setting_get(bAnimContext *ac, bAnimListElem *ale, eAnimChannel_Settings setting)
void ANIM_fmodifiers_copybuf_free()
bool(*)(const bContext *C, PanelType *pt) PanelTypePollFn
void ED_keymap_anim(wmKeyConfig *keyconf)
void ANIM_list_elem_update(Main *bmain, Scene *scene, bAnimListElem *ale)
eAnimEditDraw_CurrentFrame
float ANIM_UI_get_channel_button_width()
@ ANIMVIZ_CALC_RANGE_FULL
@ ANIMVIZ_CALC_RANGE_CURRENT_FRAME
@ ANIMVIZ_CALC_RANGE_CHANGED
float ANIM_unit_mapping_get_factor(Scene *scene, ID *id, FCurve *fcu, short flag, float *r_offset)
bool ANIM_nla_context_strip_ptr(const bContext *C, PointerRNA *r_ptr)
void ED_operatortypes_animchannels()
bool ANIM_nla_context_track_ptr(const bContext *C, PointerRNA *r_ptr)
Depsgraph * animviz_depsgraph_build(Main *bmain, Scene *scene, ViewLayer *view_layer, ListBase *targets)
bool ANIM_fmodifiers_copy_to_buf(ListBase *modifiers, bool active)
@ ANIMFILTER_DATA_VISIBLE
@ ANIMFILTER_CURVE_VISIBLE
@ ANIMFILTER_LIST_VISIBLE
@ ANIMFILTER_LIST_CHANNELS
@ ANIMFILTER_TMP_IGNORE_ONLYSEL
void ANIM_fmodifier_panels(const bContext *C, ID *owner_id, ListBase *fmodifiers, uiListPanelIDFromDataFunc panel_id_fn)
void ED_operatormacros_nla()
void ED_drivers_editor_init(bContext *C, ScrArea *area)
void ANIM_animdata_update(bAnimContext *ac, ListBase *anim_data)
@ ANIM_UNITCONV_NORMALIZE
@ ANIM_UNITCONV_NORMALIZE_FREEZE
void ANIM_draw_framerange(Scene *scene, View2D *v2d)
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Brightness Control the brightness and contrast of the input color Vector Map input vector components with curves Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert Invert a color
BPy_StructRNA * depsgraph
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
DO_INLINE void filter(lfVector *V, fmatrix3x3 *S)
void(* name)(bAnimListElem *ale, char *name)
void(* get_backdrop_color)(bAnimContext *ac, bAnimListElem *ale, float r_color[3])
short(* get_offset)(bAnimContext *ac, bAnimListElem *ale)
bool(* name_prop)(bAnimListElem *ale, PointerRNA *r_ptr, PropertyRNA **r_prop)
void(* draw_backdrop)(bAnimContext *ac, bAnimListElem *ale, float yminc, float ymaxc)
int(* setting_flag)(bAnimContext *ac, eAnimChannel_Settings setting, bool *r_neg)
const char * channel_type_name
bool(* has_setting)(bAnimContext *ac, bAnimListElem *ale, eAnimChannel_Settings setting)
short(* get_indent_level)(bAnimContext *ac, bAnimListElem *ale)
eAnimChannel_Role channel_role
bool(* get_channel_color)(const bAnimListElem *ale, uint8_t r_color[3])
int(* icon)(bAnimListElem *ale)
eAnimEdit_Context dopesheet_mode
eGraphEdit_Mode grapheditor_mode
eAnim_Update_Flags update