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 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::const_iterator to ChannelReadInterval::IntervalList::const_iterator to expose iterator of ChannelRead - 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: - Fixed sometimes blocking file dialog which occured on CentOS 7.5 with Qt 5.9 - Added Ctrl-R shortcut for reset zoom in Plot (Curve) View - Added image export (on Ctrl+P) in Plot View 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!)