Uses new material system for appearance
Each feature object now has a property called ShapeMaterial that
describes its physical properties. If it has a shape, it has a
material.
The ShapeColor attribute is replaced by a ShapeAppearance attribute.
This is a material list that describes all appearance properties, not
just diffuse color. As a list in can be used for all elements of a
shape, such as edges and faces.
A new widget is provided to allow the user to select materials in a
consistent fashion. It can also launch the material editor with its
more advanced capabilities.
Some notes:
Earlier, when adding to the list `connected_to`. the numbers are added in order
from `range(len(groups)`, so we are already in order and every `i_group` is unique.
Since Py3.11 the methods names __setstate__ and __getstate__ conflict with the method names added to the object class.
Thus rename them to 'loads' and 'dumps'
This includes `BooleanFragments`, `Slice to compound`,
`Slice apart`, and `Boolean XOR`.
Clean up the tooltips of properties and commands.
Clean up the spacing of the code so that lines aren't very long.
The path to the icons is added to `AppPartGui.cpp`
using `Gui::BitmapFactory().addPath()`, so the icons are found
automatically in their new directories.
to make the BOPTools available in python3 the way to import these tools had to be changed:
old: ```from Part import BOPTools``` -> new: ```import BOPTools```
this is also changed for python2