A new MIRA release is available.

  - satisfy CMake policy CMP00012 where IF() only recognizes numbers and boolean constants.
  - slightly updated compiler flags
  - added relwithdebinfo target to create release builds with debug information
  - unified names of Boost libraries
  - added support for building on Windows 64 bit
  - added support for using a installed binary version of OpenCV by using the environment variable OPENCV_HOME

  - Updated to eigen 3.1.2

MIRABase 0.16.0:
  - added NormalRandomGenerator to draw samples from uni- and multivariate normal distributions
  - added RandomGenerator template to easily use the boost::random framework
  - renamed the random singleton to RandomGeneratorSingleton
  - XMLDomModifier now supports <if_exists env='name'> to check if environment variable is set
  - XMLDomModifier now supports to overwrite variables via <var varname='value' overwrite='true'/>
  - boost::tuple is no longer reflected as collection
  - removed calls of deprecated boost asio methods
  - fixed bug in binary serialization of boost::optional
  - added ScopedAccess class
  - fixed missing thread synchronization in Profiler
  - added Spinlock class
  - added StripedStorage class for storing data reliable
  - added MetaSerializer and binary to JSON as well as JSON to binary converter based on meta information
  - adapted to compile with boost 1.48 and newer
  - added MIRA_PROFILE_SCOPE macro
  - fixed #461,#463
  - added remove method to XMLDom::data_iterator
  - unified usage of boost::shared_ptr instead of std::shared_ptr
  - removed boost patches for CLang compiler
  - added support for getter and setter with lambda functions
  - reduced compile times and made compile with latest compiler versions
  - added callback mechanism to LogCore::setSeverityLevel that informs listeners when the user changed the log level
  - added more detailed memory information for Linux; computation of memory stats is now done using smaps
  - added HasAssign type trait to test whether a class has a certain assignment operator
  - added IsDefaultConstructible type trait to check, if a class is default constructible
  - PoolAllocator is no longer copyable but now supports move semantics
  - refactored Stamped template class to reduce code duplication and to allow easy copying of the data header
  - removed unnecessary vector alignment for 2D poses and added type trait for vector alignment of poses
  - fixed bug with typename and long
  - added choleskyInverse() for computing the inverse of self-adjoint matrices
  - added MIRA_DEFINE_EXCEPTION macro for easy definition of new exception types
  - fixed typeName for pointers on Win64 (MSVC x64 adds __ptr64 qualifier to pointers)
  - fixed #511 (boost foreach problem with boost >= 1.48).
  - fixed bug in covariance propagation of 2D RigidTransformCov

  - fixed several issues that led to segfaults when connections to remote frameworks were closed
  - writing data with an invalid timestamp now raises an exception
  - also exchange meta information when exchanging channels between frameworks
  - create meta information automatically for all members of a Unit
  - added functions that return mapping of local to global channel names to Authority
  - parameter preparer now also supports creation of parameters via name attribute and allows to overwrite content
  - only synchronize time between frameworks if frameworks run on different hosts
  - added Channel::read() method to read slots with a given sequence ID
  - reduced compilation time when using getTransform, publishTransform, publishTransformIndirect
  - TapePlayer::load now supports a namespace prefix, that allows to inject played back channels into other namespaces
  - TapePlayer now allows to retrieve error message of errors occurred at play back
  - Channel information in tapes now also contain type meta to restore data from binary

  - added namespace prefix line edit to TapeFileDialog
  - TapeFileDialog now shows time of recording in local time
  - Workbench: Fixed bug when restoring in maximized mode.
  - timestamps in TextView are now shown in local time
  - 2D View now also allows alternative zooming mode (middle or left and right mouse button pressed)
  - made compile with latest compiler versions
  - allowing to pass parent of property editor in Visualization3DContainer::getPropertyEditor()
  - fixed tutorials
  - OgreWidget now takes the OGRE_HOME environment variable into account when looking for the OpenGL plugin
  - added FlowLayout
  - minor fix in parent handling of OgreWidgetEx
  - added OgreUtils::setPosition and OgreUtils::setOrientation

  - fixed alignment issue in PathVisualization
  - added property editor delegates for Color::RGB and Color::RGBA
  - made compile with gcc 4.7.x
  - PathVisualization now uses LineStripObject
  - made compile with latest compiler versions

  - added orientation to person task parameter to describe desired person
    position relative to the robot in polar coordinates
  - current task can now be stopped by right clicking with the goal tool

  - made compile with gcc 4.7.x
  - added export to CSV functionality
  - now updating legend by channel name + member to plot
  - added grid, panning, zooming and magnifying functionality to plot
  - plotted timestamps are now shown in local time

  - Fixed calculation of inner radius for Footprint
  - Fixed visible property for collision bounding box visualization of RigidModel
  - Removed unneeded cast operators

  - moved the methods for computing the probabilistic motion model to a separate class: DifferentialProbabilisticMotionModel
  - added a Gaussian motion model, that represents the probability using a normal distribution
  - fixed DifferentialRobotModel::localKinematics: the computation was imprecise when driving right-hand corners

  - LogView: Application-wide log level can now be changed
  - LogView: Displayed time is now in local time zone
  - AuthorityView: fixed unhandeled exceptions that led to an abnormal program termination when the connections to remote frameworks were closed
  - AuthorityView: added Button for generating documentation of units
  - AuthorityView: fixed update of start/stop button
  - Show MIRACenter specific command line options when using --help
  - Added command line option --default-workspace
  - Removed visualization of virtual memory in the status bar. On Linux: displaying the amount of heap memory now
  - Added Memory Monitor View that shows all memory blocks used by the process and allows to trace the origin of pointers (Linux only)
  - Increased performance of Thread Monitor and fixed sorting bug
  - Ported Billboard shaders to GLSL to support systems without Ogre-Cg plugin
  - CaptureView now supports several image formats

  - using meta data in tapes to create tooltip text from data in default renderer

  - Fixed memory leak
  - Added namespace prefix parameter when loading tapes
  - Added pause control mode, that allows to specify a channel that controls whether the player is in pause mode or playing
  - Show error message when play back of a tape leads to an error

  - Fixed package file parsing bug with recent boost version
  - Fixed rendering of < and > in package change logs

  - Made play option work again
  - Adapted to changes in Tape (store meta information of channel type in tape)
  - removed retype option from copy since it is no longer supported
  - info shows time of recording in local time
  - play now supports option to close miratape when play back is finished
  - added extractVideo with support for video output plugins

  - Renamed build.bat to make.bat to be more Linux compatible on Windows

Additional information