summaryrefslogtreecommitdiff
path: root/scene/3d
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-01-07 13:20:56 +0100
committerRémi Verschelde <rverschelde@gmail.com>2023-01-07 13:20:56 +0100
commit3579d7a9f74e3f1eda88826897feb4b866d75ec9 (patch)
tree40afa501f94493b7df9dc41c6d7b3ed738f0b15d /scene/3d
parent447aa5b0259ab18139d86297dfccb8dd68ef2e30 (diff)
parent2bdd7e9ea0383c06fe6a83445469e41222477abc (diff)
Merge pull request #36301 from KoBeWi/daddy_node
Add reparent methods to Node
Diffstat (limited to 'scene/3d')
-rw-r--r--scene/3d/node_3d.cpp8
-rw-r--r--scene/3d/node_3d.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/scene/3d/node_3d.cpp b/scene/3d/node_3d.cpp
index a0382b73dc..66e8831d15 100644
--- a/scene/3d/node_3d.cpp
+++ b/scene/3d/node_3d.cpp
@@ -623,6 +623,14 @@ void Node3D::set_disable_gizmos(bool p_enabled) {
#endif
}
+void Node3D::reparent(Node *p_parent, bool p_keep_global_transform) {
+ Transform3D temp = get_global_transform();
+ Node::reparent(p_parent);
+ if (p_keep_global_transform) {
+ set_global_transform(temp);
+ }
+}
+
void Node3D::set_disable_scale(bool p_enabled) {
data.disable_scale = p_enabled;
}
diff --git a/scene/3d/node_3d.h b/scene/3d/node_3d.h
index 0901ab331b..98bcab5fd4 100644
--- a/scene/3d/node_3d.h
+++ b/scene/3d/node_3d.h
@@ -206,6 +206,7 @@ public:
virtual void set_transform_gizmo_visible(bool p_enabled) { data.transform_gizmo_visible = p_enabled; };
virtual bool is_transform_gizmo_visible() const { return data.transform_gizmo_visible; };
#endif
+ virtual void reparent(Node *p_parent, bool p_keep_global_transform = true) override;
void set_disable_gizmos(bool p_enabled);
void update_gizmos();