Smrf.NodeXL.Visualization.Wpf.VertexDrawingHistory.GetSelfLoopEndpointOnRectangle C# (CSharp) Method

GetSelfLoopEndpointOnRectangle() protected method

protected GetSelfLoopEndpointOnRectangle ( Rect oVertexRectangle, RectangleEdge eFarthestGraphRectangleEdge ) : Point
oVertexRectangle System.Windows.Rect
eFarthestGraphRectangleEdge RectangleEdge
return Point
    GetSelfLoopEndpointOnRectangle
    (
        Rect oVertexRectangle,
        RectangleEdge eFarthestGraphRectangleEdge
    )
    {
        AssertValid();

        Double dX = 0;
        Double dY = 0;

        switch (eFarthestGraphRectangleEdge)
        {
            case RectangleEdge.Top:

                dX = oVertexRectangle.Left + oVertexRectangle.Width / 2.0;
                dY = oVertexRectangle.Top;
                break;

            case RectangleEdge.Left:

                dX = oVertexRectangle.Left;
                dY = oVertexRectangle.Top + oVertexRectangle.Height / 2.0;
                break;

            case RectangleEdge.Right:

                dX = oVertexRectangle.Right;
                dY = oVertexRectangle.Top + oVertexRectangle.Height / 2.0;
                break;

            case RectangleEdge.Bottom:

                dX = oVertexRectangle.Left + oVertexRectangle.Width / 2.0;
                dY = oVertexRectangle.Bottom;
                break;

            default:

                Debug.Assert(false);
                break;
        }

        return ( new Point(dX, dY) );
    }