Compare commits
No commits in common. "b7f71fb29f17ac3d4b736f84bca6fd5e29715fa0" and "74d7f05dcab1f9f225fd1e441bebe070b6d73d64" have entirely different histories.
b7f71fb29f
...
74d7f05dca
|
@ -6,7 +6,10 @@
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="f609c0f2-cd0d-4eea-87f1-8caf02d3f04f" name="Changes" comment="">
|
<list default="true" id="f609c0f2-cd0d-4eea-87f1-8caf02d3f04f" name="Changes" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/frame/ContentView.py" beforeDir="false" afterPath="$PROJECT_DIR$/frame/ContentView.py" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/graph/DataType.py" beforeDir="false" afterPath="$PROJECT_DIR$/graph/DataType.py" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/graph/directed_acyclic_graph/DAGLayout.py" beforeDir="false" afterPath="$PROJECT_DIR$/graph/directed_acyclic_graph/DAGLayout.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/graph/directed_acyclic_graph/DAGLayout.py" beforeDir="false" afterPath="$PROJECT_DIR$/graph/directed_acyclic_graph/DAGLayout.py" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/graph/directed_acyclic_graph/DAGPresent.py" beforeDir="false" afterPath="$PROJECT_DIR$/graph/directed_acyclic_graph/DAGPresent.py" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
@ -34,30 +37,30 @@
|
||||||
<option name="hideEmptyMiddlePackages" value="true" />
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
<option name="showLibraryContents" value="true" />
|
<option name="showLibraryContents" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PropertiesComponent">{
|
<component name="PropertiesComponent"><![CDATA[{
|
||||||
"keyToString": {
|
"keyToString": {
|
||||||
"Python.CompareViews.executor": "Run",
|
"Python.CompareViews.executor": "Run",
|
||||||
"Python.CompareWindow.executor": "Run",
|
"Python.CompareWindow.executor": "Run",
|
||||||
"Python.ContentView.executor": "Run",
|
"Python.ContentView.executor": "Run",
|
||||||
"Python.DAGGraph (1).executor": "Run",
|
"Python.DAGGraph (1).executor": "Run",
|
||||||
"Python.DAGGraph.executor": "Run",
|
"Python.DAGGraph.executor": "Run",
|
||||||
"Python.DAGLayout (1).executor": "Run",
|
"Python.DAGLayout (1).executor": "Run",
|
||||||
"Python.DAGLayout.executor": "Run",
|
"Python.DAGLayout.executor": "Run",
|
||||||
"Python.DAGPresent.executor": "Run",
|
"Python.DAGPresent.executor": "Run",
|
||||||
"Python.MergeView.executor": "Run",
|
"Python.MergeView.executor": "Run",
|
||||||
"Python.MileStone.executor": "Run",
|
"Python.MileStone.executor": "Run",
|
||||||
"Python.NovelManage.executor": "Debug",
|
"Python.NovelManage.executor": "Debug",
|
||||||
"Python.ReferView.executor": "Run",
|
"Python.ReferView.executor": "Run",
|
||||||
"Python.StoryMap.executor": "Run",
|
"Python.StoryMap.executor": "Run",
|
||||||
"Python.ast_load.executor": "Debug",
|
"Python.ast_load.executor": "Debug",
|
||||||
"Python.entry.executor": "Run",
|
"Python.entry.executor": "Run",
|
||||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
"git-widget-placeholder": "master",
|
"git-widget-placeholder": "master",
|
||||||
"last_opened_file_path": "D:/Projects/Python/StoryCheckTools",
|
"last_opened_file_path": "D:/Projects/Python/StoryCheckTools",
|
||||||
"settings.editor.selected.configurable": "reference.settings.ide.settings.new.ui"
|
"settings.editor.selected.configurable": "reference.settings.ide.settings.new.ui"
|
||||||
}
|
}
|
||||||
}</component>
|
}]]></component>
|
||||||
<component name="RunManager" selected="Python.ContentView">
|
<component name="RunManager" selected="Python.ContentView">
|
||||||
<configuration name="CompareViews" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
<configuration name="CompareViews" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||||
<module name="StoryTools" />
|
<module name="StoryTools" />
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
import sys
|
import sys
|
||||||
from typing import Dict, List
|
from typing import Dict, List
|
||||||
|
|
||||||
|
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QMainWindow
|
||||||
|
from PyQt5.QtWidgets import QMenu,QAction
|
||||||
from PyQt5.QtCore import QPoint
|
from PyQt5.QtCore import QPoint
|
||||||
from PyQt5.QtWidgets import QApplication, QMainWindow
|
|
||||||
from PyQt5.QtWidgets import QMenu
|
|
||||||
|
|
||||||
from graph.DataType import Arrow, Point
|
from graph.DataType import Arrow, Point
|
||||||
from graph.directed_acyclic_graph.DAGPresent import DAGActiveView
|
from graph.directed_acyclic_graph.DAGPresent import DAGActiveView, Direction
|
||||||
from parse.StoryMap import StoryMap, XAST_ParseTool
|
from parse.StoryMap import StoryMap, XAST_ParseTool
|
||||||
from parse.ast_load import global_ast_path
|
from parse.ast_load import global_ast_path
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
from graph.DataType import Point, Arrow
|
from graph.DataType import Point, Arrow
|
||||||
from typing import List, Dict, Tuple
|
from typing import List, Dict, Tuple
|
||||||
from math import floor,ceil
|
|
||||||
|
|
||||||
|
|
||||||
class DAGLayerHelper:
|
class DAGLayerHelper:
|
||||||
|
@ -179,21 +178,6 @@ class DAGGraph:
|
||||||
|
|
||||||
return max_remains + 1
|
return max_remains + 1
|
||||||
|
|
||||||
def __node_layering_adj(self, inst: DAGLayerHelper):
|
|
||||||
if inst.input_count > 1:
|
|
||||||
return inst.layer_v - 1
|
|
||||||
|
|
||||||
if len(inst.next_nodes()) == 0:
|
|
||||||
return inst.layer_v - 1
|
|
||||||
|
|
||||||
layer_number = 2**32
|
|
||||||
for cinst in inst.next_nodes():
|
|
||||||
layer_number = min(layer_number, self.__node_layering_adj(cinst))
|
|
||||||
pass
|
|
||||||
|
|
||||||
inst.layer_v = layer_number
|
|
||||||
return inst.layer_v - 1
|
|
||||||
|
|
||||||
def __tidy_graph_nodes(self) -> List[DAGOrderHelper]:
|
def __tidy_graph_nodes(self) -> List[DAGOrderHelper]:
|
||||||
nodes_temp: Dict[str, DAGOrderHelper] = {}
|
nodes_temp: Dict[str, DAGOrderHelper] = {}
|
||||||
|
|
||||||
|
@ -242,10 +226,9 @@ class DAGGraph:
|
||||||
if len(target_nodes_within_layer) == 0:
|
if len(target_nodes_within_layer) == 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
# 初始化节点排序
|
|
||||||
if layer_index == 0:
|
if layer_index == 0:
|
||||||
for idx in range(0, len(target_nodes_within_layer)):
|
for idx in range(0, len(target_nodes_within_layer)):
|
||||||
target_nodes_within_layer[idx].sort_number = idx + 1
|
target_nodes_within_layer[idx].sort_number = idx
|
||||||
pass
|
pass
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -253,10 +236,8 @@ class DAGGraph:
|
||||||
# 计算排序系数
|
# 计算排序系数
|
||||||
for target_node in target_nodes_within_layer:
|
for target_node in target_nodes_within_layer:
|
||||||
prev_sorts = list(map(lambda n:n.sort_number, target_node.get_upstream_nodes()))
|
prev_sorts = list(map(lambda n:n.sort_number, target_node.get_upstream_nodes()))
|
||||||
if len(prev_sorts) > 0:
|
|
||||||
target_node.sort_number = sum(prev_sorts)/len(prev_sorts)
|
target_node.sort_number = sum(prev_sorts)/len(prev_sorts)
|
||||||
pass
|
pass
|
||||||
pass
|
|
||||||
|
|
||||||
def compare_item(a: DAGOrderHelper):
|
def compare_item(a: DAGOrderHelper):
|
||||||
return a.sort_number
|
return a.sort_number
|
||||||
|
@ -264,9 +245,9 @@ class DAGGraph:
|
||||||
# 整理节点排序
|
# 整理节点排序
|
||||||
target_nodes_within_layer.sort(key=compare_item)
|
target_nodes_within_layer.sort(key=compare_item)
|
||||||
for idx in range(0, len(target_nodes_within_layer)):
|
for idx in range(0, len(target_nodes_within_layer)):
|
||||||
target_item = target_nodes_within_layer[idx]
|
target_nodes_within_layer[idx].sort_number = idx
|
||||||
target_item.sort_number = idx + 1
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
self.__graph_layer_nodes_sort(layer_index + 1, nodes)
|
self.__graph_layer_nodes_sort(layer_index + 1, nodes)
|
||||||
|
@ -296,11 +277,6 @@ class DAGGraph:
|
||||||
self.max_layer_count = max(self.max_layer_count, self.__node_layering(item))
|
self.max_layer_count = max(self.max_layer_count, self.__node_layering(item))
|
||||||
pass
|
pass
|
||||||
pass
|
pass
|
||||||
for item in sort_seqs:
|
|
||||||
if item.input_count ==0:
|
|
||||||
self.__node_layering_adj(item)
|
|
||||||
pass
|
|
||||||
pass
|
|
||||||
|
|
||||||
# 整理数据图节点
|
# 整理数据图节点
|
||||||
rich_nodes = self.__tidy_graph_nodes()
|
rich_nodes = self.__tidy_graph_nodes()
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue