|
|
@@ -1,12 +1,17 @@
|
|
|
import XDirectedEdge from "./graphs/types/XDirectedEdge.js";
|
|
|
import XVertex from "./graphs/types/XVertex.js";
|
|
|
import XDirectedGraph from "./graphs/types/XDirectedGraph.js";
|
|
|
-import SugiyamaBaseOptimizer from "./optimizer/types/sugiyama-based/SugiyamaBaseOptimizer.js";
|
|
|
+import SimpleGraphStore from "./graphs/types/SimpleGraphStore.js";
|
|
|
+import SiguyamaOptimizer from "./optimizer/types/sugiyama-based/SiguyamaOptimizer.js";
|
|
|
import CycleRemoverStep from "./optimizer/types/sugiyama-based/CycleRemoverStep.js";
|
|
|
-import LogStep from "./optimizer/types/sugiyama-based/LogStep.js";
|
|
|
+import LinearOptimizationStep from "./optimizer/types/sugiyama-based/LinearOptimizationStep.js";
|
|
|
|
|
|
-const v = [new XVertex(1), new XVertex(2)]
|
|
|
-const e = [new XDirectedEdge(v[0]!, v[1]!)]
|
|
|
-const g = new XDirectedGraph(v, e);
|
|
|
-const opt = new SugiyamaBaseOptimizer(g, [new LogStep(), new CycleRemoverStep((g) => { console.log(g) })]);
|
|
|
-opt.optimize();
|
|
|
+const v = [new XVertex(1), new XVertex(2), new XVertex(3), new XVertex(4)]
|
|
|
+const e = [new XDirectedEdge(1, v[0]!, v[1]!), new XDirectedEdge(2, v[1]!, v[2]!), new XDirectedEdge(3, v[2]!, v[0]!), new XDirectedEdge(4, v[0]!, v[3]!)]
|
|
|
+const g = new XDirectedGraph(new SimpleGraphStore(v, e));
|
|
|
+
|
|
|
+const opt = new SiguyamaOptimizer(new CycleRemoverStep().setNext(new LinearOptimizationStep()));
|
|
|
+
|
|
|
+opt.optimize(g)
|
|
|
+ .then((g) => console.log(`Result: ${JSON.stringify(g)}`))
|
|
|
+ .catch((err) => console.error(err));
|