Merge pull request #63486 from TokageItLab/init-poses
This commit is contained in:
commit
af76fb4567
5 changed files with 46 additions and 19 deletions
|
|
@ -762,6 +762,20 @@ Vector3 Skeleton3D::get_bone_pose_scale(int p_bone) const {
|
|||
return bones[p_bone].pose_scale;
|
||||
}
|
||||
|
||||
void Skeleton3D::reset_bone_pose(int p_bone) {
|
||||
const int bone_size = bones.size();
|
||||
ERR_FAIL_INDEX(p_bone, bone_size);
|
||||
set_bone_pose_position(p_bone, bones[p_bone].rest.origin);
|
||||
set_bone_pose_rotation(p_bone, bones[p_bone].rest.basis.get_rotation_quaternion());
|
||||
set_bone_pose_scale(p_bone, bones[p_bone].rest.basis.get_scale());
|
||||
}
|
||||
|
||||
void Skeleton3D::reset_bone_poses() {
|
||||
for (int i = 0; i < bones.size(); i++) {
|
||||
reset_bone_pose(i);
|
||||
}
|
||||
}
|
||||
|
||||
Transform3D Skeleton3D::get_bone_pose(int p_bone) const {
|
||||
const int bone_size = bones.size();
|
||||
ERR_FAIL_INDEX_V(p_bone, bone_size, Transform3D());
|
||||
|
|
@ -1252,6 +1266,9 @@ void Skeleton3D::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("get_bone_pose_rotation", "bone_idx"), &Skeleton3D::get_bone_pose_rotation);
|
||||
ClassDB::bind_method(D_METHOD("get_bone_pose_scale", "bone_idx"), &Skeleton3D::get_bone_pose_scale);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("reset_bone_pose", "bone_idx"), &Skeleton3D::reset_bone_pose);
|
||||
ClassDB::bind_method(D_METHOD("reset_bone_poses"), &Skeleton3D::reset_bone_poses);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("is_bone_enabled", "bone_idx"), &Skeleton3D::is_bone_enabled);
|
||||
ClassDB::bind_method(D_METHOD("set_bone_enabled", "bone_idx", "enabled"), &Skeleton3D::set_bone_enabled, DEFVAL(true));
|
||||
|
||||
|
|
|
|||
|
|
@ -227,6 +227,9 @@ public:
|
|||
Quaternion get_bone_pose_rotation(int p_bone) const;
|
||||
Vector3 get_bone_pose_scale(int p_bone) const;
|
||||
|
||||
void reset_bone_pose(int p_bone);
|
||||
void reset_bone_poses();
|
||||
|
||||
void clear_bones_global_pose_override();
|
||||
Transform3D get_bone_global_pose_override(int p_bone) const;
|
||||
void set_bone_global_pose_override(int p_bone, const Transform3D &p_pose, real_t p_amount, bool p_persistent = false);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue