summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Liebl <Bernhard.Liebl@gmx.org>2017-11-27 14:01:34 +0100
committerBernhard Liebl <Bernhard.Liebl@gmx.org>2017-11-27 14:01:34 +0100
commit91b8b9463520242183af6dd2c4f999ea714ebbd6 (patch)
treedb2257996346152f298e86ca58b538f93e695e11
parent17b4f43e0e0a16d27bd769cab854e2be5e26833f (diff)
add "add point" and "select point" handles to polygon 2d editor
-rw-r--r--editor/icons/icon_editor_handle_add.svg5
-rw-r--r--editor/plugins/abstract_polygon_2d_editor.cpp7
2 files changed, 8 insertions, 4 deletions
diff --git a/editor/icons/icon_editor_handle_add.svg b/editor/icons/icon_editor_handle_add.svg
new file mode 100644
index 0000000000..be61cd53f9
--- /dev/null
+++ b/editor/icons/icon_editor_handle_add.svg
@@ -0,0 +1,5 @@
+<svg width="10" height="10" version="1.1" viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">
+ <circle cx="5" cy="5" r="5" fill-opacity=".29412"/>
+ <circle cx="5" cy="5" r="4" fill="#474747"/>
+ <path d="m4 2v2h-2v2h2v2h2v-2h2v-2h-2v-2z" fill="#84ffb1"/>
+</svg>
diff --git a/editor/plugins/abstract_polygon_2d_editor.cpp b/editor/plugins/abstract_polygon_2d_editor.cpp
index 1c4569d117..cabdfa761d 100644
--- a/editor/plugins/abstract_polygon_2d_editor.cpp
+++ b/editor/plugins/abstract_polygon_2d_editor.cpp
@@ -497,8 +497,7 @@ void AbstractPolygon2DEditor::forward_draw_over_viewport(Control *p_overlay) {
Control *vpc = canvas_item_editor->get_viewport_control();
Transform2D xform = canvas_item_editor->get_canvas_transform() * _get_node()->get_global_transform();
- Ref<Texture> default_handle = get_icon("EditorHandle", "EditorIcons");
- Ref<Texture> selected_handle = get_icon("EditorHandleSelected", "EditorIcons");
+ const Ref<Texture> handle = get_icon("EditorHandle", "EditorIcons");
const Vertex active_point = get_active_point();
const int n_polygons = _get_polygon_count();
@@ -572,8 +571,8 @@ void AbstractPolygon2DEditor::forward_draw_over_viewport(Control *p_overlay) {
const Vector2 p = (vertex == edited_point) ? edited_point.pos : (points[i] + offset);
const Vector2 point = xform.xform(p);
- Ref<Texture> handle = vertex == active_point ? selected_handle : default_handle;
- vpc->draw_texture(handle, point - handle->get_size() * 0.5);
+ const Color modulate = vertex == active_point ? Color(0.5, 1, 2) : Color(1, 1, 1);
+ vpc->draw_texture(handle, point - handle->get_size() * 0.5, modulate);
}
}