Merge pull request #52758 from Calinou/add-listener-gizmo-icon-3.x

This commit is contained in:
Rémi Verschelde 2021-09-17 12:07:58 +02:00 committed by GitHub
commit 6ba5d36853
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 37 additions and 32 deletions

View file

@ -6245,6 +6245,7 @@ void SpatialEditor::_register_all_gizmos() {
add_gizmo_plugin(Ref<CameraSpatialGizmoPlugin>(memnew(CameraSpatialGizmoPlugin)));
add_gizmo_plugin(Ref<LightSpatialGizmoPlugin>(memnew(LightSpatialGizmoPlugin)));
add_gizmo_plugin(Ref<AudioStreamPlayer3DSpatialGizmoPlugin>(memnew(AudioStreamPlayer3DSpatialGizmoPlugin)));
add_gizmo_plugin(Ref<ListenerSpatialGizmoPlugin>(memnew(ListenerSpatialGizmoPlugin)));
add_gizmo_plugin(Ref<MeshInstanceSpatialGizmoPlugin>(memnew(MeshInstanceSpatialGizmoPlugin)));
add_gizmo_plugin(Ref<SoftBodySpatialGizmoPlugin>(memnew(SoftBodySpatialGizmoPlugin)));
add_gizmo_plugin(Ref<Sprite3DSpatialGizmoPlugin>(memnew(Sprite3DSpatialGizmoPlugin)));

View file

@ -1226,6 +1226,29 @@ void AudioStreamPlayer3DSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo)
//////
ListenerSpatialGizmoPlugin::ListenerSpatialGizmoPlugin() {
create_icon_material("listener_icon", SpatialEditor::get_singleton()->get_icon("GizmoListener", "EditorIcons"));
}
bool ListenerSpatialGizmoPlugin::has_gizmo(Spatial *p_spatial) {
return Object::cast_to<Listener>(p_spatial) != nullptr;
}
String ListenerSpatialGizmoPlugin::get_name() const {
return "Listener";
}
int ListenerSpatialGizmoPlugin::get_priority() const {
return -1;
}
void ListenerSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) {
const Ref<Material> icon = get_material("listener_icon", p_gizmo);
p_gizmo->add_unscaled_billboard(icon, 0.05);
}
//////
CameraSpatialGizmoPlugin::CameraSpatialGizmoPlugin() {
Color gizmo_color = EDITOR_DEF("editors/3d_gizmos/gizmo_colors/camera", Color(0.8, 0.4, 0.8));

View file

@ -70,6 +70,19 @@ public:
AudioStreamPlayer3DSpatialGizmoPlugin();
};
class ListenerSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
GDCLASS(ListenerSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
public:
bool has_gizmo(Spatial *p_spatial);
String get_name() const;
int get_priority() const;
void redraw(EditorSpatialGizmo *p_gizmo);
ListenerSpatialGizmoPlugin();
};
class CameraSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
GDCLASS(CameraSpatialGizmoPlugin, EditorSpatialGizmoPlugin);

View file

@ -258,10 +258,6 @@ bool Camera::is_current() const {
}
}
bool Camera::_can_gizmo_scale() const {
return false;
}
Vector3 Camera::project_ray_normal(const Point2 &p_pos) const {
Vector3 ray = project_local_ray_normal(p_pos);
return get_camera_transform().basis.xform(ray).normalized();

View file

@ -82,8 +82,6 @@ private:
Ref<Environment> environment;
virtual bool _can_gizmo_scale() const;
//void _camera_make_current(Node *p_camera);
friend class Viewport;
void _update_audio_listener_state();

View file

@ -34,10 +34,6 @@
#include "core/project_settings.h"
#include "scene/resources/surface_tool.h"
bool Light::_can_gizmo_scale() const {
return false;
}
void Light::set_param(Param p_param, float p_value) {
ERR_FAIL_INDEX(p_param, PARAM_MAX);
param[p_param] = p_value;

View file

@ -84,8 +84,6 @@ private:
protected:
RID light;
virtual bool _can_gizmo_scale() const;
static void _bind_methods();
void _notification(int p_what);
virtual void _validate_property(PropertyInfo &property) const;

View file

@ -140,16 +140,6 @@ bool Listener::is_current() const {
return false;
}
bool Listener::_can_gizmo_scale() const {
return false;
}
RES Listener::_get_gizmo_geometry() const {
Ref<ArrayMesh> mesh = memnew(ArrayMesh);
return mesh;
}
void Listener::_bind_methods() {
ClassDB::bind_method(D_METHOD("make_current"), &Listener::make_current);
ClassDB::bind_method(D_METHOD("clear_current"), &Listener::clear_current);
@ -161,7 +151,6 @@ Listener::Listener() {
current = false;
force_change = false;
set_notify_transform(true);
//active=false;
}
Listener::~Listener() {

View file

@ -43,9 +43,6 @@ private:
RID scenario_id;
virtual bool _can_gizmo_scale() const;
virtual RES _get_gizmo_geometry() const;
friend class Viewport;
void _update_audio_listener_state();

View file

@ -86,9 +86,6 @@ SceneStringNames::SceneStringNames() {
update = StaticCString::create("update");
updated = StaticCString::create("updated");
_get_gizmo_geometry = StaticCString::create("_get_gizmo_geometry");
_can_gizmo_scale = StaticCString::create("_can_gizmo_scale");
_physics_process = StaticCString::create("_physics_process");
_process = StaticCString::create("_process");

View file

@ -105,9 +105,6 @@ public:
StringName _body_inout;
StringName _area_inout;
StringName _get_gizmo_geometry;
StringName _can_gizmo_scale;
StringName _physics_process;
StringName _process;
StringName _enter_world;