math: various fixes

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2023-09-08 16:54:10 -07:00
parent 40a1ba0431
commit b81e416e02

View file

@ -106,24 +106,24 @@ pub fn Vec(comptime n_value: usize, comptime Scalar: type) type {
/// Scalar addition
pub inline fn addScalar(a: VecN, s: Scalar) VecN {
return .{ .v = a.v + VecN.splat(s) };
return .{ .v = a.v + VecN.splat(s).v };
}
/// Scalar subtraction
pub inline fn subScalar(a: VecN, s: Scalar) VecN {
return .{ .v = a.v - VecN.splat(s) };
return .{ .v = a.v - VecN.splat(s).v };
}
/// Scalar division
pub inline fn divScalar(a: VecN, s: Scalar) VecN {
return .{ .v = a.v / VecN.splat(s) };
return .{ .v = a.v / VecN.splat(s).v };
}
/// Scalar multiplication.
///
/// See .dot() for the dot product
pub inline fn mulScalar(a: VecN, s: Scalar) VecN {
return .{ .v = a.v * VecN.splat(s) };
return .{ .v = a.v * VecN.splat(s).v };
}
/// Returns a vector with all components set to the `scalar` value:
@ -192,7 +192,7 @@ pub fn Vec(comptime n_value: usize, comptime Scalar: type) type {
/// a.lerp(b, 1.0) == b
/// ```
pub inline fn lerp(a: VecN, b: VecN, amount: Scalar) VecN {
return a.mulScalar(1.0 - amount) + b.mulScalar(amount);
return a.mulScalar(1.0 - amount).add(b.mulScalar(amount));
}
/// Calculates the dot product between vector a and b and returns scalar.