|
Blender V4.3
|
#include "DNA_armature_types.h"#include "DNA_constraint_types.h"#include "MEM_guardedalloc.h"#include "BLI_ghash.h"#include "BLI_listbase.h"#include "BLI_math_matrix.h"#include "BLI_math_rotation.h"#include "BLI_math_vector.h"#include "BKE_action.hh"#include "BKE_armature.hh"#include "BKE_constraint.h"#include "BKE_context.hh"#include "BKE_report.hh"#include "BIK_api.h"#include "ED_anim_api.hh"#include "ED_armature.hh"#include "DEG_depsgraph.hh"#include "DEG_depsgraph_query.hh"#include "ANIM_action.hh"#include "ANIM_bone_collections.hh"#include "ANIM_keyframing.hh"#include "ANIM_rna.hh"#include "transform.hh"#include "transform_orientations.hh"#include "transform_snap.hh"#include "transform_convert.hh"Go to the source code of this file.
Classes | |
| struct | BoneInitData |
| struct | PoseInitData_Mirror |
Variables | |
| TransConvertTypeInfo | TransConvertType_EditArmature |
| TransConvertTypeInfo | TransConvertType_Pose |
|
static |
Definition at line 387 of file transform_convert_armature.cc.
References add_temporary_ik_constraint(), TransData::axismtx, TransDataExtension::axismtx_gimbal, BKE_bone_parent_transform_calc_from_pchan(), bPoseChannel::bone, BONE_HINGE_CHILD_TRANSFORM, Bone::bone_mat, BONE_NO_LOCAL_LOCATION, BONE_TRANSFORM_CHILD, TransData::con, bPoseChannel::constinv, CONSTRAINT_IK_AUTO, CONSTRAINT_IK_TEMP, CONSTRAINT_IK_TIP, bPoseChannel::constraints, constraints_list_needinv(), TransInfo::context, copy_m3_m3(), copy_m3_m4(), copy_qt_qt(), copy_v3_v3(), CTX_data_main(), Bone::dist, ELEM, bPoseChannel::eul, TransData::ext, ListBase::first, Bone::flag, gimbal_axis_pose(), has_targetless_ik(), invert_m3_m3(), TransDataExtension::iquat, TransDataExtension::irot, TransDataExtension::irotAngle, TransDataExtension::irotAxis, TransDataExtension::isize, TransDataExtension::l_smtx, bPoseChannel::loc, BoneParentTransform::loc_mat, TransInfo::mode, TransData::mtx, mul_m3_m3m3(), mul_m3_series, normalize_m3(), TransData::ob, TransInfo::orient_type_mask, bPoseChannel::parent, bPoseChannel::pose_head, bPoseChannel::pose_mat, bPoseChannel::pose_tail, bPoseChannel::protectflag, TransData::protectflag, PSEUDOINVERSE_EPSILON, pseudoinverse_m3_m3(), bPoseChannel::quat, TransDataExtension::quat, TransDataExtension::r_mtx, TransDataExtension::r_smtx, TransDataExtension::rot, ROT_MODE_AXISANGLE, bPoseChannel::rotAngle, TransDataExtension::rotAngle, bPoseChannel::rotAxis, TransDataExtension::rotAxis, bPoseChannel::rotmode, TransDataExtension::rotOrder, BoneParentTransform::rotscale_mat, bPoseChannel::size, TransDataExtension::size, TransData::smtx, TD_NO_LOC, TD_NOCENTER, TD_PBONE_LOCAL_MTX_C, TD_PBONE_LOCAL_MTX_P, TD_SELECTED, TFM_BONE_ENVELOPE_DIST, TFM_BONESIZE, TFM_RESIZE, TFM_TRANSLATION, update_deg_with_temporary_ik(), V3D_ORIENT_GIMBAL, and Bone::xwidth.
Referenced by createTransPose().
|
static |
Definition at line 69 of file transform_convert_armature.cc.
References BKE_constraint_add_for_pose(), bPoseChannel::constflag, CONSTRAINT_IK_AUTO, CONSTRAINT_IK_POS, CONSTRAINT_IK_TEMP, CONSTRAINT_IK_TIP, CONSTRAINT_TYPE_KINEMATIC, bConstraint::data, bKinematicConstraint::flag, PCHAN_HAS_IK, and PCHAN_HAS_NO_TARGET.
Referenced by add_pose_transdata(), pose_grab_with_ik_add(), and pose_transform_mirror_update().
|
static |
Definition at line 1526 of file transform_convert_armature.cc.
References BKE_armature_mat_pose_to_bone(), BKE_pchan_mat3_to_rot(), BKE_pchan_rot_to_mat3(), bPoseChannel::bone, BONE_TRANSFORM, bPose::chanbase, CONSTRAINT_IK_AUTO, CONSTRAINT_IK_STRETCH, CONSTRAINT_IK_TIP, copy_m3_m4(), data, Bone::flag, has_targetless_ik(), invert_m3_m3(), LISTBASE_FOREACH, mat3_to_size(), mul_m3_m3m3(), normalize_m3(), bPoseChannel::parent, Object::pose, bPoseChannel::pose_mat, and bPoseChannel::size.
Referenced by special_aftertrans_update__pose().
|
static |
Definition at line 1345 of file transform_convert_armature.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::as_span(), AUTOKEY_FLAG_INSERTNEEDED, blender::animrig::autokeyframe_pose_channel(), BONE_CONNECTED, BONE_TRANSFORM, BONE_TRANSFORM_MIRROR, bPose::chanbase, bPose::flag, get_affected_rna_paths_from_transform_mode(), blender::animrig::get_rotation_mode_path(), blender::animrig::is_keying_flag(), LISTBASE_FOREACH, Object::pose, and POSE_MIRROR_EDIT.
Referenced by recalcData_pose(), and special_aftertrans_update__pose().
Definition at line 1470 of file transform_convert_armature.cc.
References bone_children_clear_transflag(), BONE_CONNECTED, BONE_HINGE, BONE_HINGE_CHILD_TRANSFORM, BONE_TRANSFORM, BONE_TRANSFORM_CHILD, Bone::childbase, ELEM, ListBase::first, Bone::flag, Bone::next, TFM_ROTATION, TFM_TRACKBALL, and V3D_AROUND_LOCAL_ORIGINS.
Referenced by bone_children_clear_transflag(), and transform_convert_pose_transflags_update().
Definition at line 735 of file transform_convert_armature.cc.
References ARM_MIRROR_EDIT, TransInfo::around, TransData::axismtx, BLI_assert, BoneInitData::bone, BONE_EDITMODE_LOCKED, BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, copy_m3_m3(), copy_m3_m4(), copy_v3_v3(), TransInfo::data_len_all, BoneInitData::dist, EditBone::dist, TransData::dist, EBONE_VISIBLE, ED_armature_ebone_get_mirrored(), ED_armature_ebone_to_mat3(), bArmature::edbo, ELEM, TransData::ext, bArmature::flag, FOREACH_TRANS_DATA_CONTAINER, EditBone::head, invert_m3_m3(), LISTBASE_FOREACH, MEM_allocN_len, MEM_callocN, MEM_mallocN, TransInfo::mode, TransData::mtx, mul_m3_m3m3(), normalize_m3(), TransData::ob, OB_LOCK_LOC, OB_LOCK_ROT, OB_LOCK_SCALE, TransData::protectflag, PSEUDOINVERSE_EPSILON, pseudoinverse_m3_m3(), BoneInitData::rad_head, EditBone::rad_head, BoneInitData::rad_tail, EditBone::rad_tail, BoneInitData::roll, EditBone::roll, TransData::smtx, EditBone::tail, TD_SELECTED, TFM_BONE_ENVELOPE, TFM_BONE_ENVELOPE_DIST, TFM_BONE_ROLL, TFM_BONESIZE, TFM_ROTATION, transform_around_single_fallback(), V3D_AROUND_LOCAL_ORIGINS, BoneInitData::xwidth, EditBone::xwidth, BoneInitData::zwidth, and EditBone::zwidth.
Definition at line 554 of file transform_convert_armature.cc.
References add_pose_transdata(), ARM_RESTPOS, TransInfo::around, BKE_armature_from_object(), BKE_pose_channel_get_mirrored(), BKE_report(), bPoseChannel::bone, BONE_CONNECTED, BONE_HINGE_CHILD_TRANSFORM, BONE_TRANSFORM, BONE_TRANSFORM_MIRROR, bPose::chanbase, TransInfo::context, CTX_data_main(), bPoseChannel::custom, TransInfo::data_len_all, ELEM, TransData::ext, bArmature::flag, Bone::flag, bPose::flag, TransInfo::flag, FOREACH_TRANS_DATA_CONTAINER, has_targetless_ik(), LISTBASE_FOREACH, MEM_callocN, MEM_mallocN, TransInfo::mode, OB_LOCK_LOC, OB_LOCK_ROT, PoseInitData_Mirror::pchan, Object::pose, POSE_AUTO_IK, pose_grab_with_ik(), POSE_MIRROR_EDIT, pose_mirror_info_init(), POSE_MIRROR_RELATIVE, TransInfo::reports, RPT_DEBUG, RPT_ERROR, T_AUTOIK, TFM_BONESIZE, TFM_DUMMY, TFM_RESIZE, TFM_ROTATION, TFM_TRANSLATION, transform_autoik_update(), transform_convert_pose_transflags_update(), and Object::type.
|
static |
Definition at line 1272 of file transform_convert_armature.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Vector< T, InlineBufferCapacity, Allocator >::append_non_duplicates(), SCE_XFORM_AXIS_ALIGN, TFM_RESIZE, TFM_ROTATION, TFM_TRACKBALL, TFM_TRANSLATION, ToolSettings::transform_flag, ToolSettings::transform_pivot_point, V3D_AROUND_CURSOR, and V3D_AROUND_LOCAL_ORIGINS.
Referenced by autokeyframe_pose().
|
static |
Definition at line 104 of file transform_convert_armature.cc.
References CONSTRAINT_OFF, CONSTRAINT_TYPE_KINEMATIC, bPoseChannel::constraints, bConstraint::data, data, bConstraint::enforce, ListBase::first, bConstraint::flag, bConstraint::next, OB_ARMATURE, and bConstraint::type.
Referenced by add_pose_transdata(), apply_targetless_ik(), createTransPose(), pose_transform_mirror_update(), and special_aftertrans_update__pose().
Definition at line 60 of file transform_convert_armature.cc.
References blender::animrig::autokeyframe_cfra_can_key(), bPose::avs, Object::id, MOTIONPATH_BAKE_HAS_PATHS, bAnimVizSettings::path_bakeflag, and Object::pose.
Referenced by recalcData_pose(), and special_aftertrans_update__pose().
Definition at line 248 of file transform_convert_armature.cc.
References BKE_pose_is_bonecoll_visible(), bPoseChannel::bone, BONE_CONNECTED, BONE_SELECTED, BONE_TRANSFORM_MIRROR, bPose::chanbase, Object::data, Bone::flag, LISTBASE_FOREACH, Object::mode, Bone::next, OB_MODE_POSE, bPoseChannel::parent, Object::pose, pose_grab_with_ik_add(), pose_grab_with_ik_children(), and update_deg_with_temporary_ik().
Referenced by createTransPose().
|
static |
Adds the IK to pchan - returns if added.
Definition at line 128 of file transform_convert_armature.cc.
References add_temporary_ik_constraint(), bPoseChannel::bone, BONE_CONNECTED, BONE_IK_NO_XDOF_TEMP, BONE_IK_NO_YDOF_TEMP, BONE_IK_NO_ZDOF_TEMP, CONSTRAINT_DISABLE, CONSTRAINT_IK_AUTO, CONSTRAINT_OFF, CONSTRAINT_TYPE_KINEMATIC, bPoseChannel::constraints, copy_v3_v3(), bConstraint::data, data, Bone::flag, bPoseChannel::ikflag, LISTBASE_FOREACH, OB_ARMATURE, OB_LOCK_ROTX, OB_LOCK_ROTY, OB_LOCK_ROTZ, bPoseChannel::parent, bPoseChannel::pose_tail, and bPoseChannel::protectflag.
Referenced by pose_grab_with_ik(), and pose_grab_with_ik_children().
Bone is a candidate to get IK, but we don't do it if it has children connected.
Definition at line 226 of file transform_convert_armature.cc.
References BKE_pose_channel_find_name(), BONE_CONNECTED, Bone::childbase, LISTBASE_FOREACH, Bone::name, pose_grab_with_ik_add(), and pose_grab_with_ik_children().
Referenced by pose_grab_with_ik(), and pose_grab_with_ik_children().
Frees temporal IKs.
Definition at line 1608 of file transform_convert_armature.cc.
References BIK_clear_data(), BLI_remlink(), BONE_IK_NO_XDOF_TEMP, BONE_IK_NO_YDOF_TEMP, BONE_IK_NO_ZDOF_TEMP, bPose::chanbase, CONSTRAINT_IK_TEMP, CONSTRAINT_TYPE_KINEMATIC, bConstraint::data, data, DEG_relations_tag_update(), LISTBASE_FOREACH, MEM_freeN(), bConstraint::next, next, OB_ARMATURE, PCHAN_HAS_IK, PCHAN_HAS_NO_TARGET, Object::pose, and bConstraint::type.
Referenced by special_aftertrans_update__pose().
|
static |
Definition at line 335 of file transform_convert_armature.cc.
References PoseInitData_Mirror::axis_angle, BKE_pchan_to_mat4(), copy_qt_qt(), copy_v3_v3(), bPoseChannel::curve_in_x, PoseInitData_Mirror::curve_in_x, bPoseChannel::curve_out_x, PoseInitData_Mirror::curve_out_x, bPoseChannel::eul, PoseInitData_Mirror::eul, invert_m4(), bPoseChannel::loc, PoseInitData_Mirror::loc, mul_m4_m4m4(), PoseInitData_Mirror::offset_mtx, PoseInitData_Mirror::orig, PoseInitData_Mirror::pchan, bPoseChannel::quat, PoseInitData_Mirror::quat, bPoseChannel::roll1, PoseInitData_Mirror::roll1, bPoseChannel::roll2, PoseInitData_Mirror::roll2, ROT_MODE_AXISANGLE, bPoseChannel::rotAngle, bPoseChannel::rotAxis, bPoseChannel::rotmode, bPoseChannel::size, PoseInitData_Mirror::size, and unit_m4().
Referenced by createTransPose().
|
static |
Definition at line 1232 of file transform_convert_armature.cc.
References PoseInitData_Mirror::axis_angle, copy_qt_qt(), copy_v3_v3(), bPoseChannel::curve_in_x, PoseInitData_Mirror::curve_in_x, bPoseChannel::curve_out_x, PoseInitData_Mirror::curve_out_x, bPoseChannel::eul, PoseInitData_Mirror::eul, bPoseChannel::loc, PoseInitData_Mirror::loc, PoseInitData_Mirror::orig, PoseInitData_Mirror::pchan, bPoseChannel::quat, PoseInitData_Mirror::quat, bPoseChannel::roll1, PoseInitData_Mirror::roll1, bPoseChannel::roll2, PoseInitData_Mirror::roll2, ROT_MODE_AXISANGLE, bPoseChannel::rotAngle, bPoseChannel::rotAxis, bPoseChannel::rotmode, bPoseChannel::size, and PoseInitData_Mirror::size.
Referenced by restoreMirrorPoseBones().
|
static |
if pose bone (partial) selected, copy data. context; pose-mode armature, with mirror editing enabled.
Definition at line 1154 of file transform_convert_armature.cc.
References add_temporary_ik_constraint(), BKE_pchan_apply_mat4(), BKE_pchan_to_mat4(), BKE_pose_channel_get_mirrored(), BLI_assert, bPoseChannel::bone, BONE_TRANSFORM, BONE_TRANSFORM_MIRROR, bPose::chanbase, CONSTRAINT_IK_AUTO, CONSTRAINT_IK_TEMP, TransInfo::context, CTX_data_main(), bPoseChannel::curve_in_x, bPoseChannel::curve_out_x, TransDataContainer::custom, TransCustomData::data, TransDataContainer::data, TransDataContainer::data_len, Bone::flag, bPose::flag, has_targetless_ik(), LISTBASE_FOREACH, TransInfo::mode, mul_m4_m4m4(), mul_v3_m4v3(), bPoseChannel::name, PoseInitData_Mirror::offset_mtx, Object::pose, POSE_MIRROR_RELATIVE, bPoseChannel::roll1, bPoseChannel::roll2, TFM_BONESIZE, TFM_TRANSLATION, TransCustomDataContainer::type, unit_m4(), update_deg_with_temporary_ik(), Bone::xwidth, and Bone::zwidth.
Referenced by recalcData_pose().
|
static |
Definition at line 1044 of file transform_convert_armature.cc.
References angle_compat_rad(), ARM_MIRROR_EDIT, TransData::axismtx, BONE_CONNECTED, BONE_TIPSEL, copy_v3_v3(), EditBone::dist, ED_armature_ebone_roll_to_vector(), ED_armature_edit_transform_mirror_update(), bArmature::edbo, ELEM, bArmature::flag, EditBone::flag, FOREACH_TRANS_DATA_CONTAINER, EditBone::head, len_v3v3(), EditBone::length, LISTBASE_FOREACH, TransInfo::mode, mul_qt_v3(), normalize_v3(), EditBone::oldlength, EditBone::parent, EditBone::rad_head, EditBone::rad_tail, restoreBones(), EditBone::roll, rotation_between_vecs_to_quat(), TransInfo::state, sub_v3_v3v3(), EditBone::tail, TFM_BONE_ENVELOPE, TFM_BONE_ENVELOPE_DIST, TFM_BONE_ROLL, TFM_BONESIZE, TRANS_CANCEL, and transform_snap_project_individual_apply().
|
static |
Definition at line 1384 of file transform_convert_armature.cc.
References animrecord_check_state(), TransInfo::animtimer, ARM_MIRROR_EDIT, autokeyframe_pose(), BLI_gset_free(), BLI_gset_insert(), BLI_gset_ptr_new(), BLI_gsetIterator_getKey(), TransInfo::context, Object::data, TransInfo::data_len_all, DEG_id_tag_update(), ED_armature_edit_transform_mirror_update(), ED_pose_recalculate_paths(), bArmature::flag, bPose::flag, TransInfo::flag, FOREACH_TRANS_DATA_CONTAINER, GSET_ITER, Object::id, ID_RECALC_GEOMETRY, blender::animrig::is_autokey_on(), Object::mode, TransInfo::mode, motionpath_need_update_pose(), OB_MODE_EDIT, OB_MODE_POSE, Object::pose, POSE_MIRROR_EDIT, POSE_PATH_CALC_RANGE_CURRENT_FRAME, pose_transform_mirror_update(), restoreBones(), restoreMirrorPoseBones(), TransInfo::scene, TransInfo::state, T_AUTOIK, TFM_BONESIZE, and TRANS_CANCEL.
|
static |
Definition at line 997 of file transform_convert_armature.cc.
References ARM_MIRROR_EDIT, BLI_assert, BoneInitData::bone, BONE_CONNECTED, copy_v3_v3(), TransDataContainer::custom, Object::data, TransCustomData::data, BoneInitData::dist, EditBone::dist, bArmature::edbo, bArmature::flag, EditBone::flag, BoneInitData::head, EditBone::head, LISTBASE_FOREACH, TransDataContainer::obedit, EditBone::parent, TransDataContainer::poseobj, BoneInitData::rad_head, EditBone::rad_head, BoneInitData::rad_tail, EditBone::rad_tail, BoneInitData::roll, EditBone::roll, BoneInitData::tail, EditBone::tail, TransCustomDataContainer::type, BoneInitData::xwidth, EditBone::xwidth, BoneInitData::zwidth, and EditBone::zwidth.
Referenced by recalcData_edit_armature(), and recalcData_pose().
|
static |
Definition at line 1254 of file transform_convert_armature.cc.
References TransDataContainer::custom, TransCustomData::data, bPose::flag, Object::pose, POSE_MIRROR_EDIT, pose_mirror_info_restore(), TransDataContainer::poseobj, and TransCustomDataContainer::type.
Referenced by recalcData_pose().
Definition at line 1650 of file transform_convert_armature.cc.
References ANIM_deselect_keys_in_animation_editors(), apply_targetless_ik(), TransInfo::around, autokeyframe_pose(), BKE_pose_where_is(), BLI_gset_free(), BLI_gset_insert(), BLI_gset_ptr_new(), BLI_gsetIterator_getKey(), bPose::chanbase, TransInfo::context, CTX_AUTOCONFIRM, CTX_data_main(), TransInfo::data_len_all, DEG_id_tag_update(), TransInfo::depsgraph, ED_pose_recalculate_paths(), TransInfo::flag, FOREACH_TRANS_DATA_CONTAINER, GSET_ITER, has_targetless_ik(), Object::id, ID_RECALC_GEOMETRY, blender::animrig::is_autokey_on(), LISTBASE_FOREACH, TransInfo::mode, motionpath_need_update_pose(), TransData::ob, TransInfo::options, Object::pose, pose_grab_with_ik_clear(), POSE_PATH_CALC_RANGE_CHANGED, POSE_PATH_CALC_RANGE_CURRENT_FRAME, TransInfo::scene, TransInfo::state, T_AUTOIK, TFM_BONESIZE, TFM_DUMMY, TFM_TRANSLATION, TRANS_CANCEL, and transform_convert_pose_transflags_update().
Sets transform flags in the bones. Returns total number of bones with BONE_TRANSFORM.
Definition at line 1491 of file transform_convert_armature.cc.
References bone_children_clear_transflag(), BONE_SELECTED, BONE_TRANSFORM, bPose::chanbase, Bone::childbase, Object::data, ELEM, Bone::flag, LISTBASE_FOREACH, PBONE_VISIBLE, Object::pose, TFM_BONE_ENVELOPE_DIST, and TFM_BONESIZE.
Referenced by createTransPose(), gizmo_3d_foreach_selected(), and special_aftertrans_update__pose().
Definition at line 93 of file transform_convert_armature.cc.
References BIK_clear_data(), DEG_relations_tag_update(), and Object::pose.
Referenced by add_pose_transdata(), pose_grab_with_ik(), and pose_transform_mirror_update().
| TransConvertTypeInfo TransConvertType_EditArmature |
Definition at line 1745 of file transform_convert_armature.cc.
Referenced by convert_type_get(), and init_TransDataContainers().
| TransConvertTypeInfo TransConvertType_Pose |
Definition at line 1752 of file transform_convert_armature.cc.
Referenced by convert_type_get(), create_trans_data(), ElementResize(), and init_TransDataContainers().