Better 2D Snapping
Consolidated duplicate snapping functions into CanvasItemEditor. Allow non-square grids. Add grid origin offsets. Allow seperate toggling of grid display. Add rotation snapping. Add offset snapping.
This commit is contained in:
@@ -42,17 +42,6 @@ void NavigationPolygonEditor::_create_nav() {
|
||||
undo_redo->commit_action();
|
||||
}
|
||||
|
||||
Vector2 NavigationPolygonEditor::snap_point(const Vector2& p_point) const {
|
||||
|
||||
if (canvas_item_editor->is_snap_active()) {
|
||||
|
||||
return p_point.snapped(Vector2(1,1)*canvas_item_editor->get_snap());
|
||||
|
||||
} else {
|
||||
return p_point;
|
||||
}
|
||||
}
|
||||
|
||||
void NavigationPolygonEditor::_menu_option(int p_option) {
|
||||
|
||||
switch(p_option) {
|
||||
@@ -122,7 +111,7 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) {
|
||||
|
||||
Vector2 gpoint = Point2(mb.x,mb.y);
|
||||
Vector2 cpoint = canvas_item_editor->get_canvas_transform().affine_inverse().xform(gpoint);
|
||||
cpoint=snap_point(cpoint);
|
||||
cpoint=canvas_item_editor->snap_point(cpoint);
|
||||
cpoint = node->get_global_transform().affine_inverse().xform(cpoint);
|
||||
|
||||
|
||||
@@ -370,7 +359,7 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) {
|
||||
|
||||
Vector2 gpoint = Point2(mm.x,mm.y);
|
||||
Vector2 cpoint = canvas_item_editor->get_canvas_transform().affine_inverse().xform(gpoint);
|
||||
cpoint=snap_point(cpoint);
|
||||
cpoint=canvas_item_editor->snap_point(cpoint);
|
||||
edited_point_pos = node->get_global_transform().affine_inverse().xform(cpoint);
|
||||
|
||||
canvas_item_editor->get_viewport_control()->update();
|
||||
|
||||
Reference in New Issue
Block a user