|
@@ -1157,9 +1157,21 @@ Vector3 Node3D::to_global(Vector3 p_local) const {
|
|
|
return get_global_transform().xform(p_local);
|
|
|
}
|
|
|
|
|
|
+void Node3D::_physics_interpolated_changed() {
|
|
|
+ ERR_THREAD_GUARD;
|
|
|
+ data.notify_transform = data.notify_transform_requested || (data.notify_transform_when_fti_off && !is_physics_interpolated_and_enabled());
|
|
|
+}
|
|
|
+
|
|
|
+void Node3D::_set_notify_transform_when_fti_off(bool p_enable) {
|
|
|
+ ERR_THREAD_GUARD;
|
|
|
+ data.notify_transform_when_fti_off = p_enable;
|
|
|
+ data.notify_transform = data.notify_transform_requested || (data.notify_transform_when_fti_off && !is_physics_interpolated_and_enabled());
|
|
|
+}
|
|
|
+
|
|
|
void Node3D::set_notify_transform(bool p_enabled) {
|
|
|
ERR_THREAD_GUARD;
|
|
|
- data.notify_transform = p_enabled;
|
|
|
+ data.notify_transform_requested = p_enabled;
|
|
|
+ data.notify_transform = data.notify_transform_requested || (data.notify_transform_when_fti_off && !is_physics_interpolated_and_enabled());
|
|
|
}
|
|
|
|
|
|
bool Node3D::is_transform_notification_enabled() const {
|
|
@@ -1441,6 +1453,8 @@ Node3D::Node3D() :
|
|
|
data.ignore_notification = false;
|
|
|
data.notify_local_transform = false;
|
|
|
data.notify_transform = false;
|
|
|
+ data.notify_transform_requested = false;
|
|
|
+ data.notify_transform_when_fti_off = false;
|
|
|
|
|
|
data.visible = true;
|
|
|
data.disable_scale = false;
|