SmartVector + SplineSplitter
Added SmartVector
class.
New Features
- [memory]:
- Added
SmartVector
class as hybrid implementation ofstd::array
andstd::vector
(uses a pre-allocated stack buffer for efficiency and a dynamically allocated heap buffer to extend the stack buffer (for flexibility)).
- Added
Non-Breaking Changes
- [core]:
-
PlatformHelpers
: fixed small bug in comment (namespace transfer fromam2b
tobroccoli
)
-
- [curve]:
-
QuaternionBSplineCurve
now internally usesSmartVector
for evaluation (increases performance). However, the interface remains the same. - Added
PolynomialSplineSplitter
andPolynomialTrajectorySplitter
classes for improved convenience
-
Breaking Changes
- [core]:
-
math::faaDiBrunoTuples
andmath::generalLeibnizTuples
now useSmartVector
as output for better performance in most cases.
-
- [geometry]:
- The
Polygon2D
class now uses the newSmartVector
for the list of vertices.Polygon2D
thus is now a template class. This way we can avoid memory fragmentation through allocating many smallEigen::Vector2D
elements on the heap (if we know the maximum vertex count at compile time). - The XML encoding of the
Polygon2D
class now uses the correct tagPolygon2D
instead ofPolygon
.
- The
Edited by Philipp Seiwald