Files
PCK-Studio/MinecraftUSkinEditor/Classes/StoneVOX/utils/Extensions.cs
PhoenixARC 10f1c8daa0 update
2021-08-09 19:05:20 -04:00

170 lines
4.5 KiB
C#

using OpenTK;
using OpenTK.Graphics;
using System;
using System.Drawing;
namespace stonevox
{
public static class Extensions
{
public static int SafeToInt32(this string text)
{
try
{
return Convert.ToInt32(text);
}
catch
{
return -1;
}
}
public static float SafeToFloat(this string text)
{
try
{
return Convert.ToSingle(text);
}
catch
{
return -1;
}
}
public static Vector3 lerp (this Vector3 a, Vector3 to, float time)
{
return a + ((to - a) * time);
}
public static Vector3 negated(this Vector3 a)
{
return a * -1f;
}
public static float dot(this Vector3 a, Vector3 other)
{
return a.X * other.X + a.Y * other.Y + a.Z * other.Z;
}
public static Vector3 unit(this Vector3 a)
{
return a / a.Length;
}
public static Vector3 cross(this Vector3 me, Vector3 a)
{
return new Vector3(
me.Y * a.Z - me.Z * a.Y,
me.Z * a.X - me.X * a.Z,
me.X * a.Y - me.Y * a.X
);
}
public static Color4 Add(this Color4 color, ref Color4 other)
{
return new Color4()
{
A = color.A + other.A,
R = color.R + other.R,
G = color.G + other.G,
B = color.B + other.B,
};
}
public static Color4 Add(this Color4 color, Color4 other)
{
return new Color4()
{
A = color.A + other.A,
R = color.R + other.R,
G = color.G + other.G,
B = color.B + other.B,
};
}
public static Color ToSystemDrawingColor(this Color4 color)
{
return Color.FromArgb((int)(color.A * 255f), (int)(color.R * 255f), (int)(color.G * 255f), (int)(color.B * 255f));
}
public static Color4 ToColor4(this Color color)
{
return new Color4(color.R / 255f, color.G / 255f, color.B / 255f, color.A / 255f);
}
public static float ScaleHorizontal(this float value)
{
return Scale.hPosScale(value);
}
public static float ScaleHorizontalSize(this float value)
{
return Scale.hSizeScale(value);
}
public static float ScaleVertical(this float value)
{
return Scale.vPosScale(value);
}
public static float ScaleVerticlSize(this float value)
{
return Scale.vSizeScale(value);
}
public static float UnScaleHorizontal(this float value)
{
return Scale.hUnPosScale(value);
}
public static float UnScaleHorizontalSize(this float value)
{
return Scale.hUnSizeScale(value);
}
public static float UnScaleVertical(this float value)
{
return Scale.vUnPosScale(value);
}
public static float UnScaleVerticlSize(this float value)
{
return Scale.vUnSizeScale(value);
}
public static Bitmap ResizeImage(this Bitmap imgToResize, Size size)
{
try
{
Bitmap b = new Bitmap(size.Width, size.Height);
using (Graphics g = Graphics.FromImage((Image)b))
{
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.DrawImage(imgToResize, 0, 0, size.Width, size.Height);
}
return b;
}
catch
{
Console.WriteLine("Bitmap could not be resized");
return imgToResize;
}
}
public static double Clamp(this double value, double min, double max)
{
if (value >= max)
return max;
else if (value <= min)
return min;
return value;
}
public static float Clamp(this float value, float min, float max)
{
if (value >= max)
return max;
else if (value <= min)
return min;
return value;
}
}
}