When facemakers were introduced, Solid property of Revolve and Extrude
was made strict: it calls facemaker if Solid==true, and facemaker would
fail if shape being extruded/revolved is a face.
This is fixed by testing there are no faces in source shape prior to
calling facemaker.
Part::FaceMaker::ConstructFromType() could return null pointer if
abstract class type is supplied.
Here, it is fixed by checking for null pointer in facemaker itself,
rather than in every place ConstructFromType is being used.
I didn't know BRepAdaptor_Curve does not take shape orientation
(reverseness) into account.
The commit can break existing projects. If revolution feature was
created with axis linked to reversed edge, and angle span is not 360,
the revolution direction will now swap. The chances of this situation
are pretty low, and revolution supports axis linkage for not long yet.
So I hope it won't cause any noticeable trouble.
--DeepSOIC
Changes on the App side only.
Added two properties:
* AxisLink (accepts an edge - line or arc of circle)
* Symmetric (for distributing the revolution symmetrically in both
directions)
Move from float to double
Further suggestions for float -> double move
Moved Tools2D from float to double
More suggestions for float->double move from Gui subdirectory
Changes to FEM constraint visuals for float->double move
Suggested changes for float -> double move
Suggestions for Part module moving float -> double