mirror of
https://github.com/Relintai/broken_seals.git
synced 2024-11-13 20:47:19 +01:00
Added handle selection types to mdi ed's sidebar, and set up events for them.
This commit is contained in:
parent
0d45bd0f97
commit
af604f845e
@ -235,3 +235,12 @@ func on_visual_indicator_handle_toggled(on : bool):
|
||||
|
||||
func _on_select_all_pressed():
|
||||
_plugin.select_all()
|
||||
|
||||
func onhandle_selection_type_front_toggled(on : bool):
|
||||
_plugin.handle_selection_type_front()
|
||||
|
||||
func onhandle_selection_type_back_toggled(on : bool):
|
||||
_plugin.handle_selection_type_back()
|
||||
|
||||
func onhandle_selection_type_all_toggled(on : bool):
|
||||
_plugin.handle_selection_type_all()
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=8 format=2]
|
||||
[gd_scene load_steps=9 format=2]
|
||||
|
||||
[ext_resource path="res://addons/mesh_data_resource_editor/MDIEd.gd" type="Script" id=1]
|
||||
[ext_resource path="res://addons/mesh_data_resource_editor/button_groups/vertex_position_operation_bg.tres" type="ButtonGroup" id=2]
|
||||
@ -7,6 +7,7 @@
|
||||
[ext_resource path="res://addons/mesh_data_resource_editor/button_groups/edit_mode_button_group.tres" type="ButtonGroup" id=5]
|
||||
[ext_resource path="res://addons/mesh_data_resource_editor/uv_editor/UVEditorPopup.gd" type="Script" id=6]
|
||||
[ext_resource path="res://addons/mesh_data_resource_editor/button_groups/pivot_button_group.tres" type="ButtonGroup" id=7]
|
||||
[ext_resource path="res://addons/mesh_data_resource_editor/button_groups/handle_selection_typen_group.tres" type="ButtonGroup" id=8]
|
||||
|
||||
[node name="MDIEd" type="PanelContainer"]
|
||||
anchor_right = 1.0
|
||||
@ -205,10 +206,62 @@ margin_right = 998.0
|
||||
margin_bottom = 666.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="HBoxContainer4" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/VBoxContainer2"]
|
||||
[node name="HBoxContainer6" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/VBoxContainer2"]
|
||||
margin_right = 998.0
|
||||
margin_bottom = 20.0
|
||||
|
||||
[node name="Label4" type="Label" parent="VBoxContainer/ScrollContainer/VBoxContainer2/HBoxContainer6"]
|
||||
margin_right = 10.0
|
||||
margin_bottom = 20.0
|
||||
hint_tooltip = "Handle Selection type."
|
||||
mouse_filter = 0
|
||||
size_flags_vertical = 7
|
||||
text = "H"
|
||||
align = 1
|
||||
valign = 1
|
||||
|
||||
[node name="Front" type="Button" parent="VBoxContainer/ScrollContainer/VBoxContainer2/HBoxContainer6"]
|
||||
margin_left = 14.0
|
||||
margin_right = 339.0
|
||||
margin_bottom = 20.0
|
||||
rect_min_size = Vector2( 25, 20 )
|
||||
hint_tooltip = "
|
||||
"
|
||||
size_flags_horizontal = 3
|
||||
toggle_mode = true
|
||||
pressed = true
|
||||
group = ExtResource( 8 )
|
||||
text = "F"
|
||||
|
||||
[node name="Back" type="Button" parent="VBoxContainer/ScrollContainer/VBoxContainer2/HBoxContainer6"]
|
||||
margin_left = 343.0
|
||||
margin_right = 668.0
|
||||
margin_bottom = 20.0
|
||||
rect_min_size = Vector2( 25, 20 )
|
||||
hint_tooltip = "Only select handles that face away
|
||||
the camera."
|
||||
size_flags_horizontal = 3
|
||||
toggle_mode = true
|
||||
group = ExtResource( 8 )
|
||||
text = "B"
|
||||
|
||||
[node name="All" type="Button" parent="VBoxContainer/ScrollContainer/VBoxContainer2/HBoxContainer6"]
|
||||
margin_left = 672.0
|
||||
margin_right = 998.0
|
||||
margin_bottom = 20.0
|
||||
rect_min_size = Vector2( 25, 20 )
|
||||
hint_tooltip = "Ignore camera facing when selecting handles.
|
||||
"
|
||||
size_flags_horizontal = 3
|
||||
toggle_mode = true
|
||||
group = ExtResource( 8 )
|
||||
text = "A"
|
||||
|
||||
[node name="HBoxContainer4" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/VBoxContainer2"]
|
||||
margin_top = 24.0
|
||||
margin_right = 998.0
|
||||
margin_bottom = 44.0
|
||||
|
||||
[node name="Label4" type="Label" parent="VBoxContainer/ScrollContainer/VBoxContainer2/HBoxContainer4"]
|
||||
margin_right = 8.0
|
||||
margin_bottom = 20.0
|
||||
@ -254,9 +307,9 @@ group = ExtResource( 7 )
|
||||
text = "w"
|
||||
|
||||
[node name="HBoxContainer5" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/VBoxContainer2"]
|
||||
margin_top = 24.0
|
||||
margin_top = 48.0
|
||||
margin_right = 998.0
|
||||
margin_bottom = 44.0
|
||||
margin_bottom = 68.0
|
||||
|
||||
[node name="Label4" type="Label" parent="VBoxContainer/ScrollContainer/VBoxContainer2/HBoxContainer5"]
|
||||
margin_right = 8.0
|
||||
@ -302,23 +355,23 @@ pressed = true
|
||||
text = "H"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="VBoxContainer/ScrollContainer/VBoxContainer2"]
|
||||
margin_top = 48.0
|
||||
margin_top = 72.0
|
||||
margin_right = 998.0
|
||||
margin_bottom = 52.0
|
||||
margin_bottom = 76.0
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Select All" type="Button" parent="VBoxContainer/ScrollContainer/VBoxContainer2"]
|
||||
margin_top = 56.0
|
||||
margin_top = 80.0
|
||||
margin_right = 998.0
|
||||
margin_bottom = 76.0
|
||||
margin_bottom = 100.0
|
||||
text = "Select All"
|
||||
|
||||
[node name="VertexOps" type="VBoxContainer" parent="VBoxContainer/ScrollContainer/VBoxContainer2"]
|
||||
margin_top = 80.0
|
||||
margin_top = 104.0
|
||||
margin_right = 998.0
|
||||
margin_bottom = 184.0
|
||||
margin_bottom = 208.0
|
||||
|
||||
[node name="OperationsLabel" type="Label" parent="VBoxContainer/ScrollContainer/VBoxContainer2/VertexOps"]
|
||||
margin_right = 998.0
|
||||
@ -480,14 +533,14 @@ margin_bottom = 20.0
|
||||
text = "Delete"
|
||||
|
||||
[node name="HSeparator4" type="HSeparator" parent="VBoxContainer/ScrollContainer/VBoxContainer2"]
|
||||
margin_top = 188.0
|
||||
margin_top = 212.0
|
||||
margin_right = 998.0
|
||||
margin_bottom = 192.0
|
||||
margin_bottom = 216.0
|
||||
|
||||
[node name="Operations" type="VBoxContainer" parent="VBoxContainer/ScrollContainer/VBoxContainer2"]
|
||||
margin_top = 196.0
|
||||
margin_top = 220.0
|
||||
margin_right = 998.0
|
||||
margin_bottom = 560.0
|
||||
margin_bottom = 584.0
|
||||
|
||||
[node name="OperationsLabel" type="Label" parent="VBoxContainer/ScrollContainer/VBoxContainer2/Operations"]
|
||||
margin_right = 998.0
|
||||
@ -581,14 +634,14 @@ margin_bottom = 346.0
|
||||
text = "Unwrap"
|
||||
|
||||
[node name="HSeparator3" type="HSeparator" parent="VBoxContainer/ScrollContainer/VBoxContainer2"]
|
||||
margin_top = 564.0
|
||||
margin_top = 588.0
|
||||
margin_right = 998.0
|
||||
margin_bottom = 568.0
|
||||
margin_bottom = 592.0
|
||||
|
||||
[node name="Add" type="VBoxContainer" parent="VBoxContainer/ScrollContainer/VBoxContainer2"]
|
||||
margin_top = 572.0
|
||||
margin_top = 596.0
|
||||
margin_right = 998.0
|
||||
margin_bottom = 658.0
|
||||
margin_bottom = 682.0
|
||||
|
||||
[node name="AddLabel" type="Label" parent="VBoxContainer/ScrollContainer/VBoxContainer2/Add"]
|
||||
margin_right = 998.0
|
||||
@ -622,9 +675,9 @@ size_flags_horizontal = 3
|
||||
text = "Quad"
|
||||
|
||||
[node name="HSeparator2" type="HSeparator" parent="VBoxContainer/ScrollContainer/VBoxContainer2"]
|
||||
margin_top = 662.0
|
||||
margin_top = 686.0
|
||||
margin_right = 998.0
|
||||
margin_bottom = 666.0
|
||||
margin_bottom = 690.0
|
||||
|
||||
[node name="Popups" type="Control" parent="."]
|
||||
margin_left = 7.0
|
||||
@ -668,6 +721,9 @@ size_flags_vertical = 3
|
||||
[connection signal="toggled" from="VBoxContainer/Actions/Actions/VBoxContainer2/HBoxContainer3/Edge" to="VBoxContainer/ScrollContainer/VBoxContainer2/EdgeOps" method="set_visible"]
|
||||
[connection signal="toggled" from="VBoxContainer/Actions/Actions/VBoxContainer2/HBoxContainer3/Face" to="." method="on_selection_mode_face_toggled"]
|
||||
[connection signal="toggled" from="VBoxContainer/Actions/Actions/VBoxContainer2/HBoxContainer3/Face" to="VBoxContainer/ScrollContainer/VBoxContainer2/FaceOps" method="set_visible"]
|
||||
[connection signal="toggled" from="VBoxContainer/ScrollContainer/VBoxContainer2/HBoxContainer6/Front" to="." method="onhandle_selection_type_front_toggled"]
|
||||
[connection signal="toggled" from="VBoxContainer/ScrollContainer/VBoxContainer2/HBoxContainer6/Back" to="." method="onhandle_selection_type_back_toggled"]
|
||||
[connection signal="toggled" from="VBoxContainer/ScrollContainer/VBoxContainer2/HBoxContainer6/All" to="." method="onhandle_selection_type_all_toggled"]
|
||||
[connection signal="toggled" from="VBoxContainer/ScrollContainer/VBoxContainer2/HBoxContainer4/Average" to="." method="on_pivot_average_toggled"]
|
||||
[connection signal="toggled" from="VBoxContainer/ScrollContainer/VBoxContainer2/HBoxContainer4/MDIOrigin" to="." method="on_pivot_mdi_origin_toggled"]
|
||||
[connection signal="toggled" from="VBoxContainer/ScrollContainer/VBoxContainer2/HBoxContainer4/WorldOrigin" to="." method="on_pivot_world_origin_toggled"]
|
||||
|
@ -30,12 +30,19 @@ enum PivotTypes {
|
||||
PIVOT_TYPE_WORLD_ORIGIN = 2,
|
||||
}
|
||||
|
||||
enum HandleSelectionType {
|
||||
HANDLE_SELECTION_TYPE_FRONT = 0,
|
||||
HANDLE_SELECTION_TYPE_BACK = 1,
|
||||
HANDLE_SELECTION_TYPE_ALL = 2,
|
||||
}
|
||||
|
||||
var gizmo_size = 3.0
|
||||
|
||||
var edit_mode : int = EditMode.EDIT_MODE_TRANSLATE
|
||||
var pivot_type : int = PivotTypes.PIVOT_TYPE_AVERAGED
|
||||
var axis_constraint : int = AxisConstraint.X | AxisConstraint.Y | AxisConstraint.Z
|
||||
var selection_mode : int = SelectionMode.SELECTION_MODE_VERTEX
|
||||
var handle_selection_type : int = HandleSelectionType.HANDLE_SELECTION_TYPE_FRONT
|
||||
var visual_indicator_outline : bool = true
|
||||
var visual_indicator_seam : bool= true
|
||||
var visual_indicator_handle : bool = true
|
||||
@ -482,7 +489,7 @@ func recalculate_handle_points() -> void:
|
||||
arr.resize(ArrayMesh.ARRAY_MAX)
|
||||
arr[ArrayMesh.ARRAY_VERTEX] = mdr_arr[ArrayMesh.ARRAY_VERTEX]
|
||||
arr[ArrayMesh.ARRAY_INDEX] = mdr_arr[ArrayMesh.ARRAY_INDEX]
|
||||
|
||||
|
||||
if selection_mode == SelectionMode.SELECTION_MODE_VERTEX:
|
||||
var merged_arrays : Array = MeshUtils.merge_mesh_array(arr)
|
||||
_handle_points = merged_arrays[ArrayMesh.ARRAY_VERTEX]
|
||||
@ -1352,6 +1359,7 @@ func transfer_state_from(other) -> void:
|
||||
pivot_type = other.pivot_type
|
||||
axis_constraint = other.axis_constraint
|
||||
selection_mode = other.selection_mode
|
||||
handle_selection_type = other.handle_selection_type
|
||||
|
||||
visual_indicator_outline = other.visual_indicator_outline
|
||||
visual_indicator_seam = other.visual_indicator_seam
|
||||
@ -1368,3 +1376,13 @@ func visual_indicator_seam_set(on : bool):
|
||||
func visual_indicator_handle_set(on : bool):
|
||||
visual_indicator_handle = on
|
||||
redraw()
|
||||
|
||||
func handle_selection_type_front():
|
||||
handle_selection_type = HandleSelectionType.HANDLE_SELECTION_TYPE_FRONT
|
||||
|
||||
func handle_selection_type_back():
|
||||
handle_selection_type = HandleSelectionType.HANDLE_SELECTION_TYPE_BACK
|
||||
|
||||
func handle_selection_type_all():
|
||||
handle_selection_type = HandleSelectionType.HANDLE_SELECTION_TYPE_ALL
|
||||
|
||||
|
@ -0,0 +1,3 @@
|
||||
[gd_resource type="ButtonGroup" format=2]
|
||||
|
||||
[resource]
|
@ -260,4 +260,15 @@ func visual_indicator_handle_set(on : bool):
|
||||
func select_all():
|
||||
if current_mesh_data_instance && current_mesh_data_instance.gizmo:
|
||||
current_mesh_data_instance.gizmo.select_all()
|
||||
|
||||
|
||||
func handle_selection_type_front():
|
||||
if current_mesh_data_instance && current_mesh_data_instance.gizmo:
|
||||
current_mesh_data_instance.gizmo.handle_selection_type_front()
|
||||
|
||||
func handle_selection_type_back():
|
||||
if current_mesh_data_instance && current_mesh_data_instance.gizmo:
|
||||
current_mesh_data_instance.gizmo.handle_selection_type_back()
|
||||
|
||||
func handle_selection_type_all():
|
||||
if current_mesh_data_instance && current_mesh_data_instance.gizmo:
|
||||
current_mesh_data_instance.gizmo.handle_selection_type_all()
|
||||
|
Loading…
Reference in New Issue
Block a user