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) );
}