Skip to content

Release v2.10.0

Philipp Seiwald requested to merge dev-v2 into belstar

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.)
    • Added DefaultInitializationAllocator adaptor
      • Adaptor for allocators to replace value-initialization with default-initialization
    • MultiVector
      • Added reserve method to allow memory allocation for the underlying std::vector
      • Added resize(std::array<size_t, N>, T) method to allow resizing with copy-construction for elements
  • [geometry]
    • Added Triangle2D and Triangle3D 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

Non-breaking Changes

  • [io]:
    • PNMFileData now uses DefaultInitializationAllocator for its raster representations (keeps data uninitialized on resize() 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)

Merge request reports