Blender V2.61 - r43446
Typedefs | Enumerations | Functions

BKE_action.h File Reference

Blender kernel action and pose functionality. More...

#include "DNA_listBase.h"

Go to the source code of this file.

Typedefs

typedef enum eAction_TransformFlags eAction_TransformFlags

Enumerations

enum  eAction_TransformFlags {
  ACT_TRANS_LOC = (1<<0), ACT_TRANS_ROT = (1<<1), ACT_TRANS_SCALE = (1<<2), ACT_TRANS_PROP = (1<<3),
  ACT_TRANS_ONLY = (ACT_TRANS_LOC|ACT_TRANS_ROT|ACT_TRANS_SCALE), ACT_TRANS_ALL = (ACT_TRANS_ONLY|ACT_TRANS_PROP)
}

Functions

struct bActionadd_empty_action (const char name[])
struct bActioncopy_action (struct bAction *src)
void free_action (struct bAction *act)
void make_local_action (struct bAction *act)
short action_get_item_transforms (struct bAction *act, struct Object *ob, struct bPoseChannel *pchan, ListBase *curves)
void calc_action_range (const struct bAction *act, float *start, float *end, short incl_modifiers)
short action_has_motion (const struct bAction *act)
struct bActionGroupget_active_actiongroup (struct bAction *act)
void set_active_action_group (struct bAction *act, struct bActionGroup *agrp, short select)
struct bActionGroupaction_groups_add_new (struct bAction *act, const char name[])
void action_groups_add_channel (struct bAction *act, struct bActionGroup *agrp, struct FCurve *fcurve)
void action_groups_remove_channel (struct bAction *act, struct FCurve *fcu)
struct bActionGroupaction_groups_find_named (struct bAction *act, const char name[])
void action_groups_clear_tempflags (struct bAction *act)
void free_pose_channel (struct bPoseChannel *pchan)
void free_pose_channels (struct bPose *pose)
void make_pose_channels_hash (struct bPose *pose)
void free_pose_channels_hash (struct bPose *pose)
void free_pose (struct bPose *pose)
void copy_pose (struct bPose **dst, struct bPose *src, int copyconstraints)
void duplicate_pose_channel_data (struct bPoseChannel *pchan, const struct bPoseChannel *pchan_from)
struct bPoseChannelget_pose_channel (const struct bPose *pose, const char *name)
struct bPoseChannelget_active_posechannel (struct Object *ob)
struct bPoseChannelverify_pose_channel (struct bPose *pose, const char *name)
void extract_pose_from_pose (struct bPose *pose, const struct bPose *src)
void update_pose_constraint_flags (struct bPose *pose)
const char * get_ikparam_name (struct bPose *pose)
void init_pose_ikparam (struct bPose *pose)
void init_pose_itasc (struct bItasc *itasc)
void framechange_poses_clear_unkeyed (void)
void pose_add_group (struct Object *ob)
void pose_remove_group (struct Object *ob)
void what_does_obaction (struct Object *ob, struct Object *workob, struct bPose *pose, struct bAction *act, char groupname[], float cframe)
void copy_pose_result (struct bPose *to, struct bPose *from)
void rest_pose (struct bPose *pose)

Detailed Description

Blender kernel action and pose functionality.

Author:
Reevan McKay
Ton Roosendaal (full recode 2005)
Joshua Leung (full recode 2009)
Since:
may 2001

Definition in file BKE_action.h.


Typedef Documentation


Enumeration Type Documentation

Enumerator:
ACT_TRANS_LOC 
ACT_TRANS_ROT 
ACT_TRANS_SCALE 
ACT_TRANS_PROP 
ACT_TRANS_ONLY 
ACT_TRANS_ALL 

Definition at line 76 of file BKE_action.h.


Function Documentation

short action_get_item_transforms ( struct bAction act,
struct Object ob,
struct bPoseChannel pchan,
ListBase curves 
)
void action_groups_add_channel ( struct bAction act,
struct bActionGroup agrp,
struct FCurve fcurve 
)
struct bActionGroup* action_groups_add_new ( struct bAction act,
const char  name[] 
) [read]
void action_groups_clear_tempflags ( struct bAction act)
struct bActionGroup* action_groups_find_named ( struct bAction act,
const char  name[] 
) [read]
void action_groups_remove_channel ( struct bAction act,
struct FCurve fcu 
)
short action_has_motion ( const struct bAction act)

Referenced by BKE_nla_action_pushdown().

struct bAction* add_empty_action ( const char  name[]) [read]
void calc_action_range ( const struct bAction act,
float *  start,
float *  end,
short  incl_modifiers 
)
struct bAction* copy_action ( struct bAction src) [read]
void copy_pose ( struct bPose **  dst,
struct bPose src,
int  copyconstraints 
)

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.

Definition at line 493 of file action.c.

References bPose::agroups, BLI_duplicatelist(), bPose::chanbase, bPoseChannel::constraints, copy_constraints(), ListBase::first, IDP_CopyProperty(), bPose::ikdata, bPose::ikparam, bPose::iksolver, MEM_callocN(), MEM_dupallocN(), bPoseChannel::mpath, bPoseChannel::next, NULL, bPoseChannel::prop, and TRUE.

Referenced by copy_object_pose(), draw_ghost_poses(), draw_ghost_poses_keys(), draw_ghost_poses_range(), pose_clear_user_transforms_exec(), and pose_copy_exec().

void copy_pose_result ( struct bPose to,
struct bPose from 
)
void duplicate_pose_channel_data ( struct bPoseChannel pchan,
const struct bPoseChannel pchan_from 
)

Copy the internal members of each pose channel including constraints and ID-Props, used when duplicating bones in editmode.

Referenced by duplicateEditBoneObjects().

void extract_pose_from_pose ( struct bPose pose,
const struct bPose src 
)
void framechange_poses_clear_unkeyed ( void  )
void free_action ( struct bAction act)
void free_pose ( struct bPose pose)

Removes and deallocates all data from a pose, and also frees the pose.

Definition at line 621 of file action.c.

References bPose::agroups, BIK_clear_data(), BLI_freelistN(), ListBase::first, free_pose_channels(), bPose::ikparam, and MEM_freeN().

Referenced by actcon_get_tarmat(), draw_ghost_poses(), draw_ghost_poses_keys(), draw_ghost_poses_range(), free_object(), and lib_link_object().

void free_pose_channel ( struct bPoseChannel pchan)
void free_pose_channels ( struct bPose pose)

Removes and deallocates all channels from a pose. Does not free the pose itself.

Definition at line 607 of file action.c.

References BLI_freelistN(), bPose::chanbase, ListBase::first, free_pose_channel(), free_pose_channels_hash(), and bPoseChannel::next.

Referenced by free_pose(), and game_free_pose().

void free_pose_channels_hash ( struct bPose pose)
struct bActionGroup* get_active_actiongroup ( struct bAction act) [read]
struct bPoseChannel* get_active_posechannel ( struct Object ob) [read]
const char* get_ikparam_name ( struct bPose pose)

Definition at line 480 of file action.c.

References bPose::iksolver, IKSOLVER_ITASC, IKSOLVER_LEGACY, and NULL.

Referenced by write_pose().

struct bPoseChannel* get_pose_channel ( const struct bPose pose,
const char *  name 
) [read]
void init_pose_ikparam ( struct bPose pose)
void init_pose_itasc ( struct bItasc itasc)
void make_local_action ( struct bAction act)
void make_pose_channels_hash ( struct bPose pose)

Removes the hash for quick lookup of channels, must be done when adding/removing channels.

Definition at line 571 of file action.c.

References BLI_ghash_insert(), BLI_ghash_new(), BLI_ghashutil_strcmp(), BLI_ghashutil_strhash(), bPose::chanbase, bPose::chanhash, ListBase::first, bPoseChannel::name, and bPoseChannel::next.

Referenced by armature_rebuild_pose(), game_copy_pose(), and object_handle_update().

void pose_add_group ( struct Object ob)
void pose_remove_group ( struct Object ob)
void rest_pose ( struct bPose pose)
void set_active_action_group ( struct bAction act,
struct bActionGroup agrp,
short  select 
)
void update_pose_constraint_flags ( struct bPose pose)
struct bPoseChannel* verify_pose_channel ( struct bPose pose,
const char *  name 
) [read]
void what_does_obaction ( struct Object ob,
struct Object workob,
struct bPose pose,
struct bAction act,
char  groupname[],
float  cframe 
)