From e494b483584852fc65659018fd01d193e17a0430 Mon Sep 17 00:00:00 2001 From: Joshua Simmons Date: Sun, 11 Sep 2022 16:02:52 +0200 Subject: [PATCH] Add point -> vector conversion functions --- narcissus-maths/src/point2.rs | 6 ++++++ narcissus-maths/src/point3.rs | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/narcissus-maths/src/point2.rs b/narcissus-maths/src/point2.rs index 5351cd1..ed4eac6 100644 --- a/narcissus-maths/src/point2.rs +++ b/narcissus-maths/src/point2.rs @@ -18,6 +18,12 @@ impl Point2 { Self { x, y } } + /// Converts this point to the equivalent vector. + #[inline(always)] + pub const fn as_vec2(self) -> Vec2 { + Vec2::new(self.x, self.y) + } + /// Returns a new [`Point2`] with the function `f` applied to each coordinate of `self` in order. #[inline(always)] pub fn map(self, mut f: F) -> Self diff --git a/narcissus-maths/src/point3.rs b/narcissus-maths/src/point3.rs index c3b9ebb..f5a7e07 100644 --- a/narcissus-maths/src/point3.rs +++ b/narcissus-maths/src/point3.rs @@ -19,6 +19,12 @@ impl Point3 { Point3 { x, y, z } } + /// Converts this point to the equivalent vector. + #[inline(always)] + pub const fn as_vec3(self) -> Vec3 { + Vec3::new(self.x, self.y, self.z) + } + /// Returns a new [`Point3`] with the function `f` applied to each coordinate of `self` in order. #[inline(always)] pub fn map(self, mut f: F) -> Point3 -- 2.49.0