public void GetOffsetForCardinalPoint(CardinalPoint cardinalPoint, ref Vector2 offset)
{
switch (cardinalPoint)
{
case CardinalPoint.BottomCenter:
offset = new Vector2(boundingBox[0].X + (boundingBox[1].X - boundingBox[0].X) / 2f, boundingBox[0].Y);
break;
case CardinalPoint.BottomLeft:
offset = boundingBox[0];
break;
case CardinalPoint.BottomRight:
offset = new Vector2(boundingBox[1].X, boundingBox[0].Y);
break;
case CardinalPoint.Centroid:
offset = Vector2.Empty;
break;
case CardinalPoint.MiddleCenter:
offset = new Vector2(boundingBox[0].X + (boundingBox[1].X - boundingBox[0].X) / 2f, boundingBox[0].Y + (boundingBox[1].Y - boundingBox[0].Y) / 2f);
break;
case CardinalPoint.MiddleLeft:
offset = new Vector2(boundingBox[0].X, boundingBox[0].Y + (boundingBox[1].Y - boundingBox[0].Y) / 2f);
break;
case CardinalPoint.MiddleRight:
offset = new Vector2(boundingBox[1].X, boundingBox[0].Y + (boundingBox[1].Y - boundingBox[0].Y) / 2f);
break;
case CardinalPoint.ShearCenter:
offset = Vector2.Empty;
break;
case CardinalPoint.TopCenter:
offset = new Vector2(boundingBox[0].X + (boundingBox[1].X - boundingBox[0].X) / 2f, boundingBox[1].Y);
break;
case CardinalPoint.TopLeft:
offset = new Vector2(boundingBox[0].X , boundingBox[1].Y);
break;
case CardinalPoint.TopRight:
offset = boundingBox[1];
break;
}
}