===============================================
This commit changes the behaviour of expose internal geometry for bsplines and makes it converge with the implementation for other complex forms.
This functionality now does not introduce constraints (the DoF is not affected by its execution).
BSplines, when created, are still created as polynomic. However, exposing previously deleted or otherwise hidden (increase of degree) poles does not
constraint them.
why?
While a priori the old behaviour is advantageous for the user in many situations, it severely breaks NURBS-ized shapes and gets in the way of bsplines after
increasing the degree of the bspline.
Greatly shortens the number of sequenses needed if you replace SelVertex
and SelRoot with SelVertexOrRoot and similar for the edges/axes.
For e.g. implemented sequences for perpendicular dropped from the older
25 to now 6.
===============================================================
The implementation of BSpline differs from previous complex forms.
The BSpline is created constraint to be polynomic (non-rational), with radius of first circle and equality constraints.
Hide unused internal geometry considers as unused the following constraints:
- A pole which has equality constraints with another pole of the same bspline
- Any radius constraint on a pole
Deletion of a BSpline will delete the internal geometry that is unused as per the definition above.
If there is another constraint (other than the Internal alignment constraint) it will leave the internal geometry having such constraint undeleted.
A couple of combinations, endpoint-endpoint and endpoint-curve, do not
work, and the latter probably should not work ever since endpoint-curve-
curve exists.
Parallel constraints can also be made by select-then-constraint way.
Preliminary preparations for perpendicular constraint making mode.
Selection actually works when for constraints involving multiple
elements few of them are selected (thanks abdullah).
etc.