mirror of
https://github.com/Relintai/broken_seals.git
synced 2024-11-13 20:47:19 +01:00
Added undo redo support for more actions in mdr ed.
This commit is contained in:
parent
6b56563056
commit
3337cfdc3c
@ -405,11 +405,15 @@ func enable_change_event(update : bool = true) -> void:
|
|||||||
|
|
||||||
func add_triangle() -> void:
|
func add_triangle() -> void:
|
||||||
if _mdr:
|
if _mdr:
|
||||||
|
var orig_arr = copy_arrays(_mdr.array)
|
||||||
MDRMeshUtils.add_triangle(_mdr)
|
MDRMeshUtils.add_triangle(_mdr)
|
||||||
|
add_mesh_change_undo_redo(orig_arr, _mdr.array, "Add Triangle")
|
||||||
|
|
||||||
func add_quad() -> void:
|
func add_quad() -> void:
|
||||||
if _mdr:
|
if _mdr:
|
||||||
|
var orig_arr = copy_arrays(_mdr.array)
|
||||||
MDRMeshUtils.add_quad(_mdr)
|
MDRMeshUtils.add_quad(_mdr)
|
||||||
|
add_mesh_change_undo_redo(orig_arr, _mdr.array, "Add Quad")
|
||||||
|
|
||||||
func is_verts_equal(v0 : Vector3, v1 : Vector3) -> bool:
|
func is_verts_equal(v0 : Vector3, v1 : Vector3) -> bool:
|
||||||
return is_equal_approx(v0.x, v1.x) && is_equal_approx(v0.y, v1.y) && is_equal_approx(v0.z, v1.z)
|
return is_equal_approx(v0.x, v1.x) && is_equal_approx(v0.y, v1.y) && is_equal_approx(v0.z, v1.z)
|
||||||
@ -584,7 +588,6 @@ func add_quad_to_edge(edge : int) -> void:
|
|||||||
ei1 = t
|
ei1 = t
|
||||||
|
|
||||||
MDRMeshUtils.append_quad_to_tri_edge(_mdr, _vertices[ei0], _vertices[ei1], _vertices[erefind])
|
MDRMeshUtils.append_quad_to_tri_edge(_mdr, _vertices[ei0], _vertices[ei1], _vertices[erefind])
|
||||||
|
|
||||||
|
|
||||||
func add_triangle_at() -> void:
|
func add_triangle_at() -> void:
|
||||||
if !_mdr:
|
if !_mdr:
|
||||||
@ -594,14 +597,15 @@ func add_triangle_at() -> void:
|
|||||||
#todo
|
#todo
|
||||||
pass
|
pass
|
||||||
elif selection_mode == SelectionMode.SELECTION_MODE_EDGE:
|
elif selection_mode == SelectionMode.SELECTION_MODE_EDGE:
|
||||||
_mdr.disconnect("changed", self, "on_mdr_changed")
|
disable_change_event()
|
||||||
|
var orig_arr = copy_arrays(_mdr.array)
|
||||||
|
|
||||||
for sp in _selected_points:
|
for sp in _selected_points:
|
||||||
add_triangle_to_edge(sp)
|
add_triangle_to_edge(sp)
|
||||||
|
|
||||||
_selected_points.resize(0)
|
_selected_points.resize(0)
|
||||||
_mdr.connect("changed", self, "on_mdr_changed")
|
add_mesh_change_undo_redo(orig_arr, _mdr.array, "Add Triangle At")
|
||||||
on_mdr_changed()
|
enable_change_event()
|
||||||
else:
|
else:
|
||||||
add_triangle()
|
add_triangle()
|
||||||
|
|
||||||
@ -613,21 +617,24 @@ func add_quad_at() -> void:
|
|||||||
#todo
|
#todo
|
||||||
pass
|
pass
|
||||||
elif selection_mode == SelectionMode.SELECTION_MODE_EDGE:
|
elif selection_mode == SelectionMode.SELECTION_MODE_EDGE:
|
||||||
_mdr.disconnect("changed", self, "on_mdr_changed")
|
disable_change_event()
|
||||||
|
var orig_arr = copy_arrays(_mdr.array)
|
||||||
|
|
||||||
for sp in _selected_points:
|
for sp in _selected_points:
|
||||||
add_quad_to_edge(sp)
|
add_quad_to_edge(sp)
|
||||||
|
|
||||||
_selected_points.resize(0)
|
_selected_points.resize(0)
|
||||||
_mdr.connect("changed", self, "on_mdr_changed")
|
add_mesh_change_undo_redo(orig_arr, _mdr.array, "Add Quad At")
|
||||||
on_mdr_changed()
|
enable_change_event()
|
||||||
else:
|
else:
|
||||||
add_triangle()
|
add_triangle()
|
||||||
|
|
||||||
func add_box() -> void:
|
func add_box() -> void:
|
||||||
if _mdr:
|
if _mdr:
|
||||||
|
var orig_arr = copy_arrays(_mdr.array)
|
||||||
MDRMeshUtils.add_box(_mdr)
|
MDRMeshUtils.add_box(_mdr)
|
||||||
|
add_mesh_change_undo_redo(orig_arr, _mdr.array, "Add Box")
|
||||||
|
|
||||||
func split():
|
func split():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -149,10 +149,8 @@ func forward_spatial_gui_input(index, camera, event):
|
|||||||
return false
|
return false
|
||||||
|
|
||||||
func add_box() -> void:
|
func add_box() -> void:
|
||||||
var mdr : MeshDataResource = get_mdr()
|
for g in active_gizmos:
|
||||||
|
g.add_box()
|
||||||
if mdr:
|
|
||||||
MDRMeshUtils.add_box(mdr)
|
|
||||||
|
|
||||||
func add_triangle() -> void:
|
func add_triangle() -> void:
|
||||||
for g in active_gizmos:
|
for g in active_gizmos:
|
||||||
|
Loading…
Reference in New Issue
Block a user