Esempio n. 1
0
        /// <summary>
        /// 一時的ポイント移動を反映しエッジ描画更新。
        /// </summary>
        public void RedrawEdge(PointInf removedPoint, PointInf addedPoint)
        {
            foreach (var e in mEdgeList)
            {
                PointInf p1 = null;
                if (e.fromPointIdx == removedPoint.Idx)
                {
                    p1 = addedPoint;
                }
                else
                {
                    p1 = mPP.FindPointByIdx(e.fromPointIdx, PointProc.FindPointMode.FindAll);
                }

                PointInf p2 = null;
                if (e.toPointIdx == removedPoint.Idx)
                {
                    p2 = addedPoint;
                }
                else
                {
                    p2 = mPP.FindPointByIdx(e.toPointIdx, PointProc.FindPointMode.FindAll);
                }

                mDP.mCanvas.Children.Remove(e.line);
                e.line = null;
                mDP.mCanvas.Children.Remove(e.arrow);
                e.arrow = null;

                var l = DrawUtil.NewLine(p1.xy, p2.xy, mDP.mBrush);
                e.line = l;

                var poly = NewArrowPoly(p1.xy, p2.xy, mDP.mBrush);
                e.arrow = poly;

                mDP.mCanvas.Children.Add(l);
                mDP.mCanvas.Children.Add(poly);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// すべてのエッジを再描画する。
        /// �@既存エッジをキャンバスから削除。
        /// �A新しいエッジを作成。
        /// �B新エッジをキャンバスに追加。
        /// </summary>
        public void RedrawAllEdges()
        {
            foreach (var e in mEdgeList)
            {
                var p1 = mPP.FindPointByIdx(e.fromPointIdx, PointProc.FindPointMode.FindAll);
                var p2 = mPP.FindPointByIdx(e.toPointIdx, PointProc.FindPointMode.FindAll);

                mDP.mCanvas.Children.Remove(e.line);
                e.line = null;
                mDP.mCanvas.Children.Remove(e.arrow);
                e.arrow = null;

                var l = DrawUtil.NewLine(p1.xy, p2.xy, mDP.mBrush);
                e.line = l;

                var poly = NewArrowPoly(p1.xy, p2.xy, mDP.mBrush);
                e.arrow = poly;

                mDP.mCanvas.Children.Add(l);
                mDP.mCanvas.Children.Add(poly);
            }
        }
        private void RedrawGrid()
        {
            foreach (var p in mGridLines)
            {
                mCanvas.Children.Remove(p);
            }
            mGridLines.Clear();

            for (int x = 0; x < mCanvas.ActualWidth; x += mDP.mGridSz)
            {
                var p = DrawUtil.NewLine(new WWVectorD2(x, 0), new WWVectorD2(x, mCanvas.ActualHeight), mDP.mGridBrush);
                Canvas.SetZIndex(p, mDP.Z_Grid);
                mCanvas.Children.Add(p);
                mGridLines.Add(p);
            }

            for (int y = 0; y < mCanvas.ActualHeight; y += mDP.mGridSz)
            {
                var p = DrawUtil.NewLine(new WWVectorD2(0, y), new WWVectorD2(mCanvas.ActualWidth, y), mDP.mGridBrush);
                Canvas.SetZIndex(p, mDP.Z_Grid);
                mCanvas.Children.Add(p);
                mGridLines.Add(p);
            }
        }