mirror of
https://github.com/godotengine/godot.git
synced 2025-11-01 06:01:14 +00:00
Fixes snapping and replaces the _draw_canvas by forward_canvas_draw
This commit is contained in:
parent
6e960c7d6b
commit
fc02605b49
21 changed files with 118 additions and 164 deletions
|
|
@ -76,10 +76,7 @@ bool Path2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) {
|
|||
Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
|
||||
|
||||
Vector2 gpoint = mb->get_position();
|
||||
Vector2 cpoint =
|
||||
!mb->get_alt() ?
|
||||
canvas_item_editor->snap_point(xform.affine_inverse().xform(gpoint)) :
|
||||
node->get_global_transform().affine_inverse().xform(canvas_item_editor->snap_point(canvas_item_editor->get_canvas_transform().affine_inverse().xform(gpoint)));
|
||||
Vector2 cpoint = node->get_global_transform().affine_inverse().xform(canvas_item_editor->snap_point(canvas_item_editor->get_canvas_transform().affine_inverse().xform(mb->get_position())));
|
||||
|
||||
real_t grab_threshold = EDITOR_DEF("editors/poly_editor/point_grab_radius", 8);
|
||||
|
||||
|
|
@ -239,10 +236,7 @@ bool Path2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) {
|
|||
// Handle point/control movement.
|
||||
Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
|
||||
Vector2 gpoint = mm->get_position();
|
||||
Vector2 cpoint =
|
||||
!mm->get_alt() ?
|
||||
canvas_item_editor->snap_point(xform.affine_inverse().xform(gpoint)) :
|
||||
node->get_global_transform().affine_inverse().xform(canvas_item_editor->snap_point(canvas_item_editor->get_canvas_transform().affine_inverse().xform(gpoint)));
|
||||
Vector2 cpoint = node->get_global_transform().affine_inverse().xform(canvas_item_editor->snap_point(canvas_item_editor->get_canvas_transform().affine_inverse().xform(mm->get_position())));
|
||||
|
||||
Ref<Curve2D> curve = node->get_curve();
|
||||
|
||||
|
|
@ -274,7 +268,8 @@ bool Path2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) {
|
|||
|
||||
return false;
|
||||
}
|
||||
void Path2DEditor::_canvas_draw() {
|
||||
|
||||
void Path2DEditor::forward_draw_over_canvas(Control *p_canvas) {
|
||||
|
||||
if (!node)
|
||||
return;
|
||||
|
|
@ -329,16 +324,11 @@ void Path2DEditor::edit(Node *p_path2d) {
|
|||
if (p_path2d) {
|
||||
|
||||
node = Object::cast_to<Path2D>(p_path2d);
|
||||
if (!canvas_item_editor->get_viewport_control()->is_connected("draw", this, "_canvas_draw"))
|
||||
canvas_item_editor->get_viewport_control()->connect("draw", this, "_canvas_draw");
|
||||
if (!node->is_connected("visibility_changed", this, "_node_visibility_changed"))
|
||||
node->connect("visibility_changed", this, "_node_visibility_changed");
|
||||
|
||||
} else {
|
||||
|
||||
if (canvas_item_editor->get_viewport_control()->is_connected("draw", this, "_canvas_draw"))
|
||||
canvas_item_editor->get_viewport_control()->disconnect("draw", this, "_canvas_draw");
|
||||
|
||||
// node may have been deleted at this point
|
||||
if (node && node->is_connected("visibility_changed", this, "_node_visibility_changed"))
|
||||
node->disconnect("visibility_changed", this, "_node_visibility_changed");
|
||||
|
|
@ -349,7 +339,6 @@ void Path2DEditor::edit(Node *p_path2d) {
|
|||
void Path2DEditor::_bind_methods() {
|
||||
|
||||
//ClassDB::bind_method(D_METHOD("_menu_option"),&Path2DEditor::_menu_option);
|
||||
ClassDB::bind_method(D_METHOD("_canvas_draw"), &Path2DEditor::_canvas_draw);
|
||||
ClassDB::bind_method(D_METHOD("_node_visibility_changed"), &Path2DEditor::_node_visibility_changed);
|
||||
ClassDB::bind_method(D_METHOD("_mode_selected"), &Path2DEditor::_mode_selected);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue