Skip to content

Commit 191d25f

Browse files
Baekalfenthinkyhead
andcommitted
🐛 Fix XYZEval::set(XY, Z) and (XY, Z, E) (MarlinFirmware#23704)
Fix regression in MarlinFirmware#21953 Co-authored-by: Scott Lahteine <[email protected]>
1 parent ae96892 commit 191d25f

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

Marlin/src/core/types.h

+15-13
Original file line numberDiff line numberDiff line change
@@ -536,19 +536,9 @@ struct XYZEval {
536536
// Reset all to 0
537537
FI void reset() { LOGICAL_AXIS_GANG(e =, x =, y =, z =, i =, j =, k =) 0; }
538538

539-
// Setters taking struct types and arrays
540-
FI void set(const T px) { x = px; }
541-
FI void set(const T px, const T py) { x = px; y = py; }
542-
FI void set(const XYval<T> pxy) { x = pxy.x; y = pxy.y; }
543-
FI void set(const XYZval<T> pxyz) { set(LINEAR_AXIS_ELEM(pxyz)); }
544-
#if HAS_Z_AXIS
545-
FI void set(LINEAR_AXIS_ARGS(const T)) { LINEAR_AXIS_CODE(a = x, b = y, c = z, u = i, v = j, w = k); }
546-
#endif
547-
#if LOGICAL_AXES > LINEAR_AXES
548-
FI void set(const XYval<T> pxy, const T pe) { set(pxy); e = pe; }
549-
FI void set(const XYZval<T> pxyz, const T pe) { set(pxyz); e = pe; }
550-
FI void set(LOGICAL_AXIS_ARGS(const T)) { LOGICAL_AXIS_CODE(_e = e, a = x, b = y, c = z, u = i, v = j, w = k); }
551-
#endif
539+
// Setters for some number of linear axes, not all
540+
FI void set(const T px) { x = px; }
541+
FI void set(const T px, const T py) { x = px; y = py; }
552542
#if HAS_I_AXIS
553543
FI void set(const T px, const T py, const T pz) { x = px; y = py; z = pz; }
554544
#endif
@@ -558,6 +548,18 @@ struct XYZEval {
558548
#if HAS_K_AXIS
559549
FI void set(const T px, const T py, const T pz, const T pi, const T pj) { x = px; y = py; z = pz; i = pi; j = pj; }
560550
#endif
551+
// Setters taking struct types and arrays
552+
FI void set(const XYval<T> pxy) { x = pxy.x; y = pxy.y; }
553+
FI void set(const XYZval<T> pxyz) { set(LINEAR_AXIS_ELEM(pxyz)); }
554+
#if HAS_Z_AXIS
555+
FI void set(LINEAR_AXIS_ARGS(const T)) { LINEAR_AXIS_CODE(a = x, b = y, c = z, u = i, v = j, w = k); }
556+
#endif
557+
FI void set(const XYval<T> pxy, const T pz) { set(pxy); TERN_(HAS_Z_AXIS, z = pz); }
558+
#if LOGICAL_AXES > LINEAR_AXES
559+
FI void set(const XYval<T> pxy, const T pz, const T pe) { set(pxy, pz); e = pe; }
560+
FI void set(const XYZval<T> pxyz, const T pe) { set(pxyz); e = pe; }
561+
FI void set(LOGICAL_AXIS_ARGS(const T)) { LOGICAL_AXIS_CODE(_e = e, a = x, b = y, c = z, u = i, v = j, w = k); }
562+
#endif
561563

562564
// Length reduced to one dimension
563565
FI T magnitude() const { return (T)sqrtf(LOGICAL_AXIS_GANG(+ e*e, + x*x, + y*y, + z*z, + i*i, + j*j, + k*k)); }

0 commit comments

Comments
 (0)