Пример #1
0
        public PatriarchsViewerWin(IBaseWindow baseWin, int minGens)
        {
            InitializeComponent();

            fBase    = baseWin;
            fTipShow = false;

            using (Graph graph = PatriarchsMan.GetPatriarchsGraph(fBase.Context, minGens, false, true)) {
                ArborSystem sys = fArborViewer.Sys;

                foreach (Vertex vtx in graph.Vertices)
                {
                    var    arbNode = sys.AddNode(vtx.Sign) as ArborNodeEx;
                    PGNode pgNode  = (PGNode)vtx.Value;

                    arbNode.Color = (pgNode.Type == PGNodeType.Intersection) ? Colors.BlueViolet : Colors.Navy;
                    arbNode.Mass  = pgNode.Size;
                }

                foreach (Edge edge in graph.Edges)
                {
                    sys.AddEdge(edge.Source.Sign, edge.Target.Sign);
                }
            }

            fArborViewer.NodesDragging = true;
        }
Пример #2
0
        public void CreateArborGraph(IBaseWindow baseWin, int minGens, bool loneSuppress)
        {
            fBase = baseWin;

            try {
                fSys = new ArborSystemEx(1000, 1000, 0.1, null); //(10000, 1000, 0.1, this);
                fSys.SetViewSize(50, 50);
                fSys.OnStop += OnArborStop;

                using (ExtList <PatriarchObj> patList = PatriarchsMan.GetPatriarchsLinks(
                           baseWin.Context, minGens, false, loneSuppress)) {
                    int num = patList.Count;
                    for (int i = 0; i < num; i++)
                    {
                        PatriarchObj pObj = patList[i];

                        if (!loneSuppress || pObj.HasLinks)
                        {
                            ArborNode node = fSys.AddNode(pObj.IRec.XRef);
                            node.Data = pObj;
                        }
                    }

                    for (int i = 0; i < num; i++)
                    {
                        PatriarchObj pat1 = patList[i];

                        foreach (PatriarchObj pat2 in pat1.Links)
                        {
                            fSys.AddEdge(pat1.IRec.XRef, pat2.IRec.XRef);
                        }
                    }
                }

                z = -50;

                fSys.Start();
            } catch (Exception ex) {
                Logger.LogWrite("TreeVizControl.CreateArborGraph(): " + ex.Message);
            }
        }