Exemplo n.º 1
0
        /// <summary>
        /// adds an edge to the tree
        /// </summary>
        /// <param name="source"></param>
        /// <param name="edgeLabel"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        override public Edge AddEdge(string source, string edgeLabel, string target)
        {
            string l = edgeLabel;

            if (l == null)
            {
                l = "";
            }


            PhyloEdge edge = new PhyloEdge(source, target, 0);

            Edges.Add(edge);

            edge.SourceNode = AddNode(source);
            edge.TargetNode = AddNode(target);

            if (source != target)
            {
                edge.SourceNode.AddOutEdge(edge);
                edge.TargetNode.AddInEdge(edge);
            }
            else
            {
                edge.SourceNode.AddSelfEdge(edge);
            }



            return(edge);
        }
Exemplo n.º 2
0
 private static void AssignLengthsToGeometryEdges(Microsoft.Msagl.PhyloTree phyloTree)
 {
     foreach (Microsoft.Msagl.PhyloEdge msaglEdge in phyloTree.Edges)
     {
         PhyloEdge drawingEdge = msaglEdge.UserData as PhyloEdge;
         msaglEdge.Length = drawingEdge.Length;
     }
 }
        /// <summary>
        /// adds an edge to the tree
        /// </summary>
        /// <param name="source"></param>
        /// <param name="edgeLabel"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        override public Edge AddEdge(string source, string edgeLabel, string target) {

            string l = edgeLabel;
            if (l == null)
                l = "";


            PhyloEdge edge = new PhyloEdge(source, target, 1) {
                                                                  SourceNode = AddNode(source),
                                                                  TargetNode = AddNode(target)
                                                              };

            if (source != target) {
                edge.SourceNode.AddOutEdge(edge);
                edge.TargetNode.AddInEdge(edge);
            } else
                edge.SourceNode.AddSelfEdge(edge);



            return edge;
        }