|
Blender V4.3
|
#include "MEM_guardedalloc.h"#include "BLI_blenlib.h"#include "BLI_math_rotation.h"#include "BLI_math_vector.h"#include "DNA_anim_types.h"#include "DNA_armature_types.h"#include "DNA_object_types.h"#include "BKE_action.hh"#include "BKE_anim_data.hh"#include "BKE_idprop.hh"#include "BKE_layer.hh"#include "BKE_object.hh"#include "BKE_context.hh"#include "DEG_depsgraph.hh"#include "RNA_access.hh"#include "RNA_path.hh"#include "RNA_prototypes.hh"#include "WM_api.hh"#include "WM_types.hh"#include "ED_armature.hh"#include "ED_keyframing.hh"#include "ANIM_action.hh"#include "ANIM_action_iterators.hh"#include "ANIM_keyframing.hh"#include "ANIM_keyingsets.hh"#include "armature_intern.hh"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_BBONE = (1 << 3) , ACT_TRANS_PROP = (1 << 4) , ACT_TRANS_ONLY = (ACT_TRANS_LOC | ACT_TRANS_ROT | ACT_TRANS_SCALE) , ACT_TRANS_ALL = (ACT_TRANS_ONLY | ACT_TRANS_PROP) } |
Functions | |
| static eAction_TransformFlags | get_item_transform_flags_and_fcurves (Object &ob, bPoseChannel &pchan, ListBase &r_curves) |
| static void | fcurves_to_pchan_links_get (ListBase &pfLinks, Object &ob, 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 *, 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) |
| typedef enum eAction_TransformFlags eAction_TransformFlags |
Types of transforms applied to the given item:
Types of transforms applied to the given item:
| Enumerator | |
|---|---|
| ACT_TRANS_LOC | |
| ACT_TRANS_ROT | |
| ACT_TRANS_SCALE | |
| ACT_TRANS_BBONE | |
| ACT_TRANS_PROP | |
| ACT_TRANS_ONLY | |
| ACT_TRANS_ALL | |
Definition at line 61 of file pose_utils.cc.
|
static |
Definition at line 167 of file pose_utils.cc.
References ACT_TRANS_BBONE, ACT_TRANS_LOC, ACT_TRANS_PROP, ACT_TRANS_ROT, ACT_TRANS_SCALE, BLI_addtail(), BLI_strdup(), copy_qt_qt(), copy_v3_v3(), bPoseChannel::curve_in_x, tPChanFCurveLink::curve_in_x, bPoseChannel::curve_in_z, tPChanFCurveLink::curve_in_z, bPoseChannel::curve_out_x, tPChanFCurveLink::curve_out_x, bPoseChannel::curve_out_z, tPChanFCurveLink::curve_out_z, bPoseChannel::ease1, tPChanFCurveLink::ease1, bPoseChannel::ease2, tPChanFCurveLink::ease2, bPoseChannel::eul, tPChanFCurveLink::fcurves, bPoseChannel::flag, get_item_transform_flags_and_fcurves(), IDP_CopyProperty(), bPoseChannel::loc, MEM_callocN, 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(), bPoseChannel::roll1, tPChanFCurveLink::roll1, bPoseChannel::roll2, tPChanFCurveLink::roll2, bPoseChannel::rotAngle, bPoseChannel::rotAxis, bPoseChannel::scale_in, tPChanFCurveLink::scale_in, bPoseChannel::scale_out, tPChanFCurveLink::scale_out, and bPoseChannel::size.
Referenced by poseAnim_mapping_get().
|
static |
Definition at line 74 of file pose_utils.cc.
References ACT_TRANS_BBONE, ACT_TRANS_LOC, ACT_TRANS_PROP, ACT_TRANS_ROT, ACT_TRANS_SCALE, AnimData::action, Object::adt, BLI_addtail(), BLI_genericNodeN(), blender::animrig::foreach_fcurve_in_action_slot(), ptr, FCurve::rna_path, RNA_path_from_ID_to_struct(), RNA_pointer_create(), and AnimData::slot_handle.
Referenced by fcurves_to_pchan_links_get().
| void poseAnim_mapping_autoKeyframe | ( | bContext * | C, |
| Scene * | scene, | ||
| ListBase * | pfLinks, | ||
| float | cframe ) |
Perform auto-key-framing after changes were made + confirmed.
Definition at line 368 of file pose_utils.cc.
References ANIM_apply_keyingset(), ANIM_get_keyingset_for_autokeying(), ANIM_KS_WHOLE_CHARACTER_ID, ANIM_relative_keyingset_add_source(), blender::animrig::autokeyframe_cfra_can_key(), CTX_data_view_layer(), CTX_wm_view3d(), ED_pose_recalculate_paths(), FOREACH_OBJECT_IN_MODE_BEGIN, FOREACH_OBJECT_IN_MODE_END, ID_TAG_DOIT, blender::animrig::INSERT, LISTBASE_FOREACH, MOTIONPATH_BAKE_HAS_PATHS, OB_ARMATURE, OB_MODE_POSE, POSE_PATH_CALC_RANGE_FULL, and poseAnim_object_get().
Referenced by pose_slide_autoKeyframe().
| void poseAnim_mapping_free | ( | ListBase * | pfLinks | ) |
Free F-Curve <-> PoseChannel links.
Definition at line 297 of file pose_utils.cc.
References BLI_freelinkN(), BLI_freelistN(), tPChanFCurveLink::fcurves, ListBase::first, IDP_FreeProperty(), MEM_freeN(), tPChanFCurveLink::next, tPChanFCurveLink::oldprops, and tPChanFCurveLink::pchan_path.
Referenced by pose_propagate_exec(), and pose_slide_exit().
Build up a list of tPChanFCurveLink. First only selected, and if that yields no result, all visible.
Definition at line 241 of file pose_utils.cc.
References AnimData::action, Object::adt, BLI_assert, BLI_listbase_is_empty(), CTX_DATA_BEGIN_WITH_ID, CTX_DATA_END, fcurves_to_pchan_links_get(), 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.
path is not just the tPChanFCurveLink (pfl) rna_path, since that path doesn't have property info yet. Definition at line 434 of file pose_utils.cc.
References LinkData::data, ListBase::first, LinkData::next, FCurve::rna_path, and STREQ.
Referenced by pose_slide_apply_quat(), and pose_slide_apply_vec3().
Helper for apply() / reset() - refresh the data.
Definition at line 323 of file pose_utils.cc.
References AnimData::action, BKE_animdata_from_id(), 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().
Referenced by pose_propagate_exec(), and pose_slide_refresh().
| void poseAnim_mapping_reset | ( | ListBase * | pfLinks | ) |
Reset changes made to current pose.
Definition at line 334 of file pose_utils.cc.
References copy_qt_qt(), copy_v3_v3(), bPoseChannel::curve_in_x, bPoseChannel::curve_in_z, bPoseChannel::curve_out_x, bPoseChannel::curve_out_z, bPoseChannel::ease1, bPoseChannel::ease2, bPoseChannel::eul, IDP_SyncGroupValues(), LISTBASE_FOREACH, bPoseChannel::loc, bPoseChannel::quat, bPoseChannel::roll1, bPoseChannel::roll2, bPoseChannel::rotAngle, bPoseChannel::rotAxis, bPoseChannel::scale_in, 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 232 of file pose_utils.cc.
References AnimData::action, Object::adt, BKE_object_pose_armature_get(), Object::data, and ELEM.
Referenced by pose_slide_init(), poseAnim_mapping_autoKeyframe(), and poseAnim_mapping_get().