From 6d074526f24320eb23be6ad14fd372a2f9c70b89 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 21 Jul 2009 10:18:08 +0000 Subject: 2.5 - Restoring Bone Groups * Added Bone Groups UI to 'Armature' context buttons for now. Later, it may be more convenient to have these with bones instead? * Added operators for the operations that can be performed on these groups. Moved the core adding/removing functions to blenkernel so that they can be used elsewhere in future if need be. * Properly wrapped bone groups in RNA. Copied the way that Vertex Groups are wrapped, since they share some similarities. Setting colours for bone groups still needs more work though. --- source/blender/blenkernel/BKE_action.h | 37 ++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 13 deletions(-) (limited to 'source/blender/blenkernel/BKE_action.h') diff --git a/source/blender/blenkernel/BKE_action.h b/source/blender/blenkernel/BKE_action.h index 0c9bba5e413..d35acb5447a 100644 --- a/source/blender/blenkernel/BKE_action.h +++ b/source/blender/blenkernel/BKE_action.h @@ -1,6 +1,6 @@ /* BKE_action.h May 2001 * - * Blender kernel action functionality + * Blender kernel action and pose functionality * * Reevan McKay * @@ -26,7 +26,7 @@ * All rights reserved. * * Contributor(s): Full recode, Ton Roosendaal, Crete 2005 - * Full recode, Joshua Leung, 2009 + * Full recode, Joshua Leung, 2009 * * ***** END GPL LICENSE BLOCK ***** */ @@ -103,8 +103,7 @@ void free_pose(struct bPose *pose); * Allocate a new pose on the heap, and copy the src pose and it's channels * into the new pose. *dst is set to the newly allocated structure, and assumed to be NULL. */ -void copy_pose(struct bPose **dst, struct bPose *src, - int copyconstraints); +void copy_pose(struct bPose **dst, struct bPose *src, int copyconstraints); @@ -112,9 +111,8 @@ void copy_pose(struct bPose **dst, struct bPose *src, * Return a pointer to the pose channel of the given name * from this pose. */ -struct bPoseChannel *get_pose_channel(const struct bPose *pose, - const char *name); - +struct bPoseChannel *get_pose_channel(const struct bPose *pose, const char *name); + /** * Return a pointer to the active pose channel from this Object. * (Note: Object, not bPose is used here, as we need layer info from Armature) @@ -126,8 +124,9 @@ struct bPoseChannel *get_active_posechannel(struct Object *ob); * already exists in this pose - if not a new one is * allocated and initialized. */ -struct bPoseChannel *verify_pose_channel(struct bPose* pose, - const char* name); +struct bPoseChannel *verify_pose_channel(struct bPose* pose, const char* name); + + /* sets constraint flags */ void update_pose_constraint_flags(struct bPose *pose); @@ -136,18 +135,30 @@ void update_pose_constraint_flags(struct bPose *pose); // XXX to be depreceated for a more general solution in animsys... void framechange_poses_clear_unkeyed(void); +/* Bone Groups API --------------------- */ + +/* Adds a new bone-group */ +void pose_add_group(struct Object *ob); + +/* Remove the active bone-group */ +void pose_remove_group(struct Object *ob); + +/* Assorted Evaluation ----------------- */ + /* Used for the Action Constraint */ void what_does_obaction(struct Scene *scene, struct Object *ob, struct Object *workob, struct bPose *pose, struct bAction *act, char groupname[], float cframe); -/* exported for game engine */ -void game_blend_poses(struct bPose *dst, struct bPose *src, float srcweight/*, short mode*/); /* was blend_poses */ -void extract_pose_from_pose(struct bPose *pose, const struct bPose *src); - /* for proxy */ void copy_pose_result(struct bPose *to, struct bPose *from); /* clear all transforms */ void rest_pose(struct bPose *pose); +/* Game Engine ------------------------- */ + +/* exported for game engine */ +void game_blend_poses(struct bPose *dst, struct bPose *src, float srcweight/*, short mode*/); /* was blend_poses */ +void extract_pose_from_pose(struct bPose *pose, const struct bPose *src); + /* functions used by the game engine */ void game_copy_pose(struct bPose **dst, struct bPose *src); void game_free_pose(struct bPose *pose); -- cgit v1.2.3