summaryrefslogtreecommitdiffstats
path: root/scene/animation/skeleton_ik.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/animation/skeleton_ik.cpp')
-rw-r--r--scene/animation/skeleton_ik.cpp116
1 files changed, 58 insertions, 58 deletions
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);