=====================================
- Avoid using EditCurve for the double use of storing the pole positions and the last mouse position. Split into individual vector for poles and previous cursor position (with appropriate names).
- Store all pole geoids to better show the intend of the code.
- Avoid indexing when referring the last inserted value of a std::vector, use back() instead.
- Encapsulate code to draw the bspline polygon and the cursor text to the given position. This allow to select the right function for every case, while avoiding unclear names, such as "mousemove()".
- Refactor code to finish command, to avoid calling unclear names such as "releasebutton" to better show the intend of the function call.
- Ensure deleted pole does not appear anymore in the scenograph.
Git has issues with this file telling me it is corrupted and its file ending is wrong (in Git lowercase, in the file uppercase).
The attempt is to just to save save it with FC 0.20.
Preselection is sometimes not updated under some circumstances
1. when deleting an object through python;
2. before autoconstraint when deleting previous pole in bspline creation mode.
When the preselected curve is the deleted object, segfault/crash can happen.
Current V-bit totally hangs FC when cutting edge height is zero. Tip diameter of zero also causes errors.
These two tool shapes add 1um offsets to various dimensions to prevent user entered parameters from inducing zero dimensions which make the solver barf.
The rotational geometry has also been simplified.
Some are non critical but tip diam increment is a work around. To be rigorous, the fixed value such ideally be relative to some dimension of the job, not the arbitrary constant. Hopefully 1um will be suitable for most FC applications unless someone is doing uv lithography masks ;)
https://forum.freecadweb.org/viewtopic.php?f=15&t=54880&p=479739#p479739
This replaces earlier PR where these files were not uploaded.
https://github.com/FreeCAD/FreeCAD/pull/4491