36#define DRIVER_TARGETS_LOOPER_BEGIN(dvar) \
38 DriverTarget *dtar = &dvar->targets[0]; \
40 for (; tarIndex < MAX_DRIVER_TARGETS; tarIndex++, dtar++)
43#define DRIVER_TARGETS_USED_LOOPER_BEGIN(dvar) \
45 DriverTarget *dtar = &dvar->targets[0]; \
47 for (; tarIndex < dvar->num_targets; tarIndex++, dtar++)
50#define DRIVER_TARGETS_LOOPER_END \
100 float mat[4][4],
int auto_order,
int rotation_mode,
int channel,
bool angles,
float r_buf[4]);
176 bool varname_changed);
struct DriverVar * driver_add_new_variable(struct ChannelDriver *driver)
float evaluate_driver(struct PathResolvedRNA *anim_rna, struct ChannelDriver *driver, struct ChannelDriver *driver_orig, const struct AnimationEvalContext *anim_eval_context)
void driver_variable_unique_name(struct DriverVar *dvar)
struct ChannelDriver * fcurve_copy_driver(const struct ChannelDriver *driver)
struct DriverTargetContext DriverTargetContext
void BKE_driver_invalidate_expression(struct ChannelDriver *driver, bool expr_changed, bool varname_changed)
bool BKE_driver_has_simple_expression(struct ChannelDriver *driver)
void driver_variables_copy(struct ListBase *dst_vars, const struct ListBase *src_vars)
void BKE_driver_target_matrix_to_rot_channels(float mat[4][4], int auto_order, int rotation_mode, int channel, bool angles, float r_buf[4])
bool BKE_driver_expression_depends_on_time(struct ChannelDriver *driver)
eDriverVariablePropertyResult driver_get_variable_property(const struct AnimationEvalContext *anim_eval_context, struct ChannelDriver *driver, struct DriverVar *dvar, struct DriverTarget *dtar, bool allow_no_index, struct PointerRNA *r_ptr, struct PropertyRNA **r_prop, int *r_index)
void driver_free_variable_ex(struct ChannelDriver *driver, struct DriverVar *dvar)
eDriverVariablePropertyResult
@ DRIVER_VAR_PROPERTY_SUCCESS
@ DRIVER_VAR_PROPERTY_FALLBACK
@ DRIVER_VAR_PROPERTY_INVALID_INDEX
@ DRIVER_VAR_PROPERTY_INVALID
void fcurve_free_driver(struct FCurve *fcu)
bool driver_get_target_property(const DriverTargetContext *driver_target_context, struct DriverVar *dvar, struct DriverTarget *dtar, struct PointerRNA *r_prop)
void driver_free_variable(struct ListBase *variables, struct DriverVar *dvar)
float driver_get_variable_value(const struct AnimationEvalContext *anim_eval_context, struct ChannelDriver *driver, struct DriverVar *dvar)
void driver_change_variable_type(struct DriverVar *dvar, int type)
void driver_variable_name_validate(struct DriverVar *dvar)
struct ViewLayer * view_layer