From 3c870f2d4bcec4ed7e1499a7dee541c448d8751a Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 10 Oct 2022 17:51:33 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=91=E2=80=8D=F0=9F=92=BB=20Min=20and?= =?UTF-8?q?=20max=20for=20base=20types?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Marlin/src/core/types.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Marlin/src/core/types.h b/Marlin/src/core/types.h index cb087204fe..4292cd0cf1 100644 --- a/Marlin/src/core/types.h +++ b/Marlin/src/core/types.h @@ -347,6 +347,10 @@ struct XYval { FI operator T* () { return pos; } // If any element is true then it's true FI operator bool() { return x || y; } + // Smallest element + FI T _min() const { return _MIN(x, y); } + // Largest element + FI T _max() const { return _MAX(x, y); } // Explicit copy and copies with conversion FI XYval copy() const { return *this; } @@ -500,6 +504,10 @@ struct XYZval { FI operator T* () { return pos; } // If any element is true then it's true FI operator bool() { return NUM_AXIS_GANG(x, || y, || z, || i, || j, || k, || u, || v, || w); } + // Smallest element + FI T _min() const { return _MIN(NUM_AXIS_LIST(x, y, z, i, j, k, u, v, w)); } + // Largest element + FI T _max() const { return _MAX(NUM_AXIS_LIST(x, y, z, i, j, k, u, v, w)); } // Explicit copy and copies with conversion FI XYZval copy() const { XYZval o = *this; return o; } @@ -651,6 +659,10 @@ struct XYZEval { FI operator T* () { return pos; } // If any element is true then it's true FI operator bool() { return 0 LOGICAL_AXIS_GANG(|| e, || x, || y, || z, || i, || j, || k, || u, || v, || w); } + // Smallest element + FI T _min() const { return _MIN(LOGICAL_AXIS_LIST(e, x, y, z, i, j, k, u, v, w)); } + // Largest element + FI T _max() const { return _MAX(LOGICAL_AXIS_LIST(e, x, y, z, i, j, k, u, v, w)); } // Explicit copy and copies with conversion FI XYZEval copy() const { XYZEval v = *this; return v; }