mirror of
https://github.com/godotengine/godot.git
synced 2025-10-20 00:13:30 +00:00
Automatic arrangement of nodes in VisualScript/VisualShaders editors
This PR and commit adds the functionality to arrange nodes in VisualScript/VisualShader editor. The layout generated by this feature is compact, with minimum crossings between connections & uniform horizontal & vertical gaps between the nodes. This work has been sponsored by GSoC '21. Full list of additions/changes: • Added arrange_nodes() method in GraphEdit module. • This method computes new positions for all the selected nodes by forming blocks and compressing them. The nodes are moved to these new positions. • Adding this method to GraphEdit makes it available for use in VisualScript/VisualShaders editors and its other subclasses. • Button with an icon has been added to call arrange_nodes() in GraphEdit. • This button is inherited by VisualScript/VisualShaders editors to invoke the method. • Undo/redo is functional with this method. • By using signals in arrange_nodes(), position changes are registered in undo/redo stack of the subclass that is using the method. • Metadata of the method has been updated in ClassDB • Method description has been added to class reference of GraphEdit
This commit is contained in:
parent
da339f8ffc
commit
12fc3f1eef
9 changed files with 542 additions and 1 deletions
|
@ -60,7 +60,7 @@ class VisualScriptEditor : public ScriptEditorBase {
|
|||
EDIT_CUT_NODES,
|
||||
EDIT_PASTE_NODES,
|
||||
EDIT_CREATE_FUNCTION,
|
||||
REFRESH_GRAPH
|
||||
REFRESH_GRAPH,
|
||||
};
|
||||
|
||||
enum PortAction {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue