This patch (partially) addresses T88727. When the sign of the boolean operands' transform differs, the output mesh is not cut properly, i.e. faces that should not be part of the output mesh are not removed from the final result. This patch fixes this bug in case the operation cannot be solved with winding numbers and raycasting is used as a fallback.
Incorrect:
Fixed:
Testcase:
The check of signedness is done very early. As a consequence, the result needs to be passed along through several calls. Inside the raycast callback, the normals/parities of the respective faces are flipped, yielding correct results for the following removal of faces.
This approach of course far from ideal, especially as this also breaks the current interface of boolean_mesh. Ideally, a better solution would be contained to the operations core code and would also include the regular operations in case winding numbers are used. I would appreciate some feedback, comments and insights on less intrusive/more general/better approaches.

