274 #define ANIM_UPDATE_DEFAULT (ANIM_UPDATE_DEPS | ANIM_UPDATE_ORDER | ANIM_UPDATE_HANDLES)
275 #define ANIM_UPDATE_DEFAULT_NOHANDLES (ANIM_UPDATE_DEFAULT & ~ANIM_UPDATE_HANDLES)
349 #define SEL_SCEC(sce) (CHECK_TYPE_INLINE(sce, Scene *), ((sce->flag & SCE_DS_SELECTED)))
350 #define EXPANDED_SCEC(sce) (CHECK_TYPE_INLINE(sce, Scene *), ((sce->flag & SCE_DS_COLLAPSED) == 0))
352 #define FILTER_WOR_SCED(wo) (CHECK_TYPE_INLINE(wo, World *), (wo->flag & WO_DS_EXPAND))
353 #define FILTER_LS_SCED(linestyle) ((linestyle->flag & LS_DS_EXPAND))
355 #define SEL_OBJC(base) (CHECK_TYPE_INLINE(base, Base *), ((base->flag & SELECT)))
356 #define EXPANDED_OBJC(ob) \
357 (CHECK_TYPE_INLINE(ob, Object *), (((ob)->nlaflag & OB_ADS_COLLAPSED) == 0))
359 #define FILTER_SKE_OBJD(key) (CHECK_TYPE_INLINE(key, Key *), ((key->flag & KEY_DS_EXPAND)))
360 #define FILTER_MAT_OBJD(ma) (CHECK_TYPE_INLINE(ma, Material *), ((ma->flag & MA_DS_EXPAND)))
361 #define FILTER_LAM_OBJD(la) (CHECK_TYPE_INLINE(la, Light *), ((la->flag & LA_DS_EXPAND)))
362 #define FILTER_CAM_OBJD(ca) (CHECK_TYPE_INLINE(ca, Camera *), ((ca->flag & CAM_DS_EXPAND)))
363 #define FILTER_CACHEFILE_OBJD(cf) \
364 (CHECK_TYPE_INLINE(cf, CacheFile *), (((cf)->flag & CACHEFILE_DS_EXPAND)))
365 #define FILTER_CUR_OBJD(cu) (CHECK_TYPE_INLINE(cu, Curve *), ((cu->flag & CU_DS_EXPAND)))
366 #define FILTER_PART_OBJD(part) \
367 (CHECK_TYPE_INLINE(part, ParticleSettings *), (((part)->flag & PART_DS_EXPAND)))
368 #define FILTER_MBALL_OBJD(mb) (CHECK_TYPE_INLINE(mb, MetaBall *), ((mb->flag2 & MB_DS_EXPAND)))
369 #define FILTER_ARM_OBJD(arm) (CHECK_TYPE_INLINE(arm, bArmature *), ((arm->flag & ARM_DS_EXPAND)))
370 #define FILTER_MESH_OBJD(me) (CHECK_TYPE_INLINE(me, Mesh *), ((me->flag & ME_DS_EXPAND)))
371 #define FILTER_LATTICE_OBJD(lt) (CHECK_TYPE_INLINE(lt, Lattice *), ((lt->flag & LT_DS_EXPAND)))
372 #define FILTER_SPK_OBJD(spk) (CHECK_TYPE_INLINE(spk, Speaker *), ((spk->flag & SPK_DS_EXPAND)))
373 #define FILTER_CURVES_OBJD(ha) (CHECK_TYPE_INLINE(ha, Curves *), ((ha->flag & HA_DS_EXPAND)))
374 #define FILTER_POINTS_OBJD(pt) (CHECK_TYPE_INLINE(pt, PointCloud *), ((pt->flag & PT_DS_EXPAND)))
375 #define FILTER_VOLUME_OBJD(vo) (CHECK_TYPE_INLINE(vo, Volume *), ((vo->flag & VO_DS_EXPAND)))
376 #define FILTER_SIMULATION_OBJD(sim) \
377 (CHECK_TYPE_INLINE(sim, Simulation *), ((sim->flag & SIM_DS_EXPAND)))
379 #define FILTER_NTREE_DATA(ntree) \
380 (CHECK_TYPE_INLINE(ntree, bNodeTree *), (((ntree)->flag & NTREE_DS_EXPAND)))
381 #define FILTER_TEX_DATA(tex) (CHECK_TYPE_INLINE(tex, Tex *), ((tex->flag & TEX_DS_EXPAND)))
384 #define SEL_ACTC(actc) ((actc->flag & ACT_SELECTED))
385 #define EXPANDED_ACTC(actc) ((actc->flag & ACT_COLLAPSED) == 0)
387 #define EXPANDED_DRVD(adt) ((adt->flag & ADT_DRIVERS_COLLAPSED) == 0)
391 #define EDITABLE_AGRP(agrp) (((agrp)->flag & AGRP_PROTECTED) == 0)
392 #define EXPANDED_AGRP(ac, agrp) \
393 (((!(ac) || ((ac)->spacetype != SPACE_GRAPH)) && ((agrp)->flag & AGRP_EXPANDED)) || \
394 (((ac) && ((ac)->spacetype == SPACE_GRAPH)) && ((agrp)->flag & AGRP_EXPANDED_G)))
395 #define SEL_AGRP(agrp) (((agrp)->flag & AGRP_SELECTED) || ((agrp)->flag & AGRP_ACTIVE))
397 #define EDITABLE_FCU(fcu) ((fcu->flag & FCURVE_PROTECTED) == 0)
398 #define SEL_FCU(fcu) (fcu->flag & FCURVE_SELECTED)
401 #define EDITABLE_SHAPEKEY(kb) ((kb->flag & KEYBLOCK_LOCKED) == 0)
402 #define SEL_SHAPEKEY(kb) (kb->flag & KEYBLOCK_SEL)
406 #define EXPANDED_GPD(gpd) (gpd->flag & GP_DATA_EXPAND)
408 #define EDITABLE_GPL(gpl) ((gpl->flag & GP_LAYER_LOCKED) == 0)
409 #define SEL_GPL(gpl) (gpl->flag & GP_LAYER_SELECT)
413 #define EXPANDED_MASK(mask) (mask->flag & MASK_ANIMF_EXPAND)
415 #define EDITABLE_MASK(masklay) ((masklay->flag & MASK_LAYERFLAG_LOCKED) == 0)
416 #define SEL_MASKLAY(masklay) (masklay->flag & SELECT)
419 #define SEL_NLT(nlt) (nlt->flag & NLATRACK_SELECTED)
420 #define EDITABLE_NLT(nlt) ((nlt->flag & NLATRACK_PROTECTED) == 0)
423 #define EXPANDED_MCLIP(clip) (clip->flag & MCLIP_DATA_EXPAND)
426 #define EXPANDED_PALETTE(palette) (palette->flag & PALETTE_DATA_EXPAND)
429 #define SEL_ANIMDATA(adt) (adt->flag & ADT_UI_SELECTED)
438 #define ACHANNEL_FIRST_TOP(ac) \
439 (UI_view2d_scale_get_y(&(ac)->region->v2d) * -UI_TIME_SCRUB_MARGIN_Y - ACHANNEL_SKIP)
440 #define ACHANNEL_HEIGHT(ac) (0.8f * (ac)->yscale_fac * U.widget_unit)
441 #define ACHANNEL_SKIP (0.1f * U.widget_unit)
442 #define ACHANNEL_STEP(ac) (ACHANNEL_HEIGHT(ac) + ACHANNEL_SKIP)
444 #define ACHANNEL_TOT_HEIGHT(ac, item_amount) \
445 (-ACHANNEL_FIRST_TOP(ac) + ACHANNEL_STEP(ac) * (item_amount + 1))
448 #define ACHANNEL_NAMEWIDTH (10 * U.widget_unit)
451 #define ACHANNEL_BUTTON_WIDTH (0.8f * U.widget_unit)
460 #define NLACHANNEL_FIRST_TOP(ac) \
461 (UI_view2d_scale_get_y(&(ac)->region->v2d) * -UI_TIME_SCRUB_MARGIN_Y - NLACHANNEL_SKIP)
462 #define NLACHANNEL_HEIGHT(snla) \
463 (((snla) && ((snla)->flag & SNLA_NOSTRIPCURVES)) ? (0.8f * U.widget_unit) : \
464 (1.2f * U.widget_unit))
465 #define NLACHANNEL_SKIP (0.1f * U.widget_unit)
466 #define NLACHANNEL_STEP(snla) (NLACHANNEL_HEIGHT(snla) + NLACHANNEL_SKIP)
468 #define NLACHANNEL_TOT_HEIGHT(ac, item_amount) \
469 (-NLACHANNEL_FIRST_TOP(ac) + NLACHANNEL_STEP(((SpaceNla *)(ac)->sl)) * (item_amount + 1))
472 #define NLACHANNEL_NAMEWIDTH (10 * U.widget_unit)
475 #define NLACHANNEL_BUTTON_WIDTH (0.8f * U.widget_unit)
649 size_t channel_index);
815 const char *modifier_panel_prefix,
818 const char *modifier_panel_prefix,
969 #define BEZKEYTYPE(bezt) ((bezt)->hide)
977 #define ACHANNEL_SET_FLAG(channel, smode, sflag) \
979 if (smode == ACHANNEL_SETFLAG_INVERT) { \
980 (channel)->flag ^= (sflag); \
982 else if (smode == ACHANNEL_SETFLAG_ADD) { \
983 (channel)->flag |= (sflag); \
986 (channel)->flag &= ~(sflag); \
997 #define ACHANNEL_SET_FLAG_NEG(channel, smode, sflag) \
999 if (smode == ACHANNEL_SETFLAG_INVERT) { \
1000 (channel)->flag ^= (sflag); \
1002 else if (smode == ACHANNEL_SETFLAG_ADD) { \
1003 (channel)->flag &= ~(sflag); \
1006 (channel)->flag |= (sflag); \
1071 struct ID **r_adt_id_owner);
struct Depsgraph Depsgraph
void ED_animedit_unlink_action(struct bContext *C, struct ID *id, struct AnimData *adt, struct bAction *act, struct ReportList *reports, bool force_delete)
@ ACHANNEL_SETFLAG_TOGGLE
@ ACHANNEL_SETFLAG_INVERT
int getname_anim_fcurve(char *name, struct ID *id, struct FCurve *fcu)
void ED_operatortypes_animchannels(void)
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 ANIM_draw_action_framerange(struct AnimData *adt, struct bAction *action, struct View2D *v2d, float ymin, float ymax)
void ED_drivers_editor_init(struct bContext *C, struct ScrArea *area)
void ANIM_fmodifier_panels(const struct bContext *C, struct ID *owner_id, struct ListBase *fmodifiers, uiListPanelIDFromDataFunc panel_id_fn)
void animviz_motionpath_compute_range(struct Object *ob, struct Scene *scene)
@ ANIMTYPE_SPECIALDATA__UNUSED
void ANIM_channel_setting_set(bAnimContext *ac, bAnimListElem *ale, eAnimChannel_Settings setting, eAnimChannels_SetFlag mode)
void ED_operatormacros_graph(void)
void ANIM_list_elem_update(struct Main *bmain, struct Scene *scene, bAnimListElem *ale)
void ANIM_channel_draw_widgets(const struct bContext *C, bAnimContext *ac, bAnimListElem *ale, struct uiBlock *block, rctf *rect, size_t channel_index)
void ANIM_fmodifiers_copybuf_free(void)
void ANIM_fcurve_delete_from_animdata(bAnimContext *ac, struct AnimData *adt, struct FCurve *fcu)
void ANIM_draw_previewrange(const struct bContext *C, struct View2D *v2d, int end_frame_width)
bool(* PanelTypePollFn)(const struct bContext *C, struct PanelType *pt)
struct bAnimContext bAnimContext
void nla_action_get_color(struct AnimData *adt, struct bAction *act, float color[4])
void ED_nla_postop_refresh(bAnimContext *ac)
void ANIM_sync_animchannels_to_data(const struct bContext *C)
struct NlaStrip * ANIM_nla_context_strip(const struct bContext *C)
void ANIM_animdata_freelist(ListBase *anim_data)
void ANIM_channel_draw(bAnimContext *ac, bAnimListElem *ale, float yminc, float ymaxc, size_t channel_index)
void animviz_calc_motionpaths(struct Depsgraph *depsgraph, struct Main *bmain, struct Scene *scene, ListBase *targets, eAnimvizCalcRange range, bool restore)
void ANIM_draw_framerange(struct Scene *scene, struct View2D *v2d)
void animviz_get_object_motionpaths(struct Object *ob, ListBase *targets)
bool ANIM_remove_empty_action_from_animdata(struct AnimData *adt)
void ANIM_nla_mapping_apply_fcurve(struct AnimData *adt, struct FCurve *fcu, bool restore, bool only_keys)
void ED_keymap_animchannels(struct wmKeyConfig *keyconf)
bool ANIM_nla_context_track_ptr(const struct bContext *C, struct PointerRNA *r_ptr)
struct Depsgraph * animviz_depsgraph_build(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, struct ListBase *targets)
void ED_keymap_anim(struct wmKeyConfig *keyconf)
float ANIM_unit_mapping_get_factor(struct Scene *scene, struct ID *id, struct FCurve *fcu, short flag, float *r_offset)
bool ANIM_nla_context_strip_ptr(const struct bContext *C, struct PointerRNA *r_ptr)
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 getcolor_fcurve_rainbow(int cur, int tot, float out[3])
void ANIM_center_frame(struct bContext *C, int smooth_viewtx)
void ANIM_modifier_panels_register_graph_and_NLA(struct ARegionType *region_type, const char *modifier_panel_prefix, PanelTypePollFn poll_function)
void(* uiListPanelIDFromDataFunc)(void *data_link, char *r_idname)
void ANIM_draw_cfra(const struct bContext *C, struct View2D *v2d, short flag)
@ ACHANNEL_SETTING_ALWAYS_VISIBLE
@ ACHANNEL_SETTING_PINNED
@ ACHANNEL_SETTING_PROTECT
@ ACHANNEL_SETTING_VISIBLE
@ ACHANNEL_SETTING_EXPAND
@ ACHANNEL_SETTING_MOD_OFF
@ ACHANNEL_SETTING_SELECT
struct bAnimChannelType bAnimChannelType
bool ANIM_fmodifiers_paste_from_buf(ListBase *modifiers, bool replace, struct FCurve *curve)
size_t ANIM_animdata_filter(bAnimContext *ac, ListBase *anim_data, eAnimFilter_Flags filter_mode, void *data, eAnimCont_Types datatype)
void ANIM_anim_channels_select_toggle(bAnimContext *ac)
void ED_operatormacros_nla(void)
short ANIM_channel_setting_get(bAnimContext *ac, bAnimListElem *ale, eAnimChannel_Settings setting)
struct AnimData * ANIM_nla_mapping_get(bAnimContext *ac, bAnimListElem *ale)
bAction * ANIM_channel_action_get(const bAnimListElem *ale)
void ED_operatortypes_anim(void)
ENUM_OPERATORS(eAnimFilter_Flags, ANIMFILTER_TMP_IGNORE_ONLYSEL)
const bAnimChannelType * ANIM_channel_get_typeinfo(bAnimListElem *ale)
struct FCurve * ANIM_graph_context_fcurve(const struct bContext *C)
eAnimEditDraw_CurrentFrame
struct AnimData * ED_actedit_animdata_from_context(const struct bContext *C, struct ID **r_adt_id_owner)
bool ANIM_animdata_get_context(const struct bContext *C, bAnimContext *ac)
void ED_operatormacros_action(void)
@ ANIMVIZ_CALC_RANGE_FULL
@ ANIMVIZ_CALC_RANGE_CURRENT_FRAME
@ ANIMVIZ_CALC_RANGE_CHANGED
void ANIM_id_update(struct Main *bmain, struct ID *id)
bool ANIM_fmodifiers_copy_to_buf(ListBase *modifiers, bool active)
struct NlaTrack * ANIM_nla_context_track(const struct bContext *C)
@ ANIMFILTER_DATA_VISIBLE
@ ANIMFILTER_CURVE_VISIBLE
@ ANIMFILTER_LIST_VISIBLE
@ ANIMFILTER_LIST_CHANNELS
@ ANIMFILTER_TMP_IGNORE_ONLYSEL
short ANIM_get_normalization_flags(bAnimContext *ac)
void ANIM_animdata_update(bAnimContext *ac, ListBase *anim_data)
@ ANIM_UNITCONV_NORMALIZE
@ ANIM_UNITCONV_NORMALIZE_FREEZE
void ANIM_modifier_panels_register_graph_only(struct ARegionType *region_type, const char *modifier_panel_prefix, PanelTypePollFn poll_function)
struct bAnimListElem bAnimListElem
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
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 Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input 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 a color
const Depsgraph * depsgraph
SyclQueue void void size_t num_bytes void
DO_INLINE void filter(lfVector *V, fmatrix3x3 *S)
static void area(int d1, int d2, int e1, int e2, float weights[2])
bool active
all scheduled work for the GPU.
static const pxr::TfToken out("out", pxr::TfToken::Immortal)
char owner_id[BKE_ST_MAXNAME]
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, struct PointerRNA *ptr, struct PropertyRNA **prop)
void(* draw_backdrop)(bAnimContext *ac, bAnimListElem *ale, float yminc, float ymaxc)
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
int(* setting_flag)(bAnimContext *ac, eAnimChannel_Settings setting, bool *neg)
int(* icon)(bAnimListElem *ale)
struct ReportList * reports
struct ViewLayer * view_layer
struct Depsgraph * depsgraph
struct ID * fcurve_owner_id
struct bAnimListElem * next
struct bAnimListElem * prev