shorten vector ops

This commit is contained in:
catAngent 2024-09-09 21:43:59 +01:00
parent 41d076914f
commit 06813e2e5f
2 changed files with 35 additions and 7 deletions

View file

@ -2,3 +2,30 @@ pub const raylib = @cImport({
@cInclude("raylib.h");
@cInclude("raymath.h");
});
pub const v3 = struct {
pub inline fn new(x: f32, y: f32, z: f32) raylib.Vector3 {
return raylib.Vector3{ .x = x, .y = y, .z = z };
}
pub inline fn add(a: raylib.Vector3, b: raylib.Vector3) raylib.Vector3 {
return raylib.Vector3Add(a, b);
}
pub inline fn sub(a: raylib.Vector3, b: raylib.Vector3) raylib.Vector3 {
return raylib.Vector3Subtract(a, b);
}
pub inline fn neg(a: raylib.Vector3) raylib.Vector3 {
return raylib.Vector3Negate(a);
}
pub inline fn scl(a: raylib.Vector3, b: f32) raylib.Vector3 {
return raylib.Vector3Scale(a, b);
}
pub inline fn nor(a: raylib.Vector3) raylib.Vector3 {
return raylib.Vector3Normalize(a);
}
pub inline fn cross(a: raylib.Vector3, b: raylib.Vector3) raylib.Vector3 {
return raylib.Vector3CrossProduct(a, b);
}
pub inline fn rotate(vec: raylib.Vector3, axis: raylib.Vector3, angle: f32) raylib.Vector3 {
return raylib.Vector3RotateByAxisAngle(vec, axis, angle);
}
};