Esempio n. 1
0
        //
        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]));
                }
            }
        }
Esempio n. 2
0
        //
        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]));
            }
        }