This version is one of the most important version of the lasts year :champagne: : it brings [arrex](https://github.com/jimy-byerley/arrex) a python module created especially for the needs of the madcad project (even though it is meant for a wider variety of tasks). It provides list-like containers that stores elements in buffers. allowing future big optimizations of madcad.
new features
- Thanks to Gigahawk we now have a headless rendering option (18) ! which means we can perform 3d rendering without having to display a window and manually take a screenshot. The documentation will come soon [here](https://pymadcad.readthedocs.io/en/latest/reference/rendering.html)
- `show()` now accepts an existing scene as argument (It requires the openGL context to be shared)
- All point, face, or edge lists are now of type `typedlist`, allowing very fast conversion (without copy) to/from numpy :fireworks:
breaking changes
- All point, face, or edge lists are now instances of `arrex.typedlist`. This should not be a point it you just used your meshes from the `Mesh` methods, or used its attributes like `Mesh.points` through their list methods because `typedlist` behaves just like `list` in most cases.
There is just few points to consider:
+ If you were using type checks like `isinstance(mesh.points, list)` you should put `typedlist` instead
+ If you were using strided slicing (such as `mesh.points[a:b:step]`) it won't work any more since not yet supported by arrex
+ slicing a `typedlist` doesn't return a copy by a view of the original one (for efficency reasons). If you experience troubles with this change, use `deepcopy()` after slicing
- `ArcCentered(axis, a, b).mesh()` now always return a mesh that reachs `a` and `b` even if the result is not an arc. This helps to have closed oulines even when the solver is set with a bad precision.
fixes
- fixed some rare boolean operation issues