Blender
V3.3
|
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BKE_action.h"
#include "BKE_anim_data.h"
#include "BKE_idprop.h"
#include "BKE_layer.h"
#include "BKE_object.h"
#include "BKE_context.h"
#include "DEG_depsgraph.h"
#include "RNA_access.h"
#include "RNA_path.h"
#include "RNA_prototypes.h"
#include "WM_api.h"
#include "WM_types.h"
#include "ED_armature.h"
#include "ED_keyframing.h"
#include "armature_intern.h"
Go to the source code of this file.
Functions | |
static void | fcurves_to_pchan_links_get (ListBase *pfLinks, Object *ob, bAction *act, bPoseChannel *pchan) |
Object * | poseAnim_object_get (Object *ob_) |
void | poseAnim_mapping_get (bContext *C, ListBase *pfLinks) |
void | poseAnim_mapping_free (ListBase *pfLinks) |
void | poseAnim_mapping_refresh (bContext *C, Scene *UNUSED(scene), Object *ob) |
void | poseAnim_mapping_reset (ListBase *pfLinks) |
void | poseAnim_mapping_autoKeyframe (bContext *C, Scene *scene, ListBase *pfLinks, float cframe) |
LinkData * | poseAnim_mapping_getNextFCurve (ListBase *fcuLinks, LinkData *prev, const char *path) |
|
static |
Definition at line 52 of file pose_utils.c.
References ACT_TRANS_BBONE, ACT_TRANS_LOC, ACT_TRANS_PROP, ACT_TRANS_ROT, ACT_TRANS_SCALE, action_get_item_transforms(), BLI_addtail(), copy_qt_qt(), copy_v3_v3(), tPChanFCurveLink::curve_in_x, bPoseChannel::curve_in_x, tPChanFCurveLink::curve_in_z, bPoseChannel::curve_in_z, tPChanFCurveLink::curve_out_x, bPoseChannel::curve_out_x, tPChanFCurveLink::curve_out_z, bPoseChannel::curve_out_z, curves, tPChanFCurveLink::ease1, bPoseChannel::ease1, tPChanFCurveLink::ease2, bPoseChannel::ease2, bPoseChannel::eul, tPChanFCurveLink::fcurves, bPoseChannel::flag, IDP_CopyProperty(), bPoseChannel::loc, MEM_callocN, NULL, tPChanFCurveLink::ob, tPChanFCurveLink::oldangle, tPChanFCurveLink::oldaxis, tPChanFCurveLink::oldloc, tPChanFCurveLink::oldprops, tPChanFCurveLink::oldquat, tPChanFCurveLink::oldrot, tPChanFCurveLink::oldscale, tPChanFCurveLink::pchan, tPChanFCurveLink::pchan_path, POSE_BBONE_SHAPE, POSE_LOC, POSE_ROT, POSE_SIZE, bPoseChannel::prop, ptr, bPoseChannel::quat, RNA_path_from_ID_to_struct(), RNA_pointer_create(), tPChanFCurveLink::roll1, bPoseChannel::roll1, tPChanFCurveLink::roll2, bPoseChannel::roll2, bPoseChannel::rotAngle, bPoseChannel::rotAxis, tPChanFCurveLink::scale_in, bPoseChannel::scale_in, tPChanFCurveLink::scale_out, bPoseChannel::scale_out, and bPoseChannel::size.
Referenced by poseAnim_mapping_get().
void poseAnim_mapping_autoKeyframe | ( | struct bContext * | C, |
struct Scene * | scene, | ||
ListBase * | pfLinks, | ||
float | cframe | ||
) |
Perform auto-key-framing after changes were made + confirmed.
Definition at line 248 of file pose_utils.c.
References ANIM_apply_keyingset(), ANIM_get_keyingset_for_autokeying(), ANIM_KS_WHOLE_CHARACTER_ID, ANIM_relative_keyingset_add_source(), autokeyframe_cfra_can_key(), BLI_freelistN(), C, CTX_data_view_layer(), CTX_wm_view3d(), ED_pose_recalculate_paths(), ListBase::first, FOREACH_OBJECT_IN_MODE_BEGIN, FOREACH_OBJECT_IN_MODE_END, Object::id, Scene::id, LIB_TAG_DOIT, MODIFYKEY_MODE_INSERT, MOTIONPATH_BAKE_HAS_PATHS, tPChanFCurveLink::next, NULL, tPChanFCurveLink::ob, OB_ARMATURE, OB_MODE_POSE, tPChanFCurveLink::pchan, POSE_PATH_CALC_RANGE_FULL, poseAnim_object_get(), scene, and ID::tag.
Referenced by pose_slide_autoKeyframe().
Free F-Curve <-> PoseChannel links.
Definition at line 175 of file pose_utils.c.
References BLI_freelinkN(), BLI_freelistN(), tPChanFCurveLink::fcurves, ListBase::first, IDP_FreeProperty(), MEM_freeN, tPChanFCurveLink::next, NULL, tPChanFCurveLink::oldprops, and tPChanFCurveLink::pchan_path.
Referenced by pose_propagate_exec(), and pose_slide_exit().
Get sets of F-Curves providing transforms for the bones in the Pose.
Definition at line 130 of file pose_utils.c.
References AnimData::action, Object::adt, BLI_listbase_is_empty(), C, CTX_DATA_BEGIN_WITH_ID, CTX_DATA_END, fcurves_to_pchan_links_get(), NULL, and poseAnim_object_get().
Referenced by pose_propagate_exec(), and pose_slide_init().
LinkData* poseAnim_mapping_getNextFCurve | ( | ListBase * | fcuLinks, |
LinkData * | prev, | ||
const char * | path | ||
) |
Find the next F-Curve for a PoseChannel with matching path...
Definition at line 316 of file pose_utils.c.
References LinkData::data, ListBase::first, if(), blender::meshintersect::SymEdge< Arith_t >::next, LinkData::next, NULL, blender::meshintersect::prev(), FCurve::rna_path, and STREQ.
Referenced by pose_slide_apply_quat(), and pose_slide_apply_vec3().
Definition at line 201 of file pose_utils.c.
References AnimData::action, BKE_animdata_from_id(), C, DEG_id_tag_update(), bAction::id, Object::id, ID_RECALC_ANIMATION_NO_FLUSH, ID_RECALC_GEOMETRY, NC_OBJECT, ND_POSE, and WM_event_add_notifier().
Reset changes made to current pose.
Definition at line 212 of file pose_utils.c.
References copy_qt_qt(), copy_v3_v3(), tPChanFCurveLink::curve_in_x, bPoseChannel::curve_in_x, tPChanFCurveLink::curve_in_z, bPoseChannel::curve_in_z, tPChanFCurveLink::curve_out_x, bPoseChannel::curve_out_x, tPChanFCurveLink::curve_out_z, bPoseChannel::curve_out_z, tPChanFCurveLink::ease1, bPoseChannel::ease1, tPChanFCurveLink::ease2, bPoseChannel::ease2, bPoseChannel::eul, ListBase::first, IDP_SyncGroupValues(), bPoseChannel::loc, tPChanFCurveLink::next, tPChanFCurveLink::oldangle, tPChanFCurveLink::oldaxis, tPChanFCurveLink::oldloc, tPChanFCurveLink::oldprops, tPChanFCurveLink::oldquat, tPChanFCurveLink::oldrot, tPChanFCurveLink::oldscale, tPChanFCurveLink::pchan, bPoseChannel::prop, bPoseChannel::quat, tPChanFCurveLink::roll1, bPoseChannel::roll1, tPChanFCurveLink::roll2, bPoseChannel::roll2, bPoseChannel::rotAngle, bPoseChannel::rotAxis, tPChanFCurveLink::scale_in, bPoseChannel::scale_in, tPChanFCurveLink::scale_out, bPoseChannel::scale_out, and bPoseChannel::size.
Referenced by pose_slide_reset().
Returns a valid pose armature for this object, else returns NULL.
Definition at line 121 of file pose_utils.c.
References AnimData::action, Object::adt, BKE_object_pose_armature_get(), Object::data, ELEM, and NULL.
Referenced by pose_slide_init(), poseAnim_mapping_autoKeyframe(), and poseAnim_mapping_get().