summaryrefslogtreecommitdiff
path: root/scene/animation
diff options
context:
space:
mode:
Diffstat (limited to 'scene/animation')
-rw-r--r--scene/animation/animation_cache.cpp6
-rw-r--r--scene/animation/animation_cache.h6
-rw-r--r--scene/animation/animation_player.cpp12
-rw-r--r--scene/animation/animation_player.h8
-rw-r--r--scene/animation/animation_tree.cpp6
-rw-r--r--scene/animation/animation_tree.h8
-rw-r--r--scene/animation/root_motion_view.h6
-rw-r--r--scene/animation/skeleton_ik.cpp116
-rw-r--r--scene/animation/skeleton_ik.h24
9 files changed, 96 insertions, 96 deletions
diff --git a/scene/animation/animation_cache.cpp b/scene/animation/animation_cache.cpp
index 9ed8155bdc..79a7c36e7f 100644
--- a/scene/animation/animation_cache.cpp
+++ b/scene/animation/animation_cache.cpp
@@ -94,19 +94,19 @@ void AnimationCache::_update_cache() {
ERR_CONTINUE_MSG(animation->track_get_type(i) == Animation::TYPE_TRANSFORM, "Transform tracks can't have a subpath '" + np + "'.");
}
- Spatial *sp = Object::cast_to<Spatial>(node);
+ Node3D *sp = Object::cast_to<Node3D>(node);
if (!sp) {
path_cache.push_back(Path());
- ERR_CONTINUE_MSG(!sp, "Transform track not of type Spatial '" + np + "'.");
+ ERR_CONTINUE_MSG(!sp, "Transform track not of type Node3D '" + np + "'.");
}
if (np.get_subname_count() == 1) {
StringName property = np.get_subname(0);
String ps = property;
- Skeleton *sk = Object::cast_to<Skeleton>(node);
+ Skeleton3D *sk = Object::cast_to<Skeleton3D>(node);
if (!sk) {
path_cache.push_back(Path());
diff --git a/scene/animation/animation_cache.h b/scene/animation/animation_cache.h
index e73b9e2498..20147f060b 100644
--- a/scene/animation/animation_cache.h
+++ b/scene/animation/animation_cache.h
@@ -31,7 +31,7 @@
#ifndef ANIMATION_CACHE_H
#define ANIMATION_CACHE_H
-#include "scene/3d/skeleton.h"
+#include "scene/3d/skeleton_3d.h"
#include "scene/resources/animation.h"
class AnimationCache : public Object {
@@ -42,9 +42,9 @@ class AnimationCache : public Object {
RES resource;
Object *object;
- Skeleton *skeleton; // haxor
+ Skeleton3D *skeleton; // haxor
Node *node;
- Spatial *spatial;
+ Node3D *spatial;
int bone_idx;
Vector<StringName> subpath;
diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp
index 587485669e..6c870682a6 100644
--- a/scene/animation/animation_player.cpp
+++ b/scene/animation/animation_player.cpp
@@ -44,7 +44,7 @@ void AnimatedValuesBackup::update_skeletons() {
for (int i = 0; i < entries.size(); i++) {
if (entries[i].bone_idx != -1) {
// 3D bone
- Object::cast_to<Skeleton>(entries[i].object)->notification(Skeleton::NOTIFICATION_UPDATE_SKELETON);
+ Object::cast_to<Skeleton3D>(entries[i].object)->notification(Skeleton3D::NOTIFICATION_UPDATE_SKELETON);
} else {
Bone2D *bone = Object::cast_to<Bone2D>(entries[i].object);
if (bone && bone->skeleton) {
@@ -252,9 +252,9 @@ void AnimationPlayer::_ensure_node_caches(AnimationData *p_anim) {
ObjectID id = resource.is_valid() ? resource->get_instance_id() : child->get_instance_id();
int bone_idx = -1;
- if (a->track_get_path(i).get_subname_count() == 1 && Object::cast_to<Skeleton>(child)) {
+ if (a->track_get_path(i).get_subname_count() == 1 && Object::cast_to<Skeleton3D>(child)) {
- Skeleton *sk = Object::cast_to<Skeleton>(child);
+ Skeleton3D *sk = Object::cast_to<Skeleton3D>(child);
bone_idx = sk->find_bone(a->track_get_path(i).get_subname(0));
if (bone_idx == -1) {
@@ -283,9 +283,9 @@ void AnimationPlayer::_ensure_node_caches(AnimationData *p_anim) {
// special cases and caches for transform tracks
// cache spatial
- p_anim->node_cache[i]->spatial = Object::cast_to<Spatial>(child);
+ p_anim->node_cache[i]->spatial = Object::cast_to<Node3D>(child);
// cache skeleton
- p_anim->node_cache[i]->skeleton = Object::cast_to<Skeleton>(child);
+ p_anim->node_cache[i]->skeleton = Object::cast_to<Skeleton3D>(child);
if (p_anim->node_cache[i]->skeleton) {
if (a->track_get_path(i).get_subname_count() == 1) {
StringName bone_name = a->track_get_path(i).get_subname(0);
@@ -1612,7 +1612,7 @@ void AnimationPlayer::restore_animated_values(const AnimatedValuesBackup &p_back
if (entry->bone_idx == -1) {
entry->object->set_indexed(entry->subpath, entry->value);
} else {
- Object::cast_to<Skeleton>(entry->object)->set_bone_pose(entry->bone_idx, entry->value);
+ Object::cast_to<Skeleton3D>(entry->object)->set_bone_pose(entry->bone_idx, entry->value);
}
}
}
diff --git a/scene/animation/animation_player.h b/scene/animation/animation_player.h
index 24f60363ed..32bed6f4d6 100644
--- a/scene/animation/animation_player.h
+++ b/scene/animation/animation_player.h
@@ -32,8 +32,8 @@
#define ANIMATION_PLAYER_H
#include "scene/2d/node_2d.h"
-#include "scene/3d/skeleton.h"
-#include "scene/3d/spatial.h"
+#include "scene/3d/node_3d.h"
+#include "scene/3d/skeleton_3d.h"
#include "scene/resources/animation.h"
#ifdef TOOLS_ENABLED
@@ -90,9 +90,9 @@ private:
uint32_t id;
RES resource;
Node *node;
- Spatial *spatial;
+ Node3D *spatial;
Node2D *node_2d;
- Skeleton *skeleton;
+ Skeleton3D *skeleton;
int bone_idx;
// accumulated transforms
diff --git a/scene/animation/animation_tree.cpp b/scene/animation/animation_tree.cpp
index 95afd74ee5..0e1089cc6a 100644
--- a/scene/animation/animation_tree.cpp
+++ b/scene/animation/animation_tree.cpp
@@ -605,7 +605,7 @@ bool AnimationTree::_update_caches(AnimationPlayer *player) {
} break;
case Animation::TYPE_TRANSFORM: {
- Spatial *spatial = Object::cast_to<Spatial>(child);
+ Node3D *spatial = Object::cast_to<Node3D>(child);
if (!spatial) {
ERR_PRINT("AnimationTree: '" + String(E->get()) + "', transform track does not point to spatial: '" + String(path) + "'");
@@ -618,9 +618,9 @@ bool AnimationTree::_update_caches(AnimationPlayer *player) {
track_xform->skeleton = NULL;
track_xform->bone_idx = -1;
- if (path.get_subname_count() == 1 && Object::cast_to<Skeleton>(spatial)) {
+ if (path.get_subname_count() == 1 && Object::cast_to<Skeleton3D>(spatial)) {
- Skeleton *sk = Object::cast_to<Skeleton>(spatial);
+ Skeleton3D *sk = Object::cast_to<Skeleton3D>(spatial);
int bone_idx = sk->find_bone(path.get_subname(0));
if (bone_idx != -1) {
diff --git a/scene/animation/animation_tree.h b/scene/animation/animation_tree.h
index 742942fcda..faf4333f1d 100644
--- a/scene/animation/animation_tree.h
+++ b/scene/animation/animation_tree.h
@@ -32,8 +32,8 @@
#define ANIMATION_GRAPH_PLAYER_H
#include "animation_player.h"
-#include "scene/3d/skeleton.h"
-#include "scene/3d/spatial.h"
+#include "scene/3d/node_3d.h"
+#include "scene/3d/skeleton_3d.h"
#include "scene/resources/animation.h"
class AnimationNodeBlendTree;
@@ -192,8 +192,8 @@ private:
};
struct TrackCacheTransform : public TrackCache {
- Spatial *spatial;
- Skeleton *skeleton;
+ Node3D *spatial;
+ Skeleton3D *skeleton;
int bone_idx;
Vector3 loc;
Quat rot;
diff --git a/scene/animation/root_motion_view.h b/scene/animation/root_motion_view.h
index 42950dde42..c8a755a854 100644
--- a/scene/animation/root_motion_view.h
+++ b/scene/animation/root_motion_view.h
@@ -31,10 +31,10 @@
#ifndef ROOT_MOTION_VIEW_H
#define ROOT_MOTION_VIEW_H
-#include "scene/3d/visual_instance.h"
+#include "scene/3d/visual_instance_3d.h"
-class RootMotionView : public VisualInstance {
- GDCLASS(RootMotionView, VisualInstance);
+class RootMotionView : public VisualInstance3D {
+ GDCLASS(RootMotionView, VisualInstance3D);
public:
RID immediate;
diff --git a/scene/animation/skeleton_ik.cpp b/scene/animation/skeleton_ik.cpp
index 5800b41ae6..71aa5e13b3 100644
--- a/scene/animation/skeleton_ik.cpp
+++ b/scene/animation/skeleton_ik.cpp
@@ -136,7 +136,7 @@ bool FabrikInverseKinematic::build_chain(Task *p_task, bool p_force_simple_chain
return true;
}
-void FabrikInverseKinematic::update_chain(const Skeleton *p_sk, ChainItem *p_chain_item) {
+void FabrikInverseKinematic::update_chain(const Skeleton3D *p_sk, ChainItem *p_chain_item) {
if (!p_chain_item)
return;
@@ -238,7 +238,7 @@ void FabrikInverseKinematic::solve_simple_forwards(Chain &r_chain, bool p_solve_
}
}
-FabrikInverseKinematic::Task *FabrikInverseKinematic::create_simple_task(Skeleton *p_sk, BoneId root_bone, BoneId tip_bone, const Transform &goal_transform) {
+FabrikInverseKinematic::Task *FabrikInverseKinematic::create_simple_task(Skeleton3D *p_sk, BoneId root_bone, BoneId tip_bone, const Transform &goal_transform) {
FabrikInverseKinematic::EndEffector ee;
ee.tip_bone = tip_bone;
@@ -332,7 +332,7 @@ void FabrikInverseKinematic::solve(Task *p_task, real_t blending_delta, bool ove
}
}
-void SkeletonIK::_validate_property(PropertyInfo &property) const {
+void SkeletonIK3D::_validate_property(PropertyInfo &property) const {
if (property.name == "root_bone" || property.name == "tip_bone") {
@@ -355,43 +355,43 @@ void SkeletonIK::_validate_property(PropertyInfo &property) const {
}
}
-void SkeletonIK::_bind_methods() {
+void SkeletonIK3D::_bind_methods() {
- ClassDB::bind_method(D_METHOD("set_root_bone", "root_bone"), &SkeletonIK::set_root_bone);
- ClassDB::bind_method(D_METHOD("get_root_bone"), &SkeletonIK::get_root_bone);
+ ClassDB::bind_method(D_METHOD("set_root_bone", "root_bone"), &SkeletonIK3D::set_root_bone);
+ ClassDB::bind_method(D_METHOD("get_root_bone"), &SkeletonIK3D::get_root_bone);
- ClassDB::bind_method(D_METHOD("set_tip_bone", "tip_bone"), &SkeletonIK::set_tip_bone);
- ClassDB::bind_method(D_METHOD("get_tip_bone"), &SkeletonIK::get_tip_bone);
+ ClassDB::bind_method(D_METHOD("set_tip_bone", "tip_bone"), &SkeletonIK3D::set_tip_bone);
+ ClassDB::bind_method(D_METHOD("get_tip_bone"), &SkeletonIK3D::get_tip_bone);
- ClassDB::bind_method(D_METHOD("set_interpolation", "interpolation"), &SkeletonIK::set_interpolation);
- ClassDB::bind_method(D_METHOD("get_interpolation"), &SkeletonIK::get_interpolation);
+ ClassDB::bind_method(D_METHOD("set_interpolation", "interpolation"), &SkeletonIK3D::set_interpolation);
+ ClassDB::bind_method(D_METHOD("get_interpolation"), &SkeletonIK3D::get_interpolation);
- ClassDB::bind_method(D_METHOD("set_target_transform", "target"), &SkeletonIK::set_target_transform);
- ClassDB::bind_method(D_METHOD("get_target_transform"), &SkeletonIK::get_target_transform);
+ ClassDB::bind_method(D_METHOD("set_target_transform", "target"), &SkeletonIK3D::set_target_transform);
+ ClassDB::bind_method(D_METHOD("get_target_transform"), &SkeletonIK3D::get_target_transform);
- ClassDB::bind_method(D_METHOD("set_target_node", "node"), &SkeletonIK::set_target_node);
- ClassDB::bind_method(D_METHOD("get_target_node"), &SkeletonIK::get_target_node);
+ ClassDB::bind_method(D_METHOD("set_target_node", "node"), &SkeletonIK3D::set_target_node);
+ ClassDB::bind_method(D_METHOD("get_target_node"), &SkeletonIK3D::get_target_node);
- ClassDB::bind_method(D_METHOD("set_override_tip_basis", "override"), &SkeletonIK::set_override_tip_basis);
- ClassDB::bind_method(D_METHOD("is_override_tip_basis"), &SkeletonIK::is_override_tip_basis);
+ ClassDB::bind_method(D_METHOD("set_override_tip_basis", "override"), &SkeletonIK3D::set_override_tip_basis);
+ ClassDB::bind_method(D_METHOD("is_override_tip_basis"), &SkeletonIK3D::is_override_tip_basis);
- ClassDB::bind_method(D_METHOD("set_use_magnet", "use"), &SkeletonIK::set_use_magnet);
- ClassDB::bind_method(D_METHOD("is_using_magnet"), &SkeletonIK::is_using_magnet);
+ ClassDB::bind_method(D_METHOD("set_use_magnet", "use"), &SkeletonIK3D::set_use_magnet);
+ ClassDB::bind_method(D_METHOD("is_using_magnet"), &SkeletonIK3D::is_using_magnet);
- ClassDB::bind_method(D_METHOD("set_magnet_position", "local_position"), &SkeletonIK::set_magnet_position);
- ClassDB::bind_method(D_METHOD("get_magnet_position"), &SkeletonIK::get_magnet_position);
+ ClassDB::bind_method(D_METHOD("set_magnet_position", "local_position"), &SkeletonIK3D::set_magnet_position);
+ ClassDB::bind_method(D_METHOD("get_magnet_position"), &SkeletonIK3D::get_magnet_position);
- ClassDB::bind_method(D_METHOD("get_parent_skeleton"), &SkeletonIK::get_parent_skeleton);
- ClassDB::bind_method(D_METHOD("is_running"), &SkeletonIK::is_running);
+ ClassDB::bind_method(D_METHOD("get_parent_skeleton"), &SkeletonIK3D::get_parent_skeleton);
+ ClassDB::bind_method(D_METHOD("is_running"), &SkeletonIK3D::is_running);
- ClassDB::bind_method(D_METHOD("set_min_distance", "min_distance"), &SkeletonIK::set_min_distance);
- ClassDB::bind_method(D_METHOD("get_min_distance"), &SkeletonIK::get_min_distance);
+ ClassDB::bind_method(D_METHOD("set_min_distance", "min_distance"), &SkeletonIK3D::set_min_distance);
+ ClassDB::bind_method(D_METHOD("get_min_distance"), &SkeletonIK3D::get_min_distance);
- ClassDB::bind_method(D_METHOD("set_max_iterations", "iterations"), &SkeletonIK::set_max_iterations);
- ClassDB::bind_method(D_METHOD("get_max_iterations"), &SkeletonIK::get_max_iterations);
+ ClassDB::bind_method(D_METHOD("set_max_iterations", "iterations"), &SkeletonIK3D::set_max_iterations);
+ ClassDB::bind_method(D_METHOD("get_max_iterations"), &SkeletonIK3D::get_max_iterations);
- ClassDB::bind_method(D_METHOD("start", "one_time"), &SkeletonIK::start, DEFVAL(false));
- ClassDB::bind_method(D_METHOD("stop"), &SkeletonIK::stop);
+ ClassDB::bind_method(D_METHOD("start", "one_time"), &SkeletonIK3D::start, DEFVAL(false));
+ ClassDB::bind_method(D_METHOD("stop"), &SkeletonIK3D::stop);
ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "root_bone"), "set_root_bone", "get_root_bone");
ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "tip_bone"), "set_tip_bone", "get_tip_bone");
@@ -405,10 +405,10 @@ void SkeletonIK::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::INT, "max_iterations"), "set_max_iterations", "get_max_iterations");
}
-void SkeletonIK::_notification(int p_what) {
+void SkeletonIK3D::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_ENTER_TREE: {
- skeleton = Object::cast_to<Skeleton>(get_parent());
+ skeleton = Object::cast_to<Skeleton3D>(get_parent());
set_process_priority(1);
reload_chain();
} break;
@@ -426,7 +426,7 @@ void SkeletonIK::_notification(int p_what) {
}
}
-SkeletonIK::SkeletonIK() :
+SkeletonIK3D::SkeletonIK3D() :
interpolation(1),
override_tip_basis(true),
use_magnet(false),
@@ -437,93 +437,93 @@ SkeletonIK::SkeletonIK() :
task(NULL) {
}
-SkeletonIK::~SkeletonIK() {
+SkeletonIK3D::~SkeletonIK3D() {
FabrikInverseKinematic::free_task(task);
task = NULL;
}
-void SkeletonIK::set_root_bone(const StringName &p_root_bone) {
+void SkeletonIK3D::set_root_bone(const StringName &p_root_bone) {
root_bone = p_root_bone;
reload_chain();
}
-StringName SkeletonIK::get_root_bone() const {
+StringName SkeletonIK3D::get_root_bone() const {
return root_bone;
}
-void SkeletonIK::set_tip_bone(const StringName &p_tip_bone) {
+void SkeletonIK3D::set_tip_bone(const StringName &p_tip_bone) {
tip_bone = p_tip_bone;
reload_chain();
}
-StringName SkeletonIK::get_tip_bone() const {
+StringName SkeletonIK3D::get_tip_bone() const {
return tip_bone;
}
-void SkeletonIK::set_interpolation(real_t p_interpolation) {
+void SkeletonIK3D::set_interpolation(real_t p_interpolation) {
interpolation = p_interpolation;
}
-real_t SkeletonIK::get_interpolation() const {
+real_t SkeletonIK3D::get_interpolation() const {
return interpolation;
}
-void SkeletonIK::set_target_transform(const Transform &p_target) {
+void SkeletonIK3D::set_target_transform(const Transform &p_target) {
target = p_target;
reload_goal();
}
-const Transform &SkeletonIK::get_target_transform() const {
+const Transform &SkeletonIK3D::get_target_transform() const {
return target;
}
-void SkeletonIK::set_target_node(const NodePath &p_node) {
+void SkeletonIK3D::set_target_node(const NodePath &p_node) {
target_node_path_override = p_node;
target_node_override = NULL;
reload_goal();
}
-NodePath SkeletonIK::get_target_node() {
+NodePath SkeletonIK3D::get_target_node() {
return target_node_path_override;
}
-void SkeletonIK::set_override_tip_basis(bool p_override) {
+void SkeletonIK3D::set_override_tip_basis(bool p_override) {
override_tip_basis = p_override;
}
-bool SkeletonIK::is_override_tip_basis() const {
+bool SkeletonIK3D::is_override_tip_basis() const {
return override_tip_basis;
}
-void SkeletonIK::set_use_magnet(bool p_use) {
+void SkeletonIK3D::set_use_magnet(bool p_use) {
use_magnet = p_use;
}
-bool SkeletonIK::is_using_magnet() const {
+bool SkeletonIK3D::is_using_magnet() const {
return use_magnet;
}
-void SkeletonIK::set_magnet_position(const Vector3 &p_local_position) {
+void SkeletonIK3D::set_magnet_position(const Vector3 &p_local_position) {
magnet_position = p_local_position;
}
-const Vector3 &SkeletonIK::get_magnet_position() const {
+const Vector3 &SkeletonIK3D::get_magnet_position() const {
return magnet_position;
}
-void SkeletonIK::set_min_distance(real_t p_min_distance) {
+void SkeletonIK3D::set_min_distance(real_t p_min_distance) {
min_distance = p_min_distance;
}
-void SkeletonIK::set_max_iterations(int p_iterations) {
+void SkeletonIK3D::set_max_iterations(int p_iterations) {
max_iterations = p_iterations;
}
-bool SkeletonIK::is_running() {
+bool SkeletonIK3D::is_running() {
return is_processing_internal();
}
-void SkeletonIK::start(bool p_one_time) {
+void SkeletonIK3D::start(bool p_one_time) {
if (p_one_time) {
set_process_internal(false);
_solve_chain();
@@ -532,14 +532,14 @@ void SkeletonIK::start(bool p_one_time) {
}
}
-void SkeletonIK::stop() {
+void SkeletonIK3D::stop() {
set_process_internal(false);
}
-Transform SkeletonIK::_get_target_transform() {
+Transform SkeletonIK3D::_get_target_transform() {
if (!target_node_override && !target_node_path_override.is_empty())
- target_node_override = Object::cast_to<Spatial>(get_node(target_node_path_override));
+ target_node_override = Object::cast_to<Node3D>(get_node(target_node_path_override));
if (target_node_override)
return target_node_override->get_global_transform();
@@ -547,7 +547,7 @@ Transform SkeletonIK::_get_target_transform() {
return target;
}
-void SkeletonIK::reload_chain() {
+void SkeletonIK3D::reload_chain() {
FabrikInverseKinematic::free_task(task);
task = NULL;
@@ -562,14 +562,14 @@ void SkeletonIK::reload_chain() {
}
}
-void SkeletonIK::reload_goal() {
+void SkeletonIK3D::reload_goal() {
if (!task)
return;
FabrikInverseKinematic::set_goal(task, _get_target_transform());
}
-void SkeletonIK::_solve_chain() {
+void SkeletonIK3D::_solve_chain() {
if (!task)
return;
FabrikInverseKinematic::solve(task, interpolation, override_tip_basis, use_magnet, magnet_position);
diff --git a/scene/animation/skeleton_ik.h b/scene/animation/skeleton_ik.h
index 02d5aba5ba..938c912065 100644
--- a/scene/animation/skeleton_ik.h
+++ b/scene/animation/skeleton_ik.h
@@ -38,7 +38,7 @@
*/
#include "core/math/transform.h"
-#include "scene/3d/skeleton.h"
+#include "scene/3d/skeleton_3d.h"
class FabrikInverseKinematic {
@@ -54,7 +54,7 @@ class FabrikInverseKinematic {
// Bone info
BoneId bone;
- PhysicalBone *pb;
+ PhysicalBone3D *pb;
real_t length;
/// Positions relative to root bone
@@ -100,7 +100,7 @@ class FabrikInverseKinematic {
public:
struct Task {
RID self;
- Skeleton *skeleton;
+ Skeleton3D *skeleton;
Chain chain;
@@ -125,7 +125,7 @@ private:
/// Init a chain that starts from the root to tip
static bool build_chain(Task *p_task, bool p_force_simple_chain = true);
- static void update_chain(const Skeleton *p_sk, ChainItem *p_chain_item);
+ static void update_chain(const Skeleton3D *p_sk, ChainItem *p_chain_item);
static void solve_simple(Task *p_task, bool p_solve_magnet);
/// Special solvers that solve only chains with one end effector
@@ -133,7 +133,7 @@ private:
static void solve_simple_forwards(Chain &r_chain, bool p_solve_magnet);
public:
- static Task *create_simple_task(Skeleton *p_sk, BoneId root_bone, BoneId tip_bone, const Transform &goal_transform);
+ static Task *create_simple_task(Skeleton3D *p_sk, BoneId root_bone, BoneId tip_bone, const Transform &goal_transform);
static void free_task(Task *p_task);
// The goal of chain should be always in local space
static void set_goal(Task *p_task, const Transform &p_goal);
@@ -141,8 +141,8 @@ public:
static void solve(Task *p_task, real_t blending_delta, bool override_tip_basis, bool p_use_magnet, const Vector3 &p_magnet_position);
};
-class SkeletonIK : public Node {
- GDCLASS(SkeletonIK, Node);
+class SkeletonIK3D : public Node {
+ GDCLASS(SkeletonIK3D, Node);
StringName root_bone;
StringName tip_bone;
@@ -156,8 +156,8 @@ class SkeletonIK : public Node {
real_t min_distance;
int max_iterations;
- Skeleton *skeleton;
- Spatial *target_node_override;
+ Skeleton3D *skeleton;
+ Node3D *target_node_override;
FabrikInverseKinematic::Task *task;
protected:
@@ -168,8 +168,8 @@ protected:
virtual void _notification(int p_what);
public:
- SkeletonIK();
- virtual ~SkeletonIK();
+ SkeletonIK3D();
+ virtual ~SkeletonIK3D();
void set_root_bone(const StringName &p_root_bone);
StringName get_root_bone() const;
@@ -201,7 +201,7 @@ public:
void set_max_iterations(int p_iterations);
int get_max_iterations() const { return max_iterations; }
- Skeleton *get_parent_skeleton() const { return skeleton; }
+ Skeleton3D *get_parent_skeleton() const { return skeleton; }
bool is_running();