mirror of
https://github.com/Relintai/broken_seals.git
synced 2025-04-09 05:21:49 +02:00
Implemented rotation for the uv editor.
This commit is contained in:
parent
1ff20f8238
commit
24d0e671ef
@ -72,14 +72,14 @@ func on_mirror_vertical_button_pressed() -> void:
|
|||||||
|
|
||||||
func on_rotate_left_button_button_pressed() -> void:
|
func on_rotate_left_button_button_pressed() -> void:
|
||||||
if selected_rect && is_instance_valid(selected_rect):
|
if selected_rect && is_instance_valid(selected_rect):
|
||||||
selected_rect.rotate_uvs(rotation_amount)
|
selected_rect.rotate_uvs(-rotation_amount)
|
||||||
|
|
||||||
func on_rotate_amount_spinbox_changed(val : float) -> void:
|
func on_rotate_amount_spinbox_changed(val : float) -> void:
|
||||||
rotation_amount = val
|
rotation_amount = val
|
||||||
|
|
||||||
func on_rotate_right_button_button_pressed() -> void:
|
func on_rotate_right_button_button_pressed() -> void:
|
||||||
if selected_rect && is_instance_valid(selected_rect):
|
if selected_rect && is_instance_valid(selected_rect):
|
||||||
selected_rect.rotate_uvs(-rotation_amount)
|
selected_rect.rotate_uvs(rotation_amount)
|
||||||
|
|
||||||
func set_plugin(plugin : EditorPlugin) -> void:
|
func set_plugin(plugin : EditorPlugin) -> void:
|
||||||
_plugin = plugin
|
_plugin = plugin
|
||||||
|
@ -23,8 +23,8 @@ var edited_resource_parent_size : Vector2 = Vector2()
|
|||||||
|
|
||||||
var _edited_resource_rect_border_color : Color = Color(0.8, 0.8, 0.8, 0.5)
|
var _edited_resource_rect_border_color : Color = Color(0.8, 0.8, 0.8, 0.5)
|
||||||
var _edited_resource_rect_color : Color = Color(0.5, 0.5, 0.5, 0.2)
|
var _edited_resource_rect_color : Color = Color(0.5, 0.5, 0.5, 0.2)
|
||||||
var _edited_resource_rect_selected_border_color : Color = Color(0.9, 0.9, 0.9, 0.5)
|
var _edited_resource_rect_selected_border_color : Color = Color(0.9, 0.9, 0.9, 0.8)
|
||||||
var _edited_resource_rect_selected_color : Color = Color(0.6, 0.6, 0.6, 0.2)
|
var _edited_resource_rect_selected_color : Color = Color(0.5, 0.5, 0.5, 0.4)
|
||||||
var _edited_resource_uv_mesh_color : Color = Color(1, 1, 1, 1)
|
var _edited_resource_uv_mesh_color : Color = Color(1, 1, 1, 1)
|
||||||
var _editor_rect_border_size : int = 2
|
var _editor_rect_border_size : int = 2
|
||||||
var _edited_resource_font_color : Color = Color(0, 0, 0, 1)
|
var _edited_resource_font_color : Color = Color(0, 0, 0, 1)
|
||||||
@ -97,7 +97,30 @@ func mirror_vertical() -> void:
|
|||||||
update()
|
update()
|
||||||
|
|
||||||
func rotate_uvs(amount : float) -> void:
|
func rotate_uvs(amount : float) -> void:
|
||||||
pass
|
var t : Transform2D = Transform2D(deg2rad(amount), Vector2())
|
||||||
|
|
||||||
|
var pia : PoolIntArray = PoolIntArray()
|
||||||
|
for index in _indices:
|
||||||
|
var found : bool = false
|
||||||
|
|
||||||
|
for i in pia:
|
||||||
|
if i == index:
|
||||||
|
found = true
|
||||||
|
break
|
||||||
|
|
||||||
|
if found:
|
||||||
|
continue
|
||||||
|
|
||||||
|
pia.append(index)
|
||||||
|
|
||||||
|
var uv : Vector2 = _uvs[index]
|
||||||
|
uv = t.xform(uv)
|
||||||
|
_uvs.set(index, uv)
|
||||||
|
|
||||||
|
|
||||||
|
re_normalize_uvs()
|
||||||
|
apply_uv()
|
||||||
|
update()
|
||||||
|
|
||||||
func refresh() -> void:
|
func refresh() -> void:
|
||||||
if !_mdr:
|
if !_mdr:
|
||||||
@ -171,7 +194,48 @@ func set_up_base_rect() -> void:
|
|||||||
_uv_max = vmax
|
_uv_max = vmax
|
||||||
|
|
||||||
normalize_uvs()
|
normalize_uvs()
|
||||||
|
|
||||||
|
func re_normalize_uvs() -> void:
|
||||||
|
if _uvs.size() == 0:
|
||||||
|
return
|
||||||
|
|
||||||
|
var vmin : Vector2 = _uvs[_indices[0]]
|
||||||
|
var vmax : Vector2 = vmin
|
||||||
|
for i in range(1, _indices.size()):
|
||||||
|
var uv : Vector2 = _uvs[_indices[i]]
|
||||||
|
|
||||||
|
if uv.x < vmin.x:
|
||||||
|
vmin.x = uv.x
|
||||||
|
|
||||||
|
if uv.x > vmax.x:
|
||||||
|
vmax.x = uv.x
|
||||||
|
|
||||||
|
if uv.y < vmin.y:
|
||||||
|
vmin.y = uv.y
|
||||||
|
|
||||||
|
if uv.y > vmax.y:
|
||||||
|
vmax.y = uv.y
|
||||||
|
|
||||||
|
var xmm : float = vmax.x - vmin.x
|
||||||
|
var ymm : float = vmax.y - vmin.y
|
||||||
|
|
||||||
|
if xmm == 0:
|
||||||
|
xmm = 0.0000001
|
||||||
|
|
||||||
|
if ymm == 0:
|
||||||
|
ymm = 0.0000001
|
||||||
|
|
||||||
|
for i in range(_uvs.size()):
|
||||||
|
var uv : Vector2 = _uvs[i]
|
||||||
|
|
||||||
|
uv.x -= vmin.x
|
||||||
|
uv.x /= xmm
|
||||||
|
|
||||||
|
uv.y -= vmin.y
|
||||||
|
uv.y /= ymm
|
||||||
|
|
||||||
|
_uvs[i] = uv
|
||||||
|
|
||||||
func normalize_uvs() -> void:
|
func normalize_uvs() -> void:
|
||||||
var xmm : float = _uv_max.x - _uv_min.x
|
var xmm : float = _uv_max.x - _uv_min.x
|
||||||
var ymm : float = _uv_max.y - _uv_min.y
|
var ymm : float = _uv_max.y - _uv_min.y
|
||||||
@ -193,7 +257,6 @@ func normalize_uvs() -> void:
|
|||||||
|
|
||||||
_uvs[i] = uv
|
_uvs[i] = uv
|
||||||
|
|
||||||
|
|
||||||
func apply_uv() -> void:
|
func apply_uv() -> void:
|
||||||
if !_mdr:
|
if !_mdr:
|
||||||
return
|
return
|
||||||
|
@ -109,7 +109,6 @@ margin_right = 305.0
|
|||||||
margin_bottom = 24.0
|
margin_bottom = 24.0
|
||||||
hint_tooltip = "Rotate amount in degrees."
|
hint_tooltip = "Rotate amount in degrees."
|
||||||
max_value = 360.0
|
max_value = 360.0
|
||||||
step = 0.0
|
|
||||||
value = 45.0
|
value = 45.0
|
||||||
allow_greater = true
|
allow_greater = true
|
||||||
allow_lesser = true
|
allow_lesser = true
|
||||||
|
Loading…
Reference in New Issue
Block a user