DragonECS-Unity/src/Internal/Utils/RectUtility.cs
2024-03-07 03:18:00 +08:00

67 lines
2.0 KiB
C#

using UnityEngine;
namespace DCFApixels.DragonECS.Unity.Internal
{
internal static class RectUtility
{
public static (Rect, Rect) HorizontalSliceLerp(Rect rect, float t)
{
Rect l = rect;
Rect r = rect;
l.xMax -= rect.width * (1f - t);
r.xMin += rect.width * t;
return (l, r);
}
public static (Rect, Rect) HorizontalSliceLeft(Rect rect, float with)
{
Rect l = rect;
Rect r = rect;
l.xMax = l.xMin + with;
r.xMin += with;
return (l, r);
}
public static (Rect, Rect) HorizontalSliceRight(Rect rect, float with)
{
Rect l = rect;
Rect r = rect;
l.xMax -= with;
r.xMin = r.xMax - with;
return (l, r);
}
public static (Rect, Rect) VerticalSliceTop(Rect rect, float height)
{
Rect t = rect;
Rect b = rect;
t.yMax = t.yMin + height;
b.yMin += height;
return (t, b);
}
public static (Rect, Rect) VerticalSliceBottom(Rect rect, float height)
{
Rect t = rect;
Rect b = rect;
t.yMax -= height;
b.yMin = b.yMax - height;
return (t, b);
}
public static Rect AddPadding(Rect rect, float verticalHorizontal)
{
return AddPadding(rect, verticalHorizontal, verticalHorizontal, verticalHorizontal, verticalHorizontal);
}
public static Rect AddPadding(Rect rect, float vertical, float horizontal)
{
return AddPadding(rect, vertical, vertical, horizontal, horizontal);
}
public static Rect AddPadding(Rect rect, float left, float right, float top, float bottom)
{
rect.xMin += left;
rect.xMax -= right;
rect.yMin += top;
rect.yMax -= bottom;
return rect;
}
}
}