The recent migration from boost::bind to std::bind [1] broke the build
on Mac (Apple clang version 13.0.0 (clang-1300.0.29.30) on macOS-11.7.8).
In all other cases the `boost::bind` was replaced by `std::bind` (among
with the place holders) but in these two spread sheet files
src/Mod/Spreadsheet/Gui/SheetModel.cpp
src/Mod/Spreadsheet/Gui/SpreadsheetView.cpp
the original code only referenced `bind`, which used to get resolved to
`boost::bind` but now raises this error:
> /Users/jonas/src/FreeCAD/FreeCAD-git/src/Mod/Spreadsheet/Gui/SheetModel.cpp:50:36: error: use of undeclared identifier 'bind'; did you mean 'boost::bind'?
> sheet->cellUpdated.connect(bind(&SheetModel::cellUpdated, this, sp::_1));
> ^~~~
> boost::bind
This commit changes this to `std::bind` expicitly, just like it's done in
the other files. This works on my system/compiler.
[1]: 4ffe0c3218
It's not recommended any more to keep the export macro in the PreCompiled.h because many IDEs fail to fetch the export macro and raise a parsing error instead.
Problem description
To display a shape, the ViewProvider creates a mesh of the shape data. The
resolution depends also on the two parameters "Angular Deflection" and
"Deviation" in the View properties. (The values of these parameters are also
updated for all objects when changing these settings in the Preferences
dialog).
Changing the parameters from a high value to a lower value has an immediate
effect on the displayed shape -- for example a circle will be displayed finer
with more line segments. But changing the parameter back to the higher value
(with less resolution) will keep the finer view-mesh instead of calculating a
coarser one. To get back to the coarse view, the object has to be manually
recomputed or the file re-opened.
Solution
I just set the meshing parameter AllowQualityDecrease to True. I guess that
this was not implemented before because this parameter is quite new (introduced
in OCC v7.5 in the year 2020).
* [Base] Add hasExtension for multiple values
* [Gui] Use hasExtension for multiple values
* [Drawing] Use hasExtension for multiple values
* [Fem] Use hasExtension for multiple values
* [Import] Use hasExtension for multiple values
* [Mesh] Use hasExtension for multiple values
* [Part] Use hasExtension for multiple values
* [TechDraw] Use hasExtension for multiple values
The underlying C++ class use an unsigned long to reference neighbour facets. ULONG_MAX is used to indicate a missing neighbour facet.
Since the value of ULONG_MAX is platform dependent and can be confusing in Python the Python wrapper FacetPy now explicitly uses -1 to indicate missing neighbour facets