external-0.15.0:
- Updated to eigen 3.3.5
- Updated to json-spirit-4.08b (patched 4.08 to fix some gcc warnings)
MIRAenvironment-0.21.0:
- added miratape to the tools listed in documentation main page
- updated documentation of bash tools
- always using "-Wno-ignored-attributes" with precompiled headers
(to avoid massive warning spam when combined with Eigen 3.3 and gcc >= 6)
- streamlined the documentation of MIRA requirements installation, added Ubuntu 18.04/Mint 19
- added definition of macro _FILE_NAME_, similar to standard macro __FILE__
but valid for identifiers (invalid characters are replaced by '_')
MIRABase-0.44.0:
- documentation: fixed example for class versioning in serialization
- MetaSerializer: added CompoundMeta::insertMember() to add member at arbitrary position
- BinaryJSONConverter::JSONToBinary can tolerate missing '@version' elements in JSON data
(will insert a specified default version into the binary stream)
- fixed default values not working for a member using delegate (getter, setter, ...) in its reflection
- added some path utility functions
- STL associative containers now reflect their keys as read-only properties, so these can show up e.g. in PropertyEditor
- security component adapted to support OpenSSL 1.1.0
- compatiblity Eigen 3.3.5: made (previously implicit) conversions from scalar to Eigen::Rotation2D explicit
- limiting the linked OpenCV libs to those really needed: core, imgproc, imgcodecs
(derived packages might need to link additional OpenCV libs themselves)
- added utility macros for generating unique and semi-unique identifiers/strings
- PathFinder::findFile(s)/findDirectory(s) works for absolute path inputs (returns the input argument if it exists)
- added Rect difference operator for 2D case (returning list of remaining rects)
- fixed JSONDeserializer getting knocked off while reading collection with pointer elements
- fixed json::write always doing formatted output, regardless of parameter 'formatted'
- method() declarations in reflection can now include documentation for method's parameters
- RPC methods store a sample JSON for each parameter (which can be used for user help in interactive RPC tools)
(set environment variable MIRA_RPC_METHODS_REFLECT_NO_PARAMS_DOCUMENTATION to disable reflection of new method
members, enabling undisturbed connection with a framework older than this)
- added JSONDefaultPrecision singleton, to control the precision of json::write() (without explicit precision argument)
- serialization format for std::map/multimap changed:
- new standard format is sequence of pairs (items with First/Second members)
- XML(De)Serializer keeps interleaved key/item sequence format for config files backward compatibility
- JSONSerializer can optionally export maps with string keys as objects (keys = member names)
- JSONDeserializer can optionally import maps with string keys from either pair sequences OR objects (by default, it only reads pair sequences)
- fixed transform_cast always erasing covariance when both base type and dimension of source/target differs
- fixed XML(De)Serializer's handling of sequences in compressed format
MIRAFramework-0.41.0:
- updated Tape format and version history documentation
- automatic increase of storage duration when reading older channel data can be disabled
- minor changes to compile with gcc 7.3 (Linux Mint 19)
- compatiblity Eigen 3.3.5: made (previously implicit) conversions from scalar to Eigen::Rotation2D explicit
- added examples for framework-based test setup (verifying channel data) in examples/fw/IntPublisherSubscriber/
- exceptions during ConfigurationLoader plugin loading are caught and displayed, but do not quit the framework
- arbitrary exceptions in Framework initialization are caught and framework is cleanly finished, showing the exception
- fixed TapeRecorder potentially not storing past data until the next update on a recorded channel
- added automatic channel promotion: channel types can be registered to automatically promote from untyped to typed
(e.g. with remote connections or tape playback), based on typename (string), without requiring a typed subscriber
- Framework 'config-string' parameter enforces enclosing <root> tag
- renamed Framework option 'save_processed_config' to 'save-processed-config' for consistency
- ServiceProperty now (de)serializes completely, including the required service interface (as member),
ServiceProperty(const std::string&) constructor is explicit
- parameters are documented for all RPC service methods
- added explicit cast of ChannelReadInterval<T>::const_iterator to ChannelReadInterval<T>::IntervalList::const_iterator to expose iterator of ChannelRead<T>
- added Framework parameter '--default-output-precision' (requiring uint argument) to control precision of JSON floating-point output
- added Authority::waitForChannel()
- removed deprecated methods MicroUnit::onStart/onStop/OnInitialization, Unit::process()
MIRAgui-0.39.0:
- TapePlayerWidget: negative offsets in current/last playing time are treated as 0 for display purposes
- TapeRecorderWidget: Fixed sometimes blocking file dialogs which occured on CentOS 7.5 with Qt 5.9
- EditorPartWindows (Visualizations, PythonEditor....) can be set to be always on top in editor window stack
- Visualization3DView on mouse events determines the device pixel ratio and provides it with the call to the active tool
- fixed wheelEvents zooming in 2DView/3DView also propagating to scroll the parent editor area with QT > 5.5(?)
- VisualizationView: Fixed sometimes blocking file dialogs which occured on CentOS 7.5 with Qt 5.9
- fixed some views opening file selection dialogs on keyboard shortcuts despite not providing any functionality
- TextTrace view: added CSV export (accessible via context menu or Ctrl-P)
- TextTrace view: can optionally display items in timestamp order instead of add order (order of channel callbacks)
- compatiblity Eigen 3.3.5: made (previously implicit) conversions from scalar to Eigen::Rotation2D explicit
- fixed PolygonObject::setColor() to set the polygon outline color (same as before version 0.38.0)
- implemented option to use camera perspective in camera view
- VisualizationTool base class got additional mouse event handlers taking the device pixel ratio (support for high-DPI scaling). Tools which need to
consider the device pixel ratio (e.g. required for relating event coordinates to content of a QGLWidget) must implement these methods.
- Interact tool and tools based on SceneQueryTool (Measure, Localize, Goal, ...) respect device pixel ratio (therefore work with high-DPI scaling)
- fixed a bug that hinders proper hiding of X and Z axis on the change of axis visibility
- ImgWidget: in AutoScale mode, displayed image is re-scaled whenever the widget size changes
- removed use of deprecated (and irrelevant) QStyleOptionViewItemV3
- fixed QSplashScreen continuously calling close() (which was disturbing all tooltips with QT >= 5.6)
- QtUtils::getSaveFileName can optionally enforce that only certain file extensions are selected
- PropertyEditor 'Open' dialog for path (folder/directory) properties now behaves as for file properties
(see 0.38.0) and uses mira FileOpenDialog wrapper
CameraParameters-0.10.0:
- added cylindric panorama image visualization
- getDistortion() returns k3..k6 too (and moved to base class DistortionModel)
- add versioning for DistortionParameters::reflect, k3...k6 only reflected with version >= 2
- fix frustum visibility when leaving 'Camera View'
- added orientation of cylinder in camera coordinates to PanoramaCameraIntrinsic which formerly has been a property of the OmniToPanoramaUnit
- added camera view projection matrix update on intrinsic change
- added type registrations for new auto channel promote feature
CommonCodecs-0.9.4:
- fixed encoding error message of PNG codec
CommonVisualization-0.19.1:
- improved display of TransformationTree node poses in TextView
- improved FramePublisher
- added several parameters like text and axis properties to control the visualization of the transform tree
- PathVisualization can control range of points (first/last index) to be visible
GraphVisualization-0.11.1:
- Fixed sometimes blocking file dialog which occured on CentOS 7.5 with Qt 5.9
Localization-0.13.0:
- parameters are documented for all RPC service methods
Navigation-0.28.0:
- SubTask calls itemName() in reflect() to show subtask (class) names in property editor
- added type registrations for new auto channel promote feature
- parameters are documented for all RPC service methods
PlotVisualization-0.21.2:
- SubTask calls itemName() in reflect() to show subtask (class) names in property editor
- added type registrations for new auto channel promote feature
- parameters are documented for all RPC service methods
RigidModel-0.19.0:
- added method CollisionTest::decayShape
- Marker module: added AxesMarker
- added type registrations for new auto channel promote feature
- parameters are documented for all RPC service methods
RobotDataTypes-0.23.0:
- prevent selection of invalid colormaps in various visualizations requiring continuous colormaps
- added type registrations for new auto channel promote feature
- DriveWidget monitors Motorstop status and highlights an active Motorstop in its GUI
- parameters are documented for all RPC service methods
miracenter-0.22.0:
- TapePlayerView removes non-existant files from its list of opened tapes
- Added option to authority view to show channel namespaces relative to associated authority
- Fixed sometimes blocking file dialogs which occured on CentOS 7.5 with Qt 5.9
- RPC View and RPC Console show service method's parameter names and descriptions (if declared)
- RPC Console shows a sample call for each method including parameter notation
- AuthorityView includes RPC parameter documentation in generated unit documentations
mirainspect-0.11.1:
- "rpc info" shows service method's parameter names and descriptions (if declared)
and a sample call for each method including parameter notation
mirapackage-0.22.0:
- QtFtp: now building out of source tree to avoid error with Qt 5.9 on CentOS-7.5
- Quazip: adapted patch to work with Qt 5.9 on CentOS-7.5
- updated to svn 1.9, replacing all deprecated API functions by current versions
miratape-0.15.0:
- fixed the 'copy --retype' option having no effect at all, and made it support multiple type changes in one call
- added 'copy --rename' option to enable renaming of channels
- added 'copy --addversion' option to retroactively add a '@version' member to all occurences of a
certain class in the serialized data (if meta-serialized and reversible binaryToJSON/JSONToBinary)
- 'writeJSON' will not exit on missing metadata, just output an error and continue
- added 'play --play_also' option that allows simultaneous playplack of multiple tapefiles (as in MIRACenter)
mirawizard-0.10.0:
- missing parent directory cmake files are created
- improved/updated templates
- added Python Unit to creatable components (running it will require the MIRA Python toolbox!)