Refactoring #1766

Updated by herck over 3 years ago

A simple particle would then contain a shape and a material. Internally, the correct form factors, which still exist, would be generated during a computation.
This would accomplish:
* Clearer separation between particles' description and the underlying computations (as is mostly the case for all other objects)
* No need for onChange(), since the shapes would be purely defined by their constructor arguments
* The shape classes could be shared inside the GUI, allowing an unified generation of vertices for 3D view and some calculations
* This shared description would then also allow easier implementation of support for 3D files describing a certain shape
* Custom form factors can then also indicate their real space sizes to determine if they cross layer interfaces

For custom form factors in Python, a specific shape could be used that accepts a (overriden) form factor. This would also be the approach in case of shapes defined by some 3D file format.

Related to #1567.