// private void ComputeXY(Graph <Object> G, int cur_alg) { AcyclicTest <Object> AT = new AcyclicTest <Object>(G); bool acyclic = AT.isAcyclic(); if (cur_alg >= 2 && !acyclic) { // tree algorithm was chosen for inappropriate graph cur_alg = 1; ComputeXY(G, cur_alg); return; } List <Vector> config = new List <Vector>(); this.xy = grap_layout_algo[cur_alg - 1].system_config(canvas_width(), canvas_height(), G, out config, -1, -1, initial_config); if (config.Count > 0 /*&& xy.Count > 0*/) { initial_config = new List <Vector>(); /*foreach (Vector v in xy[xy.Count - 1]) * initial_config.Add(new Vector(v[0], v[1]));*/ foreach (Vector v in config) { initial_config.Add(new Vector(v[0], v[1])); } } }
// private void ComputeXY(Graph<Object> G, int cur_alg) { AcyclicTest<Object> AT = new AcyclicTest<Object>(G); bool acyclic = AT.isAcyclic(); if (cur_alg >= 2 && !acyclic) { // tree algorithm was chosen for inappropriate graph cur_alg = 1; ComputeXY(G, cur_alg); return; } List<Vector> config = new List<Vector>(); this.xy = grap_layout_algo[cur_alg - 1].system_config(canvas_width(), canvas_height(), G, out config, -1, -1, initial_config); if (config.Count > 0 /*&& xy.Count > 0*/) { initial_config = new List<Vector>(); /*foreach (Vector v in xy[xy.Count - 1]) initial_config.Add(new Vector(v[0], v[1]));*/ foreach (Vector v in config) initial_config.Add(new Vector(v[0], v[1])); } }