52 lines
767 B
C#
52 lines
767 B
C#
namespace Fermion
|
|
{
|
|
public struct Vector3
|
|
{
|
|
public float X, Y, Z;
|
|
|
|
public static Vector3 Zero => new Vector3(0.0f);
|
|
|
|
public Vector3(float scalar)
|
|
{
|
|
X = scalar;
|
|
Y = scalar;
|
|
Z = scalar;
|
|
}
|
|
|
|
public Vector3(float x, float y, float z)
|
|
{
|
|
X = x;
|
|
Y = y;
|
|
Z = z;
|
|
}
|
|
|
|
public Vector3(Vector2 xy, float z)
|
|
{
|
|
X = xy.X;
|
|
Y = xy.Y;
|
|
Z = z;
|
|
}
|
|
|
|
public Vector2 XY
|
|
{
|
|
get => new Vector2(X, Y);
|
|
set
|
|
{
|
|
X = value.X;
|
|
Y = value.Y;
|
|
}
|
|
}
|
|
|
|
public static Vector3 operator +(Vector3 a, Vector3 b)
|
|
{
|
|
return new Vector3(a.X + b.X, a.Y + b.Y, a.Z + b.Z);
|
|
}
|
|
|
|
public static Vector3 operator *(Vector3 vector, float scalar)
|
|
{
|
|
return new Vector3(vector.X * scalar, vector.Y * scalar, vector.Z * scalar);
|
|
}
|
|
|
|
}
|
|
}
|