GetLabelLocationOnDiamond
(
VertexLabelPosition eLabelPosition,
Double dHalfWidth
)
{
Debug.Assert(dHalfWidth >= 0);
AssertValid();
Point oVertexLocation = this.VertexLocation;
Double dVertexX = oVertexLocation.X;
Double dVertexY = oVertexLocation.Y;
switch (eLabelPosition)
{
case VertexLabelPosition.TopLeft:
case VertexLabelPosition.TopCenter:
case VertexLabelPosition.TopRight:
return ( new Point(dVertexX, dVertexY - dHalfWidth) );
case VertexLabelPosition.MiddleLeft:
return ( new Point(dVertexX - dHalfWidth, dVertexY) );
case VertexLabelPosition.MiddleCenter:
return (oVertexLocation);
case VertexLabelPosition.MiddleRight:
return ( new Point(dVertexX + dHalfWidth, dVertexY) );
case VertexLabelPosition.BottomLeft:
case VertexLabelPosition.BottomCenter:
case VertexLabelPosition.BottomRight:
return ( new Point(dVertexX, dVertexY + dHalfWidth) );
default:
Debug.Assert(false);
return (oVertexLocation);
}
}