Releases: MRPT/mrpt
Releases · MRPT/mrpt
Release of v2.7.0
Version 2.7.0: Released March 4th, 2023
- Changes in libraries:
- \ref mrpt_gui_grp
- All OpenGL viewports: pan is now also achieved by pressing the mouse middle button (wheel) + dragging, for similarity with many other CAD UIs.
- \ref mrpt_opengl_grp
- Shadows can now be rendered for directional lights. See mrpt::opengl::Viewport::enableShadowCasting()
- These class names have been shortened for ease of use (typedefs with the older names still exist for backwards compatibility, including deserialization of old files):
- mrpt::opengl::COpenGLScene ==> mrpt::opengl::Scene
- mrpt::opengl::COpenGLViewport ==> mrpt::opengl::Viewport
- New class mrpt::opengl::CSkyBox for rendering "3D background" as sky boxes. Refer to example \ref opengl_skybox_example
- OpenGL shaders: more rational use of GLSL precision specifiers: highp for positions, lowp for colors.
- New flag mrpt::opengl::CFBORender::Parameters::raw_depth
- mrpt::opengl::FrameBuffer: Remove stencil bit for faster off-screen rendering.
- New class mrpt::opengl::OpenGLDepth2LinearLUTs
- mrpt::opengl::CMesh now supports texture wrapping over the mesh extension.
- Texture handling refactored into a new class mrpt::opengl::Texture
- Enabled GL MipMap texture generation.
- Triangles shaders now also account for shininess of material to generate specular reflections. See new method mrpt::opengl::CRenderizable::materialShininess()
- mrpt::opengl::TLightParameters has been modified to make it more consistent: just one light color and three floats (diffuse, ambient, specular).
- mrpt::opengl::CRenderizable base methods are now 100% thread-safe. getPoseRef() method has been removed since it was not safe.
- \ref mrpt_gui_grp
- BUG FIXES:
- Fix unrealistic odometry error simulation in mrpt::kinematics::CVehicleSimulVirtualBase (it affected the app GridmapNavSimul).
Release of v2.6.0
Version 2.6.0: Released January 12th, 2023
- Changes in libraries:
- \ref mrpt_math_grp
- Remove unused header:
<mrpt/math/bits_math.h>
- Remove unused header:
- \ref mrpt_opengl_grp
- New method mrpt::opengl::CAssimpModel::texturedObjects()
- \ref mrpt_math_grp
- BUG FIXES:
- Fix wrong evaluation of the pivot point for the angular threshold parameters in ICP (Closes #1264)
Release of v2.5.8
Version 2.5.8: Released January 7th, 2023
- Changes in libraries:
- \ref mrpt_core_grp
- Move the
_deg
literal to a new namespace mrpt::literals to allow finer-grainedusing namespace mrpt::literals;
instead ofusing namespace mrpt;
. This change is backwards compatible, no user code change required, but recommended.
- Move the
- \ref mrpt_expr_grp
- New mrpt::expr::CRuntimeCompiledExpression::register_function() to allow user-defined functions in runtime-compiled formulas.
- \ref mrpt_core_grp
Release of v2.5.7
Version 2.5.7: Released November 25th, 2022
- Changes in applications:
- navlog-viewer:
- It now shows custom visualization artifacts stored in the new field mrpt::nav::CLogFileRecord::visuals.
- navlog-viewer:
- Changes in libraries:
- Upgrade embedded version of nanoflann to current
master
(2022-Nov-18). - \ref mrpt_maps_grp
- mrpt::math::KDTreeCapable updated to build against nanoflann v1.5.0
- \ref mrpt_system_grp
- New method mrpt::system::COutputLogger::setVerbosityLevelForCallbacks()
- Upgrade embedded version of nanoflann to current
- General build changes:
- clang-format: enforce and upgraded to use clang-format-11.
- BUG FIXES:
- Fix crash if calling mrpt::opengl::CSetOfObjects::getByName() with null pointers as children objects.
- Fix opengl resources leak if mrpt::opengl::CRenderizableShaderTexturedTriangles instance is destroyed from a thread different than the one used to render.
Release of v2.5.6
Version 2.5.6: Released November 12th, 2022
- Changes in libraries:
- \ref mrpt_containers_grp
- New template class mrpt::containers::PerThreadDataHolder
- \ref mrpt_opengl_grp
- The rendering pipeline (mrpt::opengl::enqueueForRendering) is now more optimized to cull earlier, achieving faster rendering of large and complex 3D scenes.
- All opengl shaders, objects, and renderers are now multithread capable, including rendering several FBOs in different threads.
- mrpt::opengl::CFBORender constructor now takes a parameters struct making it much more configurable.
- mrpt::opengl::CAssimpModel now supports (de)serializing, storing itself in the Assimp binary format (
assbin
). - New opengl shaders: one set for light-enabled objects and another for objects without diffuse reflection effects (to avoid conditionals inside the GPU shader programs).
- \ref mrpt_gui_grp
- mrpt::gui OpenGL canvas windows and components no longer have a background color property. It is now always handled by the mrpt::opengl::COpenGLViewport to avoid duplicated functionalities.
- \ref mrpt_system_grp
- These functions are now thread-safe if built in a system with the
localtime_r()
variant oflocaltime()
:- mrpt::system::timestampToParts()
- mrpt::system::dateTimeLocalToString()
- mrpt::system::timeLocalToString()
- These functions are now thread-safe if built in a system with the
- \ref mrpt_containers_grp
- Build system:
- Provide CMAKE_BUILD_TYPES
SanitizeThread
andSanitizeAddress
. - Fix build against latest (Debian/sid) libglut-dev.
- Provide CMAKE_BUILD_TYPES
- BUG FIXES:
- Fix build against latest version of EMSDK (Emscripten).
- Fix wrong scaling of samples in mrpt::random::CRandomGenerator::drawGaussianMultivariate() and mrpt::random::CRandomGenerator::drawGaussianMultivariateMany()
- mrpt::opengl::CSetOfTexturedTriangles was not automatically registered in the mrpt::rtti system
Release of v2.5.5
Version 2.5.5: Released October 19th, 2022
- Changes in applications:
- prg-configurator:
- A maximum trajectory time can be specified now for rendering PTGs.
- New CLI arguments
--ini
,--ini-section
to automate loading custom INI files.
- prg-configurator:
- Changes in libraries:
- \ref mrpt_containers_grp
- mrpt::container::yaml:
- Clearer error messages when an invalid type conversion is requested.
- It now does not throw internal exceptions when trying to convert strings to bool.
- mrpt::container::yaml:
- \ref mrpt_imgs_grp
- mrpt::img::CImage::filledRectangle() is now implemented using the fast opencv draw function instead of the slow mrpt::img::CCanvas default base implementation.
- \ref mrpt_math_grp
- Correct copyright notes for embedded version of the CSparse sources (PR #1255).
- \ref mrpt_typemeta_grp
- mrpt::typemeta::TEnumType<> on invalid names, it now prints all valid known enum names in its exception error message.
- \ref mrpt_containers_grp
Release of v2.5.4
Version 2.5.4: Released September 24th, 2022
- Changes in libraries:
- \ref mrpt_opengl_grp
- mrpt::opengl::CFBORender is now faster, using a LUT for converting from logarithmic to linear depth values.
- \ref mrpt_ros1bridge_grp
- Implemented missing mrpt::ros1bridge::toROS() for point clouds.
- \ref mrpt_ros2bridge_grp
- Implemented missing mrpt::ros2bridge::toROS() for point clouds.
- \ref mrpt_opengl_grp
- BUG FIXES:
- Fix build on hppa for parisc architecture too (not supported flag
-mtune=native
) - nanogui: Fix mismatched memory allocator/free in serialization code.
- Fix potential segfault in RawLogViewer while building the tree view.
- Fix build on hppa for parisc architecture too (not supported flag
Release of v2.5.3
Version 2.5.3: Released September 6th, 2022
- Changes in libraries:
- \ref mrpt_gui_grp
- nanogui::mainloop() (and mrpt::gui::CDisplayWindowGUI()) now allows defining a minimum period for calls to user callback functions via a new second optional parameter.
- \ref mrpt_obs_grp
- Not all
CObservation*
classes were declared in<mrpt/obs/obs_frwds.h>
. Now it is corrected.
- Not all
- \ref mrpt_gui_grp
- BUG FIXES:
- Fix build on hppa (parisc64) architecture (not supported flag
-mtune=native
)
- Fix build on hppa (parisc64) architecture (not supported flag
Release of v2.5.2
Version 2.5.2: Released August 30th, 2022
- BUG FIXES:
- mrpt::math::MatrixBase::eig_symmetric() now is ensured not to return negative eigenvalues due to numerical innacuracies in some platforms (i386).
- mrpt::maps::COccupancyGridMap2D::getAsPointCloud() did not return the outermost cells as obstacles.
- Fix unit test errors when compiling with LTO (Closes Debian bug #1015550)
Release of v2.5.1
Version 2.5.1: Released August 4th, 2022
- Changes in applications:
- RawLogViewer:
- Bold points when selecting a sensor in the timeline UI.
- RawLogViewer:
- Changes in libraries:
- Embedded nanoflann version upgraded to v1.4.3
- BUG FIXES:
- Fix regression: mrpt::opengl::CAssimpModel may fail to resolve texture relative paths.
- mrpt::opengl::CMesh was implementing texture coordinates flipping (u,v) wrt documented behavior.
- Fix
static_assert()
failure in CTicTac when building with latest emscripten clang compiler. - Fix regression: yaml parsing boolean values may throw an exception inside
std::stoi()
.