Clean-up/change some Skeleton3D API

This commit is contained in:
Silc Renew 2022-08-30 22:48:06 +09:00
parent ac053bb72d
commit 28b11e216a
3 changed files with 15 additions and 13 deletions

View file

@ -315,9 +315,7 @@ void Skeleton3D::_notification(int p_what) {
rs->skeleton_bone_set_transform(skeleton, i, bonesptr[bone_index].pose_global * skin->get_bind_pose(i));
}
}
#ifdef TOOLS_ENABLED
emit_signal(SceneStringNames::get_singleton()->pose_updated);
#endif // TOOLS_ENABLED
} break;
#ifndef _3D_DISABLED
@ -603,18 +601,25 @@ void Skeleton3D::unparent_bone_and_rest(int p_bone) {
int Skeleton3D::get_bone_parent(int p_bone) const {
const int bone_size = bones.size();
ERR_FAIL_INDEX_V(p_bone, bone_size, -1);
if (process_order_dirty) {
const_cast<Skeleton3D *>(this)->_update_process_order();
}
return bones[p_bone].parent;
}
Vector<int> Skeleton3D::get_bone_children(int p_bone) {
Vector<int> Skeleton3D::get_bone_children(int p_bone) const {
const int bone_size = bones.size();
ERR_FAIL_INDEX_V(p_bone, bone_size, Vector<int>());
if (process_order_dirty) {
const_cast<Skeleton3D *>(this)->_update_process_order();
}
return bones[p_bone].child_bones;
}
Vector<int> Skeleton3D::get_parentless_bones() {
_update_process_order();
Vector<int> Skeleton3D::get_parentless_bones() const {
if (process_order_dirty) {
const_cast<Skeleton3D *>(this)->_update_process_order();
}
return parentless_bones;
}

View file

@ -191,11 +191,8 @@ public:
void unparent_bone_and_rest(int p_bone);
Vector<int> get_bone_children(int p_bone);
void set_bone_children(int p_bone, Vector<int> p_children);
void add_bone_child(int p_bone, int p_child);
void remove_bone_child(int p_bone, int p_child);
Vector<int> get_parentless_bones();
Vector<int> get_bone_children(int p_bone) const;
Vector<int> get_parentless_bones() const;
int get_bone_count() const;