1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-08 03:19:49 +00:00
Pixelorama/src/UI/PerspectiveEditor/PerspectiveEditor.gd

78 lines
2.6 KiB
GDScript3
Raw Normal View History

Added the Perspective editor (#806) * Added Perspective Editor * removed unintended changes * Removed unintended changes * removed un-intended changes * Delete Axes.tscn * Delete Axis.gd * Removed MouseGuides from editor I will add them separately * Added MouseGuides * Some changes * Fixed some things * added mouse guide * make MouseGuides remember last setting * don't move if dialog is open * Dont move tracker guides if dialog is open * UI improvement to editor * Update VanishingPoint.gd * UI Improvement * Minor Color Improvements * fixed a bug This was causing a crash * Some UI Changes * Improve UI some more * fix typo * Added Undo/Redo and improved UI * Formatting * formatting * formatting * formatting * Fix Definition out of order * Fix Definition out of order * formatting * formatting * fix Duplicate error * Fix some things * Some UI Changes * Some code refinement * Removed un-needed lines * Some code refinement * Some more UI Changes * Changes, Changes and Changes * Delete LineButton.gd * Delete LineButton.tscn * Delete PerspectiveEditor.gd * Delete PerspectiveEditor.tscn * Delete PointCollapseContainer.gd * Delete PerspectiveLine.tscn * Delete PerspectiveLine.gd * Changed boundary separators to ColorRects * make the guide update more frequently * make default color have full alpha * Dim the boundaries based on luminance * typo * Formatting * Formatting * formatting i forgot to do * Delete VanishingPoint.gd * Delete VanishingPoint.tscn * Fixed rouge collapsible container --------- Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2023-02-12 13:20:53 +00:00
extends Control
var axes: Node2D
var do_pool = [] # A pool that stores data of points removed by undo
var delete_pool = [] # A pool that containg deleted data and their index
var vanishing_point_res := preload("res://src/UI/PerspectiveEditor/VanishingPoint.tscn")
var tracker_disabled := false
Added the Perspective editor (#806) * Added Perspective Editor * removed unintended changes * Removed unintended changes * removed un-intended changes * Delete Axes.tscn * Delete Axis.gd * Removed MouseGuides from editor I will add them separately * Added MouseGuides * Some changes * Fixed some things * added mouse guide * make MouseGuides remember last setting * don't move if dialog is open * Dont move tracker guides if dialog is open * UI improvement to editor * Update VanishingPoint.gd * UI Improvement * Minor Color Improvements * fixed a bug This was causing a crash * Some UI Changes * Improve UI some more * fix typo * Added Undo/Redo and improved UI * Formatting * formatting * formatting * formatting * Fix Definition out of order * Fix Definition out of order * formatting * formatting * fix Duplicate error * Fix some things * Some UI Changes * Some code refinement * Removed un-needed lines * Some code refinement * Some more UI Changes * Changes, Changes and Changes * Delete LineButton.gd * Delete LineButton.tscn * Delete PerspectiveEditor.gd * Delete PerspectiveEditor.tscn * Delete PointCollapseContainer.gd * Delete PerspectiveLine.tscn * Delete PerspectiveLine.gd * Changed boundary separators to ColorRects * make the guide update more frequently * make default color have full alpha * Dim the boundaries based on luminance * typo * Formatting * Formatting * formatting i forgot to do * Delete VanishingPoint.gd * Delete VanishingPoint.tscn * Fixed rouge collapsible container --------- Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2023-02-12 13:20:53 +00:00
onready var vanishing_point_container = $"%VanishingPointContainer"
func _on_AddPoint_pressed() -> void:
do_pool.clear() # Reset (clears Redo history of vanishing points)
Added the Perspective editor (#806) * Added Perspective Editor * removed unintended changes * Removed unintended changes * removed un-intended changes * Delete Axes.tscn * Delete Axis.gd * Removed MouseGuides from editor I will add them separately * Added MouseGuides * Some changes * Fixed some things * added mouse guide * make MouseGuides remember last setting * don't move if dialog is open * Dont move tracker guides if dialog is open * UI improvement to editor * Update VanishingPoint.gd * UI Improvement * Minor Color Improvements * fixed a bug This was causing a crash * Some UI Changes * Improve UI some more * fix typo * Added Undo/Redo and improved UI * Formatting * formatting * formatting * formatting * Fix Definition out of order * Fix Definition out of order * formatting * formatting * fix Duplicate error * Fix some things * Some UI Changes * Some code refinement * Removed un-needed lines * Some code refinement * Some more UI Changes * Changes, Changes and Changes * Delete LineButton.gd * Delete LineButton.tscn * Delete PerspectiveEditor.gd * Delete PerspectiveEditor.tscn * Delete PointCollapseContainer.gd * Delete PerspectiveLine.tscn * Delete PerspectiveLine.gd * Changed boundary separators to ColorRects * make the guide update more frequently * make default color have full alpha * Dim the boundaries based on luminance * typo * Formatting * Formatting * formatting i forgot to do * Delete VanishingPoint.gd * Delete VanishingPoint.tscn * Fixed rouge collapsible container --------- Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2023-02-12 13:20:53 +00:00
var project = Global.current_project
project.undos += 1
project.undo_redo.create_action("Add Vanishing Point")
project.undo_redo.add_do_method(self, "add_vanishing_point", true)
project.undo_redo.add_undo_method(self, "undo_add_vanishing_point")
project.undo_redo.commit_action()
func _on_TrackerLines_toggled(button_pressed):
for point in vanishing_point_container.get_children():
tracker_disabled = !button_pressed
Added the Perspective editor (#806) * Added Perspective Editor * removed unintended changes * Removed unintended changes * removed un-intended changes * Delete Axes.tscn * Delete Axis.gd * Removed MouseGuides from editor I will add them separately * Added MouseGuides * Some changes * Fixed some things * added mouse guide * make MouseGuides remember last setting * don't move if dialog is open * Dont move tracker guides if dialog is open * UI improvement to editor * Update VanishingPoint.gd * UI Improvement * Minor Color Improvements * fixed a bug This was causing a crash * Some UI Changes * Improve UI some more * fix typo * Added Undo/Redo and improved UI * Formatting * formatting * formatting * formatting * Fix Definition out of order * Fix Definition out of order * formatting * formatting * fix Duplicate error * Fix some things * Some UI Changes * Some code refinement * Removed un-needed lines * Some code refinement * Some more UI Changes * Changes, Changes and Changes * Delete LineButton.gd * Delete LineButton.tscn * Delete PerspectiveEditor.gd * Delete PerspectiveEditor.tscn * Delete PointCollapseContainer.gd * Delete PerspectiveLine.tscn * Delete PerspectiveLine.gd * Changed boundary separators to ColorRects * make the guide update more frequently * make default color have full alpha * Dim the boundaries based on luminance * typo * Formatting * Formatting * formatting i forgot to do * Delete VanishingPoint.gd * Delete VanishingPoint.tscn * Fixed rouge collapsible container --------- Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2023-02-12 13:20:53 +00:00
func add_vanishing_point(is_redo := false):
var vanishing_point := vanishing_point_res.instance()
vanishing_point_container.add_child(vanishing_point)
if is_redo and !do_pool.empty():
# if it's a redo then initialize it with the redo data
Added the Perspective editor (#806) * Added Perspective Editor * removed unintended changes * Removed unintended changes * removed un-intended changes * Delete Axes.tscn * Delete Axis.gd * Removed MouseGuides from editor I will add them separately * Added MouseGuides * Some changes * Fixed some things * added mouse guide * make MouseGuides remember last setting * don't move if dialog is open * Dont move tracker guides if dialog is open * UI improvement to editor * Update VanishingPoint.gd * UI Improvement * Minor Color Improvements * fixed a bug This was causing a crash * Some UI Changes * Improve UI some more * fix typo * Added Undo/Redo and improved UI * Formatting * formatting * formatting * formatting * Fix Definition out of order * Fix Definition out of order * formatting * formatting * fix Duplicate error * Fix some things * Some UI Changes * Some code refinement * Removed un-needed lines * Some code refinement * Some more UI Changes * Changes, Changes and Changes * Delete LineButton.gd * Delete LineButton.tscn * Delete PerspectiveEditor.gd * Delete PerspectiveEditor.tscn * Delete PointCollapseContainer.gd * Delete PerspectiveLine.tscn * Delete PerspectiveLine.gd * Changed boundary separators to ColorRects * make the guide update more frequently * make default color have full alpha * Dim the boundaries based on luminance * typo * Formatting * Formatting * formatting i forgot to do * Delete VanishingPoint.gd * Delete VanishingPoint.tscn * Fixed rouge collapsible container --------- Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2023-02-12 13:20:53 +00:00
vanishing_point.initiate(do_pool.pop_back())
vanishing_point.update_data_to_project()
else:
vanishing_point.initiate()
func undo_add_vanishing_point():
var point = vanishing_point_container.get_child(vanishing_point_container.get_child_count() - 1)
point.queue_free()
do_pool.append(point.serialize())
Added the Perspective editor (#806) * Added Perspective Editor * removed unintended changes * Removed unintended changes * removed un-intended changes * Delete Axes.tscn * Delete Axis.gd * Removed MouseGuides from editor I will add them separately * Added MouseGuides * Some changes * Fixed some things * added mouse guide * make MouseGuides remember last setting * don't move if dialog is open * Dont move tracker guides if dialog is open * UI improvement to editor * Update VanishingPoint.gd * UI Improvement * Minor Color Improvements * fixed a bug This was causing a crash * Some UI Changes * Improve UI some more * fix typo * Added Undo/Redo and improved UI * Formatting * formatting * formatting * formatting * Fix Definition out of order * Fix Definition out of order * formatting * formatting * fix Duplicate error * Fix some things * Some UI Changes * Some code refinement * Removed un-needed lines * Some code refinement * Some more UI Changes * Changes, Changes and Changes * Delete LineButton.gd * Delete LineButton.tscn * Delete PerspectiveEditor.gd * Delete PerspectiveEditor.tscn * Delete PointCollapseContainer.gd * Delete PerspectiveLine.tscn * Delete PerspectiveLine.gd * Changed boundary separators to ColorRects * make the guide update more frequently * make default color have full alpha * Dim the boundaries based on luminance * typo * Formatting * Formatting * formatting i forgot to do * Delete VanishingPoint.gd * Delete VanishingPoint.tscn * Fixed rouge collapsible container --------- Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2023-02-12 13:20:53 +00:00
point.update_data_to_project(true)
func delete_point(idx):
var project = Global.current_project
project.undos += 1
project.undo_redo.create_action("Delete Vanishing Point")
project.undo_redo.add_do_method(self, "do_delete_point", idx)
project.undo_redo.add_undo_method(self, "undo_delete_point", idx)
project.undo_redo.commit_action()
func do_delete_point(idx):
var point = vanishing_point_container.get_child(idx)
delete_pool.append(point.serialize())
Added the Perspective editor (#806) * Added Perspective Editor * removed unintended changes * Removed unintended changes * removed un-intended changes * Delete Axes.tscn * Delete Axis.gd * Removed MouseGuides from editor I will add them separately * Added MouseGuides * Some changes * Fixed some things * added mouse guide * make MouseGuides remember last setting * don't move if dialog is open * Dont move tracker guides if dialog is open * UI improvement to editor * Update VanishingPoint.gd * UI Improvement * Minor Color Improvements * fixed a bug This was causing a crash * Some UI Changes * Improve UI some more * fix typo * Added Undo/Redo and improved UI * Formatting * formatting * formatting * formatting * Fix Definition out of order * Fix Definition out of order * formatting * formatting * fix Duplicate error * Fix some things * Some UI Changes * Some code refinement * Removed un-needed lines * Some code refinement * Some more UI Changes * Changes, Changes and Changes * Delete LineButton.gd * Delete LineButton.tscn * Delete PerspectiveEditor.gd * Delete PerspectiveEditor.tscn * Delete PointCollapseContainer.gd * Delete PerspectiveLine.tscn * Delete PerspectiveLine.gd * Changed boundary separators to ColorRects * make the guide update more frequently * make default color have full alpha * Dim the boundaries based on luminance * typo * Formatting * Formatting * formatting i forgot to do * Delete VanishingPoint.gd * Delete VanishingPoint.tscn * Fixed rouge collapsible container --------- Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2023-02-12 13:20:53 +00:00
point.queue_free()
point.update_data_to_project(true)
func undo_delete_point(idx):
var point = delete_pool.pop_back()
Global.current_project.vanishing_points.insert(idx, point)
update_points()
func update_points():
# Delete old vanishing points
for c in vanishing_point_container.get_children():
c.queue_free()
# Add the "updated" vanising points from the current_project
for idx in Global.current_project.vanishing_points.size():
# Create the point
var vanishing_point := vanishing_point_res.instance()
vanishing_point_container.add_child(vanishing_point)
# Initialize it
var point_data = Global.current_project.vanishing_points[idx]
vanishing_point.initiate(point_data, idx)