Use macros that explicitly avoid double-evaluation and can be used for any datatype, replacing `min`, `max`, `abs`, `fabs`, `labs`, and `FABS`.
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
Segmented moves can account for skew points off the edge, while long regular cartesian moves may be off if the skewed destination point is outside movement bounds.
Followup to #8729
Example Configuration.h files are not updated yet. You need to cross
your settings over to the default Configuration.h file in the \Marlin
directory. (UBL_G26_MESH_VALIDATION enablement has moved to a new
location in the file.)
* Change all direct changes of ubl.state.active to
set_bed_leveling_enabled() which handles apply/unapply
leveling to maintain current_position consistency.
Fix invalidation of UBL mesh to invalid unreachable
mesh points as well (delta corners).
Fix UBL_DELTA unapply_leveling logic and when
it gets applied, including fade_height changes.
Add optional M114 D for detailed position information,
disabled from compilation by default (M114_DETAIL).
* UBL_DELTA raw and inline kinematics
* UBL planner fall through fix
* consistent variable names
* Cleanup orphaned code and whitespace changes.
Use _O2.
* compile warnings cleanup
* Remove redundant #ifdef condition
* UBL_DELTA post merge cleanup:
fix fade_height, lost during some previous merge
fix float cx,cy which are not const
move repeated z_cxcy calc line inside loop
style fixes and comment fixes/alignment
* Update ubl_motion.cpp
remove unnecessary parentheses
* Update Conditionals_post.h
Change name of define to more accurate meaning:
UBL_GRANULAR_SEGMENTATION_FOR_CARTESIAN
which is not and should not be the default for cartesians with UBL.
I think I forgot to Sync before I committed last time. Some UBL
changes did not stick.
Also, update the gMax configuaration.h file so other than unique numbers
and settings, it exactly matches the default configuration.h file.