SoftwareRasterizer/MathTypes.cs
2025-06-02 22:16:49 -04:00

37 lines
1001 B
C#

public struct float3(float x, float y, float z)
{
public float x = x;
public float y = y;
public float z = z;
public float r
{
get => x; set => x = value;
}
public float g
{
get => y; set => y = value;
}
public float b
{
get => z; set => z = value;
}
public static float3 operator -(float3 a, float3 b) => new float3(a.x - b.x, a.y - b.y, a.z - b.y);
public static float3 operator *(float scalar, float3 vec) => new float3(vec.x * scalar, vec.y * scalar, vec.z * scalar);
public static float3 operator +(float3 a, float3 b) => new float3(a.x + b.x, a.y + b.y, a.z + b.z);
public static float3 cross(float3 a, float3 b) => new float3(a.y * b.z - a.z * b.y, a.z * b.x - a.x * b.z, a.x * b.y - a.y * b.x);
public static float dot(float3 a, float3 b) => a.x * b.x + a.y * b.y + a.z * b.z;
}
public struct float2(float x, float y)
{
public float x = x;
public float y = y;
}