コード例 #1
0
        TestConstructor()
        {
            // Has CombinedIntergroupEdges.

            GroupInfo [] aoGroupInfo = new GroupInfo [] {
                new GroupInfo(),
                new GroupInfo(),
                new GroupInfo()
            };

            const Double PenWidth = 1.234;

            IntergroupEdgeInfo[] aoCombinedIntergroupEdges =
                new IntergroupEdgeInfo[5];

            GroupLayoutDrawingInfo oGroupLayoutDrawingInfo =
                new GroupLayoutDrawingInfo(aoGroupInfo, PenWidth,
                                           aoCombinedIntergroupEdges);

            Assert.AreEqual(aoGroupInfo, oGroupLayoutDrawingInfo.GroupsToDraw);
            Assert.AreEqual(PenWidth, oGroupLayoutDrawingInfo.PenWidth);

            Assert.AreEqual(aoCombinedIntergroupEdges,
                            oGroupLayoutDrawingInfo.CombinedIntergroupEdges);
        }
コード例 #2
0
        TestConstructor2()
        {
            // Null CombinedIntergroupEdges.

            GroupInfo [] aoGroupInfo = new GroupInfo [] {
                new GroupInfo(),
                new GroupInfo(),
                new GroupInfo()
            };

            const Double PenWidth = 1.234;

            GroupLayoutDrawingInfo oGroupLayoutDrawingInfo =
                new GroupLayoutDrawingInfo(aoGroupInfo, PenWidth, null);

            Assert.AreEqual(aoGroupInfo, oGroupLayoutDrawingInfo.GroupsToDraw);
            Assert.AreEqual(PenWidth, oGroupLayoutDrawingInfo.PenWidth);
            Assert.IsNull(oGroupLayoutDrawingInfo.CombinedIntergroupEdges);
        }
コード例 #3
0
ファイル: GroupDrawer.cs プロジェクト: jeberst/ParallelBFS
        DrawCombinedIntergroupEdge
        (
            DrawingContext oDrawingContext,
            GraphDrawingContext oGraphDrawingContext,
            IntergroupEdgeInfo oCombinedIntergroupEdge,
            GroupLayoutDrawingInfo oGroupLayoutDrawingInfo
        )
        {
            Debug.Assert(oDrawingContext != null);
            Debug.Assert(oGraphDrawingContext != null);
            Debug.Assert(oCombinedIntergroupEdge != null);
            Debug.Assert(oGroupLayoutDrawingInfo != null);
            AssertValid();

            Rect oGroupRectangle1, oGroupRectangle2;

            if (
                !TryGetGroupRectangle(

                    oGroupLayoutDrawingInfo.GroupsToDraw[
                        oCombinedIntergroupEdge.Group1Index],

                    out oGroupRectangle1)
                ||
                !TryGetGroupRectangle(

                    oGroupLayoutDrawingInfo.GroupsToDraw[
                        oCombinedIntergroupEdge.Group2Index],

                    out oGroupRectangle2)
                )
            {
                return;
            }

            Point oGroupRectangle1Center =
                WpfGraphicsUtil.GetRectCenter(oGroupRectangle1);

            Point oGroupRectangle2Center =
                WpfGraphicsUtil.GetRectCenter(oGroupRectangle2);

            Point oBezierControlPoint = GetBezierControlPoint(oGraphDrawingContext,
                                                              oGroupRectangle1Center, oGroupRectangle2Center,
                                                              CombinedIntergroupEdgeBezierDisplacementFactor
                                                              );

            PathGeometry oBezierCurve =
                WpfPathGeometryUtil.GetQuadraticBezierCurve(oGroupRectangle1Center,
                                                            oGroupRectangle2Center, oBezierControlPoint);

            Color oColor = GetContrastingColor(
                oGraphDrawingContext, CombinedIntergroupEdgeAlpha, true);

            Pen oPen = CreateFrozenPen(CreateFrozenSolidColorBrush(oColor),

                                       GetCombinedIntergroupEdgePenWidth(oCombinedIntergroupEdge) *
                                       this.GraphScale,

                                       DashStyles.Solid, PenLineCap.Round);

            oDrawingContext.DrawGeometry(null, oPen, oBezierCurve);
        }