From 2dbf73f6a032ab44539cfd8c05f5743fbaf33902 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 15 Apr 2009 01:10:36 +0000 Subject: 2.5 PoseLib - First steps to get PoseLib to work in 2.5 * Cleaned up Keyframing API to get eliminate some of the problems faced during the original implementation of PoseLib, thus reducing code redundancy. * Added new Animato evaluation functions specifically for use by PoseLib. * Replaced parts of PoseLib code which relied on old animation system to the equivalent code for Animato. Notice the much cleaner + saner + compact code! Next step is to operatorfy the PoseLib tools (while maintaining possibility for an API to some things) :) --- source/blender/blenkernel/BKE_animsys.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'source/blender/blenkernel/BKE_animsys.h') diff --git a/source/blender/blenkernel/BKE_animsys.h b/source/blender/blenkernel/BKE_animsys.h index 44c8d827e8c..70a0cd34a6c 100644 --- a/source/blender/blenkernel/BKE_animsys.h +++ b/source/blender/blenkernel/BKE_animsys.h @@ -12,6 +12,10 @@ struct AnimData; struct KeyingSet; struct KS_Path; +struct PointerRNA; +struct bAction; +struct AnimMapper; + /* ************************************* */ /* AnimData API */ @@ -50,6 +54,9 @@ void BKE_keyingsets_free(struct ListBase *list); /* ************************************* */ /* Evaluation API */ +/* ------------- Main API -------------------- */ +/* In general, these ones should be called to do all animation evaluation */ + /* Evaluation loop for evaluating animation data */ void BKE_animsys_evaluate_animdata(struct ID *id, struct AnimData *adt, float ctime, short recalc); @@ -57,6 +64,20 @@ void BKE_animsys_evaluate_animdata(struct ID *id, struct AnimData *adt, float ct void BKE_animsys_evaluate_all_animation(struct Main *main, float ctime); +/* ------------ Specialised API --------------- */ +/* There are a few special tools which require these following functions. They are NOT to be used + * for standard animation evaluation UNDER ANY CIRCUMSTANCES! + * + * i.e. Pose Library (PoseLib) uses some of these for selectively applying poses, but + * Particles/Sequencer performing funky time manipulation is not ok. + */ + +/* Evaluate Action (F-Curve Bag) */ +void animsys_evaluate_action(struct PointerRNA *ptr, struct bAction *act, struct AnimMapper *remap, float ctime); + +/* Evaluate Action Group */ +void animsys_evaluate_action_group(struct PointerRNA *ptr, struct bAction *act, struct bActionGroup *agrp, struct AnimMapper *remap, float ctime); + /* ************************************* */ #endif /* BKE_ANIM_SYS_H*/ -- cgit v1.2.3