As reported by @donovaly, if you try to move a pipe that does not have
an auxilliary spine, the code segfaults. This commit adds a check to ensure
that not only does the property exist (which in this case it always does), but
also that it does not contain a null. That is a valid value for the property
to have, but cannot be itself interrogated for moveability by the isFeatureMovable
recursive call. This fix is also applied to the other similar conditions in that
function to ensure they never yield the same segmentation fault.
Forums topic: https://forum.freecadweb.org/viewtopic.php?p=479388#p479388
===========================================================================================================
OCCT forces weights of non-rationa Bsplines to be 1.0
In the presence of non-unitary weight constraints, the weight representation (constraint) has a different radius
than the circle.
This commit fixes this behaviour, by forcing the circle to match the weight constraint.
The information layer still reports OCCT weights being 1.0, but the visual artifact is fixed.
================================================
If during assignment of weights (during the for loop iteratively setting the poles) all weights
become (temporarily) equal even though weights does not have equal values
OCCT will convert all the weights (the already assigned and those not yet assigned)
to 1.0 (nonrational b-splines have 1.0 weights). This may lead to the assignment of wrong
of weight values.
The work-around is to temporarily set the last weight to be assigned to a value different from
the current value and the to-be-assigned value for the weight at position last-to-be-assign but one.
Fixes:
https://forum.freecadweb.org/viewtopic.php?p=478701#p478702
All of the TechDraw ISO7200_Pep templates so that the DOCUMENT_TYPE area is
fully editable, allowing the user to overwrite the default contents entirely
instead of just adding to it.
This commit simply demystifies the warning that most users will see when they boot in to FreeCAD "Couldn't connect to spacenav daemon." by adding
"Please ignore if you don't have a spacemouse."
Previously Subtractive loft would create a shape if there is no base
object. This is because the code is shared with Additive Loft, where
that is the right thing to do. Now we check for this, and return error
if there is nothing to subtract from.