@@ -288,6 +288,17 @@ class GCodeParser {
288
288
// Bool is true with no value or non-zero
289
289
static bool value_bool () { return !has_value () || !!value_byte (); }
290
290
291
+ static constexpr bool axis_is_rotational (const AxisEnum axis) {
292
+ return (false
293
+ || TERN0 (AXIS4_ROTATES, axis == I_AXIS)
294
+ || TERN0 (AXIS5_ROTATES, axis == J_AXIS)
295
+ || TERN0 (AXIS6_ROTATES, axis == K_AXIS)
296
+ || TERN0 (AXIS7_ROTATES, axis == U_AXIS)
297
+ || TERN0 (AXIS8_ROTATES, axis == V_AXIS)
298
+ || TERN0 (AXIS9_ROTATES, axis == W_AXIS)
299
+ );
300
+ }
301
+
291
302
// Units modes: Inches, Fahrenheit, Kelvin
292
303
293
304
#if ENABLED(INCH_MODE_SUPPORT)
@@ -307,14 +318,7 @@ class GCodeParser {
307
318
}
308
319
309
320
static float axis_unit_factor (const AxisEnum axis) {
310
- if (false
311
- || TERN0 (AXIS4_ROTATES, axis == I_AXIS)
312
- || TERN0 (AXIS5_ROTATES, axis == J_AXIS)
313
- || TERN0 (AXIS6_ROTATES, axis == K_AXIS)
314
- || TERN0 (AXIS7_ROTATES, axis == U_AXIS)
315
- || TERN0 (AXIS8_ROTATES, axis == V_AXIS)
316
- || TERN0 (AXIS9_ROTATES, axis == W_AXIS)
317
- ) return 1 .0f ;
321
+ if (axis_is_rotational (axis)) return 1 .0f ;
318
322
#if HAS_EXTRUDERS
319
323
if (axis >= E_AXIS && volumetric_enabled) return volumetric_unit_factor;
320
324
#endif
@@ -327,12 +331,12 @@ class GCodeParser {
327
331
328
332
#else
329
333
330
- static float mm_to_linear_unit (const_float_t mm) { return mm; }
331
- static float mm_to_volumetric_unit (const_float_t mm) { return mm; }
334
+ static constexpr float mm_to_linear_unit (const_float_t mm) { return mm; }
335
+ static constexpr float mm_to_volumetric_unit (const_float_t mm) { return mm; }
332
336
333
- static float linear_value_to_mm (const_float_t v) { return v; }
334
- static float axis_value_to_mm (const AxisEnum, const float v) { return v; }
335
- static float per_axis_value (const AxisEnum, const float v) { return v; }
337
+ static constexpr float linear_value_to_mm (const_float_t v) { return v; }
338
+ static constexpr float axis_value_to_mm (const AxisEnum, const float v) { return v; }
339
+ static constexpr float per_axis_value (const AxisEnum, const float v) { return v; }
336
340
337
341
#endif
338
342
@@ -402,7 +406,7 @@ class GCodeParser {
402
406
403
407
#else // !TEMPERATURE_UNITS_SUPPORT
404
408
405
- static float to_temp_units (int16_t c) { return (float )c; }
409
+ static constexpr float to_temp_units (int16_t c) { return (float )c; }
406
410
407
411
static celsius_t value_celsius () { return value_int (); }
408
412
static celsius_t value_celsius_diff () { return value_int (); }
0 commit comments