Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/BKE_animsys.h
| Show First 20 Lines • Show All 211 Lines • ▼ Show 20 Lines | |||||
| /* ************************************* */ | /* ************************************* */ | ||||
| // TODO: overrides, remapping, and path-finding api's | // TODO: overrides, remapping, and path-finding api's | ||||
| /* ------------ NLA Keyframing --------------- */ | /* ------------ NLA Keyframing --------------- */ | ||||
| typedef struct NlaKeyframingContext NlaKeyframingContext; | typedef struct NlaKeyframingContext NlaKeyframingContext; | ||||
| struct NlaKeyframingContext *BKE_animsys_get_nla_keyframing_context(struct ListBase *cache, | struct NlaKeyframingContext *BKE_animsys_get_nla_keyframing_context(struct ListBase *cache, | ||||
| struct Depsgraph *depsgraph, | |||||
| struct PointerRNA *ptr, | struct PointerRNA *ptr, | ||||
| struct AnimData *adt, | struct AnimData *adt, | ||||
| float ctime); | float ctime, | ||||
| const bool flush_to_original); | |||||
| bool BKE_animsys_nla_remap_keyframe_values(struct NlaKeyframingContext *context, | bool BKE_animsys_nla_remap_keyframe_values(struct NlaKeyframingContext *context, | ||||
| struct PointerRNA *prop_ptr, | struct PointerRNA *prop_ptr, | ||||
| struct PropertyRNA *prop, | struct PropertyRNA *prop, | ||||
| float *values, | float *values, | ||||
| int count, | int count, | ||||
| int index, | int index, | ||||
| bool *r_force_all); | bool *r_force_all); | ||||
| void BKE_animsys_free_nla_keyframing_context_cache(struct ListBase *cache); | void BKE_animsys_free_nla_keyframing_context_cache(struct ListBase *cache); | ||||
| /* ************************************* */ | /* ************************************* */ | ||||
| /* Evaluation API */ | /* Evaluation API */ | ||||
| /* ------------- Main API -------------------- */ | /* ------------- Main API -------------------- */ | ||||
| /* In general, these ones should be called to do all animation evaluation */ | /* In general, these ones should be called to do all animation evaluation */ | ||||
| /* Flags for recalc parameter, indicating which part to recalculate. */ | /* Flags for recalc parameter, indicating which part to recalculate. */ | ||||
| typedef enum eAnimData_Recalc { | typedef enum eAnimData_Recalc { | ||||
| ADT_RECALC_DRIVERS = (1 << 0), | ADT_RECALC_DRIVERS = (1 << 0), | ||||
| ADT_RECALC_ANIM = (1 << 1), | ADT_RECALC_ANIM = (1 << 1), | ||||
| ADT_RECALC_ALL = (ADT_RECALC_DRIVERS | ADT_RECALC_ANIM), | ADT_RECALC_ALL = (ADT_RECALC_DRIVERS | ADT_RECALC_ANIM), | ||||
| } eAnimData_Recalc; | } eAnimData_Recalc; | ||||
| /* Evaluation loop for evaluating animation data */ | /* Evaluation loop for evaluating animation data */ | ||||
| void BKE_animsys_evaluate_animdata(struct Depsgraph *depsgraph, | void BKE_animsys_evaluate_animdata(struct Scene *scene, | ||||
| struct Scene *scene, | |||||
| struct ID *id, | struct ID *id, | ||||
| struct AnimData *adt, | struct AnimData *adt, | ||||
| float ctime, | float ctime, | ||||
| short recalc); | short recalc, | ||||
| const bool flush_to_original); | |||||
| /* Evaluation of all ID-blocks with Animation Data blocks - Animation Data Only */ | /* Evaluation of all ID-blocks with Animation Data blocks - Animation Data Only */ | ||||
| void BKE_animsys_evaluate_all_animation(struct Main *main, | void BKE_animsys_evaluate_all_animation(struct Main *main, | ||||
| struct Depsgraph *depsgraph, | struct Depsgraph *depsgraph, | ||||
| struct Scene *scene, | struct Scene *scene, | ||||
| float ctime); | float ctime); | ||||
| /* TODO(sergey): This is mainly a temp public function. */ | /* TODO(sergey): This is mainly a temp public function. */ | ||||
| bool BKE_animsys_execute_fcurve(struct PointerRNA *ptr, struct FCurve *fcu, float curval); | bool BKE_animsys_execute_fcurve(struct PointerRNA *ptr, struct FCurve *fcu, float curval); | ||||
| /* ------------ Specialized API --------------- */ | /* ------------ Specialized API --------------- */ | ||||
| /* There are a few special tools which require these following functions. They are NOT to be used | /* There are a few special tools which require these following functions. They are NOT to be used | ||||
| * for standard animation evaluation UNDER ANY CIRCUMSTANCES! | * for standard animation evaluation UNDER ANY CIRCUMSTANCES! | ||||
| * | * | ||||
| * i.e. Pose Library (PoseLib) uses some of these for selectively applying poses, but | * i.e. Pose Library (PoseLib) uses some of these for selectively applying poses, but | ||||
| * Particles/Sequencer performing funky time manipulation is not ok. | * Particles/Sequencer performing funky time manipulation is not ok. | ||||
| */ | */ | ||||
| /* Evaluate Action (F-Curve Bag) */ | /* Evaluate Action (F-Curve Bag) */ | ||||
| void animsys_evaluate_action(struct Depsgraph *depsgraph, | void animsys_evaluate_action(struct PointerRNA *ptr, | ||||
| struct PointerRNA *ptr, | |||||
| struct bAction *act, | struct bAction *act, | ||||
| float ctime); | float ctime, | ||||
| const bool flush_to_original); | |||||
| /* Evaluate Action Group */ | /* Evaluate Action Group */ | ||||
| void animsys_evaluate_action_group(struct PointerRNA *ptr, | void animsys_evaluate_action_group(struct PointerRNA *ptr, | ||||
| struct bAction *act, | struct bAction *act, | ||||
| struct bActionGroup *agrp, | struct bActionGroup *agrp, | ||||
| float ctime); | float ctime); | ||||
| /* ************************************* */ | /* ************************************* */ | ||||
| Show All 16 Lines | |||||