From 4ab9425a978abf8bc1292058f1f62a9b73ca0a8e Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Thu, 19 Jan 2023 19:48:59 -0800 Subject: [PATCH] rtiow/vec3: add min/max functions for building new Vec3 from 2 others. --- rtiow/vec3/src/vec3.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/rtiow/vec3/src/vec3.rs b/rtiow/vec3/src/vec3.rs index b320e2f..bd1cdb5 100644 --- a/rtiow/vec3/src/vec3.rs +++ b/rtiow/vec3/src/vec3.rs @@ -15,6 +15,23 @@ pub struct Vec3 { pub z: f32, } +// Return a `Vec3` with the lowest of each component in v1 or v2. +pub fn min(v1: Vec3, v2: Vec3) -> Vec3 { + Vec3 { + x: v1.x.min(v2.x), + y: v1.y.min(v2.y), + z: v1.z.min(v2.z), + } +} +// Return a `Vec3` with the greatest of each component in v1 or v2. +pub fn max(v1: Vec3, v2: Vec3) -> Vec3 { + Vec3 { + x: v1.x.max(v2.x), + y: v1.y.max(v2.y), + z: v1.z.max(v2.z), + } +} + pub fn cross(v1: Vec3, v2: Vec3) -> Vec3 { Vec3 { x: v1.y * v2.z - v1.z * v2.y,