Release v2.10.0
Release of Broccoli belstar v2.10.0
New Features
- [memory]:
- Added
PoolAllocator
class- Generic pool-allocator for user-defined classes - also supports Eigen alignment
- Added
ImplicitDaryHeap
class- Generalization of a binary heap for arbitrary branching factors
d>1
(d
-ary heap) - Internally uses pool-allocator
- Optimized for maximum performance when used in Dijkstra algorithm
- Supports various optimized helper methods (finding/updating elements, pre-allocation, etc.)
- Generalization of a binary heap for arbitrary branching factors
- Added
DefaultInitializationAllocator
adaptor- Adaptor for allocators to replace value-initialization with default-initialization
-
MultiVector
- Added
reserve
method to allow memory allocation for the underlyingstd::vector
- Added
resize(std::array<size_t, N>, T)
method to allow resizing with copy-construction for elements
- Added
- Added
- [geometry]
- Added
Triangle2D
andTriangle3D
classes- Generic abstraction of a triangle in the two- and three-dimensional space
- Contains various pre-computed auxillary parameters for accelerated distance and intersection tests
- Provides explicit methods for point-triangle distance and (ray-)intersection tests
- Improvements for
SSVDistanceEvaluator
- Improved point-triangle test (matching implementation of
TriangleND
) for speedup
- Improved point-triangle test (matching implementation of
- Added
Non-breaking Changes
- [io]:
-
PNMFileData
now usesDefaultInitializationAllocator
for its raster representations (keeps data uninitialized onresize()
which increases performance in some use cases - e.g. for deserialization of the raster)
-
Bug Fixes
- [hwl]:
- Fixed noexcept signature of defaulted copy constructor: this caused problems for some compiler versions
- Fixes bus variable move constructor. When moved, a new mutex is used. The alternative is wrapping the mutex in a unique_ptr, which reduces cache-coherency though.
- Fixes variable base class constructor calls for mutex/lock class types changed via macros
Breaking Changes
- [hwl]:
- makeDevice() API changes to not adding the device to the bus yet. (old variant wouldn't have worked anyway)