Пример #1
0
        public ArborViewer()
        {
            InitializeComponent();


            // repulsion - отталкивание, stiffness - тугоподвижность, friction - сила трения
            fSystem = new ArborSystemEx(10000.0f, 500.0f /*1000.0f*/, 0.1f, this);
            fSystem.SetViewSize((int)Width, (int)Height);
            fSystem.AutoStop = true;
            fSystem.Graph    = new Graph();

            fDragged       = null;
            fEnergyDebug   = false;
            fNodesDragging = false;

            //fDrawFont = new Font("Calibri", 9);

            //fLinePen = new Pen(Color.Gray, 1);
            //fLinePen.StartCap = LineCap.NoAnchor;
            //fLinePen.EndCap = LineCap.ArrowAnchor;

            fStrFormat = new CanvasTextFormat();
            fStrFormat.HorizontalAlignment = CanvasHorizontalAlignment.Center;
            fStrFormat.VerticalAlignment   = CanvasVerticalAlignment.Center;
            fStrFormat.FontSize            = 9;
            fStrFormat.WordWrapping        = CanvasWordWrapping.NoWrap;

            fBlackBrush = new SolidColorBrush(Colors.Black);
            fWhiteBrush = new SolidColorBrush(Colors.White);
        }
Пример #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);
            }
        }
Пример #3
0
 private void AV_SizeChanged(object sender, SizeChangedEventArgs e)
 {
     fSystem.SetViewSize((int)e.NewSize.Width, (int)e.NewSize.Height);
     Invalidate();
 }