1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-08 12:40:44 +00:00

Add zoom controls to Sprite2DPlugin

This commit is contained in:
aXu-AP
2023-10-31 01:11:23 +02:00
parent 3e7f638d7b
commit 1ee4aa11b6
2 changed files with 131 additions and 13 deletions

View File

@@ -37,7 +37,10 @@
class AcceptDialog;
class ConfirmationDialog;
class EditorZoomWidget;
class MenuButton;
class Panel;
class ViewPanner;
class Sprite2DEditor : public Control {
GDCLASS(Sprite2DEditor, Control);
@@ -60,7 +63,7 @@ class Sprite2DEditor : public Control {
AcceptDialog *err_dialog = nullptr;
ConfirmationDialog *debug_uv_dialog = nullptr;
Control *debug_uv = nullptr;
Panel *debug_uv = nullptr;
Vector<Vector2> uv_lines;
Vector<Vector<Vector2>> outline_lines;
Vector<Vector<Vector2>> computed_outline_lines;
@@ -68,6 +71,13 @@ class Sprite2DEditor : public Control {
Vector<Vector2> computed_uv;
Vector<int> computed_indices;
HScrollBar *h_scroll = nullptr;
VScrollBar *v_scroll = nullptr;
EditorZoomWidget *zoom_widget = nullptr;
Ref<ViewPanner> panner;
Vector2 draw_offset;
real_t draw_zoom = 1.0;
SpinBox *simplification = nullptr;
SpinBox *grow_pixels = nullptr;
SpinBox *shrink_pixels = nullptr;
@@ -78,8 +88,13 @@ class Sprite2DEditor : public Control {
//void _create_uv_lines();
friend class Sprite2DEditorPlugin;
void _debug_uv_input(const Ref<InputEvent> &p_input);
void _debug_uv_draw();
void _popup_debug_uv_dialog();
void _center_view();
void _pan_callback(Vector2 p_scroll_vec, Ref<InputEvent> p_event);
void _zoom_callback(float p_zoom_factor, Vector2 p_origin, Ref<InputEvent> p_event);
void _update_zoom_and_pan(bool p_zoom_at_center);
void _update_mesh_data();
void _create_node();