Blender  V3.3
Classes | Typedefs | Functions | Variables
transform_convert_armature.c File Reference
#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.h"
#include "BLI_string.h"
#include "BKE_action.h"
#include "BKE_animsys.h"
#include "BKE_armature.h"
#include "BKE_constraint.h"
#include "BKE_context.h"
#include "BKE_main.h"
#include "BKE_report.h"
#include "BIK_api.h"
#include "ED_armature.h"
#include "ED_keyframing.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
#include "RNA_access.h"
#include "RNA_prototypes.h"
#include "transform.h"
#include "transform_snap.h"
#include "transform_convert.h"

Go to the source code of this file.

Classes

struct  BoneInitData
 
struct  PoseInitData_Mirror
 

Typedefs

typedef struct BoneInitData BoneInitData
 

Functions

static bool motionpath_need_update_pose (Scene *scene, Object *ob)
 
static void autokeyframe_pose (bContext *C, Scene *scene, Object *ob, int tmode, short targetless_ik)
 
static bConstraintadd_temporary_ik_constraint (bPoseChannel *pchan, bKinematicConstraint *targetless_con)
 
static void update_deg_with_temporary_ik (Main *bmain, Object *ob)
 
Pose Auto-IK
static bKinematicConstrainthas_targetless_ik (bPoseChannel *pchan)
 
static short pose_grab_with_ik_add (bPoseChannel *pchan)
 
static short pose_grab_with_ik_children (bPose *pose, Bone *bone)
 
static short pose_grab_with_ik (Main *bmain, Object *ob)
 
Convert Armature
static void add_pose_transdata (TransInfo *t, bPoseChannel *pchan, Object *ob, TransData *td)
 
static void createTransPose (bContext *UNUSED(C), TransInfo *t)
 
static void createTransArmatureVerts (bContext *UNUSED(C), TransInfo *t)
 
Recalc Data Edit Armature
static void restoreBones (TransDataContainer *tc)
 
static void recalcData_edit_armature (TransInfo *t)
 
Recalc Data Pose
static void pose_transform_mirror_update (TransInfo *t, TransDataContainer *tc, Object *ob)
 
static void pose_mirror_info_restore (const PoseInitData_Mirror *pid)
 
static void restoreMirrorPoseBones (TransDataContainer *tc)
 
static void recalcData_pose (TransInfo *t)
 
Special After Transform Pose
static void bone_children_clear_transflag (int mode, short around, ListBase *lb)
 
void transform_convert_pose_transflags_update (Object *ob, const int mode, const short around)
 
static short apply_targetless_ik (Object *ob)
 
static void pose_grab_with_ik_clear (Main *bmain, Object *ob)
 
static void special_aftertrans_update__pose (bContext *C, TransInfo *t)
 

Variables

TransConvertTypeInfo TransConvertType_EditArmature
 
TransConvertTypeInfo TransConvertType_Pose
 

Pose Mirror

typedef struct PoseInitData_Mirror PoseInitData_Mirror
 
static void pose_mirror_info_init (PoseInitData_Mirror *pid, bPoseChannel *pchan, bPoseChannel *pchan_orig, bool is_mirror_relative)
 

Typedef Documentation

◆ BoneInitData

typedef struct BoneInitData BoneInitData

◆ PoseInitData_Mirror

Function Documentation

◆ add_pose_transdata()

static void add_pose_transdata ( TransInfo t,
bPoseChannel pchan,
Object ob,
TransData td 
)
static

Definition at line 537 of file transform_convert_armature.c.

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(), copy_m3_m3(), copy_m3_m4(), copy_qt_qt(), copy_v3_v3(), CTX_data_main(), data, 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, TransData::ival, TransDataExtension::l_smtx, bPoseChannel::loc, BoneParentTransform::loc_mat, TransData::mtx, mul_m3_m3m3(), mul_m3_series, normalize_m3(), NULL, TransData::ob, Object::obmat, bPoseChannel::parent, bPoseChannel::pose_head, bPoseChannel::pose_mat, bPoseChannel::pose_tail, TransData::protectflag, bPoseChannel::protectflag, PSEUDOINVERSE_EPSILON, pseudoinverse_m3_m3(), TransDataExtension::quat, bPoseChannel::quat, TransDataExtension::r_mtx, TransDataExtension::r_smtx, TransDataExtension::rot, ROT_MODE_AXISANGLE, TransDataExtension::rotAngle, bPoseChannel::rotAngle, TransDataExtension::rotAxis, bPoseChannel::rotAxis, bPoseChannel::rotmode, TransDataExtension::rotOrder, BoneParentTransform::rotscale_mat, TransDataExtension::size, bPoseChannel::size, TransData::smtx, t, 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, TransData::val, and Bone::xwidth.

Referenced by createTransPose().

◆ add_temporary_ik_constraint()

static bConstraint* add_temporary_ik_constraint ( bPoseChannel pchan,
bKinematicConstraint targetless_con 
)
static

◆ apply_targetless_ik()

static short apply_targetless_ik ( Object ob)
static

◆ autokeyframe_pose()

static void autokeyframe_pose ( bContext C,
Scene scene,
Object ob,
int  tmode,
short  targetless_ik 
)
static

◆ bone_children_clear_transflag()

static void bone_children_clear_transflag ( int  mode,
short  around,
ListBase lb 
)
static

◆ createTransArmatureVerts()

static void createTransArmatureVerts ( bContext UNUSEDC,
TransInfo t 
)
static

◆ createTransPose()

static void createTransPose ( bContext UNUSEDC,
TransInfo t 
)
static

◆ has_targetless_ik()

static bKinematicConstraint* has_targetless_ik ( bPoseChannel pchan)
static

◆ motionpath_need_update_pose()

static bool motionpath_need_update_pose ( Scene scene,
Object ob 
)
static

◆ pose_grab_with_ik()

static short pose_grab_with_ik ( Main bmain,
Object ob 
)
static

◆ pose_grab_with_ik_add()

static short pose_grab_with_ik_add ( bPoseChannel pchan)
static

◆ pose_grab_with_ik_children()

static short pose_grab_with_ik_children ( bPose pose,
Bone bone 
)
static

◆ pose_grab_with_ik_clear()

static void pose_grab_with_ik_clear ( Main bmain,
Object ob 
)
static

◆ pose_mirror_info_init()

static void pose_mirror_info_init ( PoseInitData_Mirror pid,
bPoseChannel pchan,
bPoseChannel pchan_orig,
bool  is_mirror_relative 
)
static

◆ pose_mirror_info_restore()

static void pose_mirror_info_restore ( const PoseInitData_Mirror pid)
static

◆ pose_transform_mirror_update()

static void pose_transform_mirror_update ( TransInfo t,
TransDataContainer tc,
Object ob 
)
static

◆ recalcData_edit_armature()

static void recalcData_edit_armature ( TransInfo t)
static

◆ recalcData_pose()

static void recalcData_pose ( TransInfo t)
static

◆ restoreBones()

static void restoreBones ( TransDataContainer tc)
static

◆ restoreMirrorPoseBones()

static void restoreMirrorPoseBones ( TransDataContainer tc)
static

◆ special_aftertrans_update__pose()

static void special_aftertrans_update__pose ( bContext C,
TransInfo t 
)
static

◆ transform_convert_pose_transflags_update()

void transform_convert_pose_transflags_update ( Object ob,
int  mode,
short  around 
)

◆ update_deg_with_temporary_ik()

static void update_deg_with_temporary_ik ( Main bmain,
Object ob 
)
static

Variable Documentation

◆ TransConvertType_EditArmature

TransConvertTypeInfo TransConvertType_EditArmature
Initial value:
= {
}
static void createTransArmatureVerts(bContext *UNUSED(C), TransInfo *t)
static void recalcData_edit_armature(TransInfo *t)

Definition at line 1772 of file transform_convert_armature.c.

Referenced by convert_type_get(), and init_TransDataContainers().

◆ TransConvertType_Pose

TransConvertTypeInfo TransConvertType_Pose
Initial value:
= {
0,
}
static void createTransPose(bContext *UNUSED(C), TransInfo *t)
static void recalcData_pose(TransInfo *t)
static void special_aftertrans_update__pose(bContext *C, TransInfo *t)

Definition at line 1779 of file transform_convert_armature.c.

Referenced by convert_type_get(), createTransData(), ElementResize(), and init_TransDataContainers().