=====================================================================
- Refactor scenograph creation to enable local update
- Support to perform a local update
=================================
This is a property (intended for ViewProviderSketch), containing a list of visual layer configurations.
This property enables to define and serialise the configuration of visual layers, as well as reacting to
changes to it.
=====================
New class allowing to define a VisualLayer:
- whether it is visible or not.
- the line width to be used by coin for this layer.
- the line pattern to be used by coin for this layer.
==============================================================================
In the Layers implementation there are User Layers, which have no direct impact on visualisation,
and allow to group conceptually related geometry into logical entities, and Visual Layers, which
define how geometries are visualised (or even whether they are visualised or not).
For User Layers, SketchObject is responsible for the definition of the layers, and SketcherGeometryExtension
is responsible for indicating the User Layer to which a geometry belongs (via a LayerId field).
For Visual Layers, ViewProviderSketch is responsible for the definition of the visual layers, and
ViewProviderSketchGeometryExtension is responsible for indicating the visual layer to which a geometry belongs.
With this commit, ViewProviderSketchGeometryExtension:
- takes over the responsibility of carrying a visual layer Id.
- is extended to be persistent and serialise the Id.
- is extended to be accesible from Python.
* If the compound contains solids then other shape types like faces or edges are ignored
* If the compound contains no solids but faces then edges are ignored
* If the compound contains no faces but edges then vertexes are ignored
This PR improves `CONTRIBUTING.md` by replacing some instances of the term `Platform` with `GitHub` for the following reasons:
* This was unnecessary legalese which made the document harder to comprehend.
* Fixes a few ambiguous usages of the term:
* In one usage there is ambiguity if there is a platform called "Platform".
* Ambiguous with other usages of the word when referring to the runtime platform.
* Fixes one incorrect usage of the term, where reference to `"Platform"` was intended to refer to any other platform OTHER THAN `GitHub` or `"the Platform"`.