feat(math): vectors now have the hadamard product for multiplication

This commit is contained in:
lisk77 2025-11-13 00:43:37 +01:00
parent 4915cbcbfe
commit e589544a31

View file

@ -149,6 +149,17 @@ impl Mul<v2> for f32 {
}
}
impl Mul<v2> for v2 {
type Output = v2;
fn mul(self, other: v2) -> v2 {
v2 {
x: self.x * other.x,
y: self.y * other.y,
}
}
}
impl Div<f32> for v2 {
type Output = v2;
@ -388,6 +399,17 @@ impl Mul<f32> for v2i {
}
}
impl Mul<v2i> for v2i {
type Output = v2i;
fn mul(self, other: v2i) -> v2i {
v2i {
x: self.x * other.x,
y: self.y * other.y,
}
}
}
impl From<v2i> for v2 {
fn from(v: v2i) -> v2 {
v2 {
@ -584,6 +606,18 @@ impl Mul<v3> for f32 {
}
}
impl Mul<v3> for v3 {
type Output = v3;
fn mul(self, other: v3) -> v3 {
v3 {
x: self.x * other.x,
y: self.y * other.y,
z: self.z * other.z,
}
}
}
impl Div<f32> for v3 {
type Output = v3;
@ -797,6 +831,18 @@ impl Mul<f32> for v3i {
}
}
impl Mul<v3i> for v3i {
type Output = v3i;
fn mul(self, other: v3i) -> v3i {
v3i {
x: self.x * other.x,
y: self.y * other.y,
z: self.z * other.z,
}
}
}
impl From<v3i> for v3 {
fn from(v: v3i) -> v3 {
v3 {
@ -1002,6 +1048,19 @@ impl Mul<v4> for f32 {
}
}
impl Mul<v4> for v4 {
type Output = v4;
fn mul(self, other: v4) -> v4 {
v4 {
x: self.x * other.x,
y: self.y * other.y,
z: self.z * other.z,
w: self.w * other.w,
}
}
}
impl MulAssign<f32> for v4 {
fn mul_assign(&mut self, other: f32) {
self.x *= other;