========================================================================================================================================
Motivation:
- Improve notifications of redundancy in the solver (Bonus effect, now the sketcher refuses to add a redundant datum constraint)
- Initialize all solver information, so that it is accurate also in corner cases.
- Provide different return codes for the different solver status/conflicting/redundant/overconstraint (also looking forward for a future refactoring)
Impact:
- Python users that are currently using the return code of solve() for detecting overconstraint/conflicting/solver error, if any, might have to adapt their scripts.
Those who are just checking for zero/non-zero will have to do nothing.
=======================================================
The instructions are shown on the status bar.
press CTRL to allow cross-body link
press ALT to by-pass directional requirements
press CTRL+ALT to allow a cross-body link and by-pass directional requirements
=====================
Carbon copy checks for parallel planes, translated origin and rotated axes, so that it can provide flipping detection when using reverse mappings.
This commit enables you to press CTRL will activating the tool in order to bypass this checks. Without the checks you will get a sketch exactly as the one
you want to copy, there are no corrections at all. This enables you to copy a profile on a new plane at a different direction for example for lofting purposes.
===============================================
New convenience for the user. If the first pole is radius length constraint, then any newly exposed internal geometry is created with equality constraint to the first pole.
This is really convenient in the case the user is working with polynomic bsplines, as any operation involving losing/gaining a pole (for example increase in multiplicity of a knot).
=================================================================
Very important remark:
Until now, points could not be construction = true.
For now on, if a point is construction = true, the solver will ignore it.
Modifying a check in SketchObject::validateExternalLinks() for datums.
Hopefully will not cause trouble.
There is still a problem where if the check fails, all constraints will
be lost!