Minor code improvements in Node3D. Refactor Node3D::show/hide/set_visible to a shared implementation.
This commit is contained in:
parent
b74968c2ca
commit
805155e2f6
2 changed files with 26 additions and 45 deletions
|
@ -172,6 +172,7 @@ void Node3D::_notification(int p_what) {
|
||||||
if (get_script_instance()) {
|
if (get_script_instance()) {
|
||||||
get_script_instance()->call(SceneStringNames::get_singleton()->_enter_world);
|
get_script_instance()->call(SceneStringNames::get_singleton()->_enter_world);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
if (Engine::get_singleton()->is_editor_hint() && get_tree()->is_node_being_edited(this)) {
|
if (Engine::get_singleton()->is_editor_hint() && get_tree()->is_node_being_edited(this)) {
|
||||||
get_tree()->call_group_flags(0, SceneStringNames::get_singleton()->_spatial_editor_group, SceneStringNames::get_singleton()->_request_gizmo, this);
|
get_tree()->call_group_flags(0, SceneStringNames::get_singleton()->_spatial_editor_group, SceneStringNames::get_singleton()->_request_gizmo, this);
|
||||||
|
@ -186,7 +187,6 @@ void Node3D::_notification(int p_what) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
case NOTIFICATION_EXIT_WORLD: {
|
case NOTIFICATION_EXIT_WORLD: {
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
|
@ -456,7 +456,6 @@ void Node3D::clear_subgizmo_selection() {
|
||||||
|
|
||||||
void Node3D::add_gizmo(Ref<Node3DGizmo> p_gizmo) {
|
void Node3D::add_gizmo(Ref<Node3DGizmo> p_gizmo) {
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
|
|
||||||
if (data.gizmos_disabled || p_gizmo.is_null()) {
|
if (data.gizmos_disabled || p_gizmo.is_null()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -474,7 +473,6 @@ void Node3D::add_gizmo(Ref<Node3DGizmo> p_gizmo) {
|
||||||
|
|
||||||
void Node3D::remove_gizmo(Ref<Node3DGizmo> p_gizmo) {
|
void Node3D::remove_gizmo(Ref<Node3DGizmo> p_gizmo) {
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
|
|
||||||
int idx = data.gizmos.find(p_gizmo);
|
int idx = data.gizmos.find(p_gizmo);
|
||||||
if (idx != -1) {
|
if (idx != -1) {
|
||||||
p_gizmo->free();
|
p_gizmo->free();
|
||||||
|
@ -506,10 +504,8 @@ Array Node3D::get_gizmos_bind() const {
|
||||||
|
|
||||||
Vector<Ref<Node3DGizmo>> Node3D::get_gizmos() const {
|
Vector<Ref<Node3DGizmo>> Node3D::get_gizmos() const {
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
|
|
||||||
return data.gizmos;
|
return data.gizmos;
|
||||||
#else
|
#else
|
||||||
|
|
||||||
return Vector<Ref<Node3DGizmo>>();
|
return Vector<Ref<Node3DGizmo>>();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -561,7 +557,6 @@ void Node3D::set_as_top_level(bool p_enabled) {
|
||||||
|
|
||||||
data.top_level = p_enabled;
|
data.top_level = p_enabled;
|
||||||
data.top_level_active = p_enabled;
|
data.top_level_active = p_enabled;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
data.top_level = p_enabled;
|
data.top_level = p_enabled;
|
||||||
}
|
}
|
||||||
|
@ -581,6 +576,7 @@ Ref<World3D> Node3D::get_world_3d() const {
|
||||||
void Node3D::_propagate_visibility_changed() {
|
void Node3D::_propagate_visibility_changed() {
|
||||||
notification(NOTIFICATION_VISIBILITY_CHANGED);
|
notification(NOTIFICATION_VISIBILITY_CHANGED);
|
||||||
emit_signal(SceneStringNames::get_singleton()->visibility_changed);
|
emit_signal(SceneStringNames::get_singleton()->visibility_changed);
|
||||||
|
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
if (!data.gizmos.is_empty()) {
|
if (!data.gizmos.is_empty()) {
|
||||||
data.gizmos_dirty = true;
|
data.gizmos_dirty = true;
|
||||||
|
@ -597,33 +593,30 @@ void Node3D::_propagate_visibility_changed() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Node3D::show() {
|
void Node3D::show() {
|
||||||
if (data.visible) {
|
set_visible(true);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
data.visible = true;
|
|
||||||
|
|
||||||
if (!is_inside_tree()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
_propagate_visibility_changed();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Node3D::hide() {
|
void Node3D::hide() {
|
||||||
if (!data.visible) {
|
set_visible(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Node3D::set_visible(bool p_visible) {
|
||||||
|
if (data.visible == p_visible) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
data.visible = false;
|
data.visible = p_visible;
|
||||||
|
|
||||||
if (!is_inside_tree()) {
|
if (!is_inside_tree()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_propagate_visibility_changed();
|
_propagate_visibility_changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Node3D::is_visible() const {
|
||||||
|
return data.visible;
|
||||||
|
}
|
||||||
|
|
||||||
bool Node3D::is_visible_in_tree() const {
|
bool Node3D::is_visible_in_tree() const {
|
||||||
const Node3D *s = this;
|
const Node3D *s = this;
|
||||||
|
|
||||||
|
@ -637,18 +630,6 @@ bool Node3D::is_visible_in_tree() const {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Node3D::set_visible(bool p_visible) {
|
|
||||||
if (p_visible) {
|
|
||||||
show();
|
|
||||||
} else {
|
|
||||||
hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Node3D::is_visible() const {
|
|
||||||
return data.visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Node3D::rotate_object_local(const Vector3 &p_axis, real_t p_angle) {
|
void Node3D::rotate_object_local(const Vector3 &p_axis, real_t p_angle) {
|
||||||
Transform3D t = get_transform();
|
Transform3D t = get_transform();
|
||||||
t.basis.rotate_local(p_axis, p_angle);
|
t.basis.rotate_local(p_axis, p_angle);
|
||||||
|
@ -757,16 +738,16 @@ Vector3 Node3D::to_global(Vector3 p_local) const {
|
||||||
return get_global_transform().xform(p_local);
|
return get_global_transform().xform(p_local);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Node3D::set_notify_transform(bool p_enable) {
|
void Node3D::set_notify_transform(bool p_enabled) {
|
||||||
data.notify_transform = p_enable;
|
data.notify_transform = p_enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Node3D::is_transform_notification_enabled() const {
|
bool Node3D::is_transform_notification_enabled() const {
|
||||||
return data.notify_transform;
|
return data.notify_transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Node3D::set_notify_local_transform(bool p_enable) {
|
void Node3D::set_notify_local_transform(bool p_enabled) {
|
||||||
data.notify_local_transform = p_enable;
|
data.notify_local_transform = p_enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Node3D::is_local_transform_notification_enabled() const {
|
bool Node3D::is_local_transform_notification_enabled() const {
|
||||||
|
|
|
@ -182,12 +182,6 @@ public:
|
||||||
virtual bool is_transform_gizmo_visible() const { return data.transform_gizmo_visible; };
|
virtual bool is_transform_gizmo_visible() const { return data.transform_gizmo_visible; };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void set_as_top_level(bool p_enabled);
|
|
||||||
bool is_set_as_top_level() const;
|
|
||||||
|
|
||||||
void set_disable_scale(bool p_enabled);
|
|
||||||
bool is_scale_disabled() const;
|
|
||||||
|
|
||||||
void set_disable_gizmos(bool p_enabled);
|
void set_disable_gizmos(bool p_enabled);
|
||||||
void update_gizmos();
|
void update_gizmos();
|
||||||
void set_subgizmo_selection(Ref<Node3DGizmo> p_gizmo, int p_id, Transform3D p_transform = Transform3D());
|
void set_subgizmo_selection(Ref<Node3DGizmo> p_gizmo, int p_id, Transform3D p_transform = Transform3D());
|
||||||
|
@ -198,6 +192,12 @@ public:
|
||||||
void remove_gizmo(Ref<Node3DGizmo> p_gizmo);
|
void remove_gizmo(Ref<Node3DGizmo> p_gizmo);
|
||||||
void clear_gizmos();
|
void clear_gizmos();
|
||||||
|
|
||||||
|
void set_as_top_level(bool p_enabled);
|
||||||
|
bool is_set_as_top_level() const;
|
||||||
|
|
||||||
|
void set_disable_scale(bool p_enabled);
|
||||||
|
bool is_scale_disabled() const;
|
||||||
|
|
||||||
_FORCE_INLINE_ bool is_inside_world() const { return data.inside_world; }
|
_FORCE_INLINE_ bool is_inside_world() const { return data.inside_world; }
|
||||||
|
|
||||||
Transform3D get_relative_transform(const Node *p_parent) const;
|
Transform3D get_relative_transform(const Node *p_parent) const;
|
||||||
|
@ -223,19 +223,19 @@ public:
|
||||||
Vector3 to_local(Vector3 p_global) const;
|
Vector3 to_local(Vector3 p_global) const;
|
||||||
Vector3 to_global(Vector3 p_local) const;
|
Vector3 to_global(Vector3 p_local) const;
|
||||||
|
|
||||||
void set_notify_transform(bool p_enable);
|
void set_notify_transform(bool p_enabled);
|
||||||
bool is_transform_notification_enabled() const;
|
bool is_transform_notification_enabled() const;
|
||||||
|
|
||||||
void set_notify_local_transform(bool p_enable);
|
void set_notify_local_transform(bool p_enabled);
|
||||||
bool is_local_transform_notification_enabled() const;
|
bool is_local_transform_notification_enabled() const;
|
||||||
|
|
||||||
void orthonormalize();
|
void orthonormalize();
|
||||||
void set_identity();
|
void set_identity();
|
||||||
|
|
||||||
void set_visible(bool p_visible);
|
void set_visible(bool p_visible);
|
||||||
bool is_visible() const;
|
|
||||||
void show();
|
void show();
|
||||||
void hide();
|
void hide();
|
||||||
|
bool is_visible() const;
|
||||||
bool is_visible_in_tree() const;
|
bool is_visible_in_tree() const;
|
||||||
|
|
||||||
void force_update_transform();
|
void force_update_transform();
|
||||||
|
|
Loading…
Reference in a new issue