Arc segments with extremely large radius compared to chord length can
cause floating-point precision issues in simulation. This change
introduces ARC_LINEARIZATION_THRESHOLD to treat such arcs as linear,
improving numerical stability in the simulator.
The following g-code was causing erractic behavior in the simulator due
to large-radius arcs:
```
G2 I88775.835760 J-1936991.545892 K0.000000 X102.063107 Y100.102815 Z12.700001
```
src/Mod/CAM/PathSimulator/AppGL/MillPathSegment.cpp:
- Added ARC_LINEARIZATION_THRESHOLD constant
- Updated arc motion detection to treat large-radius arcs as linear
- Improved handling of arc vs. linear segment classification
All of PathSimulator uses floats, rather than doubles: to prevent
compiler warnings about truncation, explicitly use the single-precision
version of the standard pi constant.
* Initial opengl test window
* added core files
* some fixes for code comparability with other platforms
* more compatibility cleanup
* add missing opengl libraries
* Basic simulation window works!
* try using different define
* fix wrapper for better compatibility
* Gui is now operational
* Finally SIM works on actual freecad models
* support drill commands
* cleanup python script and add tool profile generation
* Now using actual tools specified in the operation.
* support mouse wheel and freecad-style 3d navigation
* Support accuracy gauge
* remove endsimulation reference
* show simulation speed indicator
* apply clang-format
* apply changes suggested by code review
* gui items are loaded via QT resource system instead of hard coded
* use vector instead of pointer to pass tool profile points
* Fix some more formatting errors.