4. Changelog Version 3.1.0

4.1. itom

Version 3.1.0 (2018-03-05)

(more than 270 commits in itom repository)

  • increased interface from 3.1.0 to 3.2.0

  • added demo plotXY.py to demonstrate how to set xData in a line plot

  • improvements in plot handling, e.g. if itom.plot1, itom.plot2… are used and a className is given, the className is checked to be compatible with the overall plot category (1d, 2d,…). Plot parameter xVec renamed to xData to be compatible to global naming.

  • Instructions how to add OpenSSL to future Windows setups added to SetupChangeLog.txt. About.html adapted.

  • ParamEditorWidget: it is now possible to set this widget into a mode, that changed parameters are not immediately transferred to the plugin but stored in a cache. The user can then read this cache and set the parameters or force the widget to set all cached changes at any desired time. This allows using this widget in configuration dialogs of plugins, too.

  • uiItem (QListWidget) -> methods flags(), setFlags(), checkState() and setCheckState() added as slot, callable via itom.uiItem.call

  • FindXerces.cmake improved to also support VS2015 or higher

  • added methods figure.plot1, figure.plot2, figure.plot25

  • improvements in overall try-catch of application

  • paramEditorWidget: representation of integers can show hex numbers

  • improved GUI of widgetPropHelpDock

  • AutoInterval: takes now double instead of floats (interface increased)

  • itom.dumpButtonsAndMenus() added to return a dictionary with all user-defined menus and toolbars that are currently registered in itom.

  • demo about multi_processing added (worker threads are opened in external command lines)

  • added plot1, plot2 and plot25 python function

  • updated version of PythonAPI_SqlCreator.py

  • compiler fix for VS2017 and GCC in pythonAutoInterval

  • demo added for improved creation of shapes, plotting shapes, moving and rotating shapes… static methods for easier construction added to itom.shape class

  • improvements and fixes in ito::Shape class. Added new methods to rotate and translate shape (relative to its center). Still some work to do…

  • fixes in shape object: the naming of the components of the transform matrix (based on QTransform) are different than usually used. Additionally, some docstrings have been added to clarify this situation. Still more work to do with translation and rotation…

  • itom.shape.copy added to create a deep copy of a shape.

  • fix in startupApplication if python startup script is relative, but current directory is different than itom application directory. Relative startup scripts will always be loaded relatively to itom application directory.

  • itom.setPalette improved and updated in consistency with itom.getPalette

  • itom.getPaletteList and itom.getPalette improved (return values slightly changed, however we assume, that these functions were not used very often until now). Further improvements and code cleanup in color palette editor and color palette manager. Color palette can now be exported and imported in color palette editor.

  • paramEditorWidget: waitCursor if parameter is currently updated and bugfix (partially only for x86 systems)

  • fixes issue 66: matplotlib history buttons are working properly for matplotlib 2.1.0 and fix for matplotlib > 2.1.0

  • rotation angle is displayed in shape info toolbox of plots

  • startup script editors in user management and properties: move up and move down buttons added, relative include with respect to itom application directory added as option

  • added possibility to add startup scripts when creating / editing user (to avoid necessary change of user type, when adding startup script to user which by its profile could not do this).

  • colorMap ‘falseColorIR’ is now the exact inverse of ‘falseColor’

  • PythonAPI_SqlCreator.py / helpTreeDockWidget is now able to include Latex-parsed math images (saved in help databases as binary blobs)

  • matplotlib example updated to be compatible with matplotlib 2.1.0

  • adapted pythonMatlab to newer numpy definitions (at least <= numpy 1.7)

  • partial fixes in matplotlib backend to support matplotlib >= 2.1.0. Fixes issue https://bitbucket.org/itom/designerplugins/issues/14/matplotlibplot-idleevent-removed

  • fix when opening an info page in the helpTreeDockWidget while the help ist currently rendered or loaded from the database.

  • backend_itom.py backward compatible for matplotlib < 2.1

  • Added a paletteEditor to create user definied color palettes

  • improvements in script reference (help viewer) including PythonAPI_SqlCreator.py

  • backend_itom.py: added wait Cursor for Matplotlib 2.1.0…

  • fix in copy constructor of DataObject if transpose is True

  • added instruction to copy OpenSSL ddl-files into the QT/bin folder for the all-in-one-development-setup

  • improvements when typing filter name in helpTreeDockWidget

  • fix in pointCloud.fromXYZ, .fromXYZI and .fromXYZRGBA if type of input dataObjects is not the same for all input objects.

  • changed parameter checking in AddInOrganizer, as some plugins did not load anymore, when the number of mandatory parameters of the interface was different from the plugin ones

  • improvements in PythonAPI_SqlCreator.py

  • fix with user rights for property-dialog, unconsistent assignment for user-rights concerning property-dialog

  • fix if Qt is compiled without SSL support

  • updates in PythonAPI_SqlCreator

  • helpTreeDockWidget: Improvements with initial position after start, improvements when loading updated databases from internet resource…

  • set column span of rows in breakpoint dockwidget, that contain the script filename, only.

  • updated fileDownloader and widgetPropHelpDock to improve the SSL-based access to internet resources

  • added ito::shape::unclosed to set if a shape object (currently only valid for polygons) is currently being created and therefore still ‘opened’.

  • fix for finding python root when pipManager is directly started via command line argument

  • added possibility to set password for users

  • kabsch algorithm improved by version, that can also consider a scaling between two sets of points

  • icons for removing breakpoint(s) improved

  • raises the optional input boxes or dialogs that are shown if a file is dropped onto the workspace.

  • fixes some errors related to wrong usage of Python method PySequence_Fast_GET_ITEM.

  • working on rotation of shapes

  • bugfix AddInManager crashes when loading plugin with malformed parameter list

  • Change compiler flag for c++ exceptions for /EHsc (cmake default) to /EHa, enabling the catching of machine exceptions, e.g. access violation errors

  • changed the default drop behaviour of files in filesystemwidget to moveAction. Copy only if ctrl modifier is pressed (this corresponds to the default explorer behaviour in Windows).

  • improved file move and copy operation (drag&drop or copy/paste) in fileSystemDockWidget.

  • fixes issue #61: error when setting rectMeta to rangeWidget

  • preliminary bugfix for issue #62, bug in dataObject transpose

  • changed itom to use an instance of qitomapplication by default, enabling exception handling also in release build.

  • fix in dialogReplace to also accept caseSensitive versions of the same string (e.g. test and Test) in the comboboxes.

  • FindWindowsSDK.cmake, works with MSVC2017

  • documentation adapted to current set of parameters of itom2dqwtplot

  • made FindITOM_SDK.cmake consistent with ItomBuildMacros.cmake.

  • Shortcut for “Run Selection” changed to F9 (matlab-like). Shortcuts added to context menu of script widget.

  • fix in detection of Visual Studio version in CMake. FindITOM_SDK.cmake and ItomBuildMacros.cmake have to be consistent!

  • adapted creation of itom.bat and itomd.bat to include also VTK directory and boost directory, such that pcltool plugin can be loaded as well

  • fixed typo from last commit, changed behavior of build macro such that, starting from MSVC17 the MSVC_VERSION is used rather than MSVC17

  • adapted build macros for MSVC detection to MSVC_VERSION variable, as starting from VS2017 (probably) no longer MSVCXX variables will get set

  • shape: method contains added to verify of one or multiple points lie within the given shape.

  • alpha values of background colors of plot properties in general plot setting dialog are changeable

  • brushCreatorButton allows optionally changing the alpha value of the color (can be set via property, if desired)

  • added coding keywords to open tex-files for latex docu creation

  • File System sorting properties are saved to the settingsFile and are loaded by starting itom to get the same sorting of the file System again.

  • bugfix when trying to plot np.array of unsupported types via gui: - added better error messages to some conversion methods between PyObject* and ParamBase (this can be further extended to more types than only dataObjects)

  • fixes in navigation bar of FileSystemDockWidget for network drives, starting with \serverdirectory...

  • more checks on cv::Mat when creating dataObject from it, trying to avoid malformed dataObjects

  • bugfix in msvc17 batch build files

  • preparing some stuff for MSVC 2017

  • inserted many buffer-overflow checks in DataObject to avoid things like dataObject([-999999999999999999,2]), which was valid before since the huge negative number was -1 (due to the internal buffer overflow - see Python C-API definitions for this)

  • fixes for matplotlib >= 2.0: savefig and copyToClipboard should not resize the window if a higher dpi is given.

  • fixed wrong (old) signature in getPluginWidget api function and changed some timeout values

  • sort output of uiElement.info() alphabetically before showing in console

  • adaptions in itom_setup_win32/64.iss.in (e.g. new library addinmanager.dll added)

  • Plugin templates update: place the git tag into about string

  • Plugin templates update: place the git tag into about string

  • adaptions in itom_setup_win32/64.iss.in (e.g. new library addinmanager.dll added)

  • Added a aboutInfo function in Python. This returns the about information of a plugin. The about can be used for any additional information (e.g. git hashes).

  • updated German translation

  • added tr function

  • extended “general plot settings” tab in properties by a spin box for the default resolution when copying plots to the clipboard

  • fileUtils added to commonQt library to support loading numbers (little endian, big endian…) from raw byte streams or files

  • qDebugStream for std::cout and std::cerr initialized and moved to MainApplication. qDebugStream is then globally accessible by AppManagement. Created new AbstractApiWidget (analog to AbstractFigure) to be derived by any widget in order to get access to itom api functions. Created pythonLogWidget to show python output and error streams in any gui. In the future, it can even by possible to stop outputs to the command line, if desired and redirect all outputs to individual pythonLogWidgets in any user-defined gui.

  • fix in matplotlib backend to allow properly stopping animated matplotlib figures if the window is closed

  • changes in matplotlib backend to support “copy to clipboard” function of matplotlibPlot >= 2.1.0

  • removed pythonMessageDockWidget and added pythonMessageBox to itomWidgets

  • added legendLabelWidth to generalPlotSettings

  • changes of QStringRef.compare commands to compile itom with QT 5.9.0

  • itom.shape docstrings improved

  • PCL1.8.0 VS2015 bug workaround added to the all-in-one_development_setup description

  • dataObject lineCut function adapted to physical coordinates (double)

  • fix for WorkspaceWidget if several indices of a Python list should be deleted at once.

  • DataObject: enlarged the dStack function. From now on the stacking direction can be specified.

  • added widget for Python Messages

  • DataObject: better detection of unsupported type uint32

  • added ‘copy filename’ to context menu of script tab

  • file name filter mask in fileSystemDockWidget can be filled with semicolon or space separated name list

  • dataObject: added a function called lineCut to take a line cut across a 2D or 3D dataObject

  • added subdirs of numpy_utils to iss files

  • added Python directory for AllInOne installation

  • added files for MSVC2015 compilation

  • FindWindowsSDK CMAKE-File adapted for MSVC2015

  • FindOpenCV.cmake updated for MSVC14

  • added titles to compile batch files to better see the type of compilation (debug, release, x86, x64)

  • updated pathes in doxygen input file, updates URLs in intersphinx_mappings

  • close-method of plugins is only called as direct connection from AddInManager if it is used by an external-DLL and has created its own instance of QApplication. In all other cases, an Auto-connection is used.

  • workaround in matplotlib backend if coordinates with special characters (e.g. due to polar plot -> zoom tool, greek letters) should be displayed

  • AddInManager unittest: scan plugin directory for plugins instead of entire itom directory

  • dataIO.getParam, actuator.getParam: initialize ito::Param value with right type, since this might sometimes be forgotten within the plugin itself.

  • ParamEditorWidget: int-array, double-array and char-array: values are displayed and can be manipulated, if desired

4.2. Plugins

Version 3.1.0 (2018-02-20)

(140 commits in plugins repository)

  • added /LTCG linker flag in windows/release build to remove linker warning

  • added loading of variables from itom CMakeCache, for faster configuration of projects

  • VTK_DIR excluded in load_cache from itom project because without a path this entry can not be changed in the plugin project

  • added all gitVersion.h.in files

  • the git tag is now added to the about string of each plugin. This function in disabled by default and can be enabled by setting the cmake variable BUILD_GIT_TAG.

  • BasicFilters: labeling filter crashes when label touches image boundaries. Hopefully fixed. Probably we need more testing

  • BasicFilters: removed ‘duplicate’ or ghost results from labeling filter

  • DataObjectIO: first draft of import filter for keyence topography images (vk4-format). This filter is not added to the list of filters yet, since it is untested. Final version will follow.

  • DataObjectIO: first running version of ‘loadKeyenceVk4’

  • dslrRemote2: make compile with MSVC17

  • DummyMotor: better handling of array-based parameters

  • DummyMotor: increased default precision in DummyMotor dockWidget, so we can move in steps of nm

  • FFTWFilters: implemented fftshift in axis = 0

  • FFTWFilters: implemented new parameter in fftshift to shift 3D dataobject in the axis 0

  • FFTWFilters: int instead unsigned int for FFTW_FORWARD or FFTW_BACKWARD

  • GenICam: error event checked if timeout occurred in acquire/getVal/copyVal method

  • GenICam: further fixes to support local xml parameter files

  • GenICam: improved handling of case insensitive xml file names

  • GenICam: many improvements, runs with Vistek USB3, mono, cameras and now supports mono12packed data format

  • GenICam: support for zipped xml parameter files

  • Holography. Increasing max field size for Holography filter

  • Holography: more sanity checks on input objects in holography filter

  • OpenCVFilters: adapted possible input parameters of cvMedianBlur to cv 3.3

  • PCLTools: fix for crashes if pointClouds or polygonMeshes are loaded from filenames containing special characters

  • PCLTools: savePolygonMesh: binary or ascii mode can now be chosen and for obj-types the decimal precision

  • PGRFlyCapture: changed MSVC version detection in ptgrey plugin to be equal to the version used within itom, avoiding potential problems with MSVC 2017+

  • PGRFlyCapture: Implemented grab_mode for PtGrey CameraInfo

  • PGRFlyCapture: parameter ‘num_idle_grabs_after_param_change’ added to optionally grab X dump images after parameter changes in order to get a clean new image with the new properties

  • PIHexapodCtrl moved from internals to plugins

  • PmdPico: added PMD Plugin: tested with pmd pico flexx cam… requires royale software (header, lib and dll are not shipped with the plugin)

  • rawimport: added some exif(tool) information to rawImport filter - not tested on linux, probably needs some attention there

  • rawimport: increase waiting time for exifTool

  • rawimport: labeling: handling of empty label list, rawimport: changed file extension for dcraw input

  • SerialIO: fix in dialog to choose, if a getVal should be directly executed after each setVal. This is not always desired, especially if the readline flag is activated.

  • SerialIO: removed restriction to endline characters. From now on any sign can be used…

  • ThorlabsPowerMeter: Updates in Thorlabs PowerMeter, a check for PowerMeter Version is integrated

  • Vistek: sychronization and threading fixes. ROI implemented. For fast acquisitions, plan to insert a small delay before acquiring the next image (this seems to be a problem of the software trigger)

  • Ximea: adapt timeout param to integration time (if timeout < integration_time)

  • Ximea: added API version switch in CMake (3.16, 4.10, newer)

  • Ximea: bug fix Ximea: Serial number of cam is now readable with new api

  • Ximea: if camera returns “not supported” error, plugin does not crash, parameter is set to read only

  • Ximea: if XI_PRM_DRV_VERSION not supported, serial_number parameter should be empty

  • Ximea: make linux plugin ready for api 4.15

  • Ximea: Ximea 4.14 API runs with itom plugin

4.3. Designer Plugins

Version 3.1.0 (2018-02-20)

(more than 120 commits in designerPlugins repository)

  • plotxy: setXObj returns from now on a RetVal… This can later be used to return a RetVal from a plot

  • itom1dqwtplot, itom2dqwtplot: distance of rotation marker to shape is set to 25px instead of a fixed distance in scale coordinates

  • itom1dqwtplot: input parameter xVec renamed to xData to be compatible with itom and the global naming

  • itom1dqwtplot: fixes for C++11 incompatible compilers (like VS2010)

  • plotxy: added multi column mode

  • plotxy: allow one xVector for each row in source dataObject…

  • plotxy: setPicker slot adapted, send current view to work space is now disabled for xy-plots

  • plotxy: valueUnit and description of xVector dominates over source axisUnit and description

  • plotxy: bugfix for picker update when changing complex state

  • plotxy: added hash check for x-vector

  • itom2dqwtplot: color maps can be also selected from submenu of existing colormap action

  • plotxy: do not call drawSeries with coordinates… this leads to lost connections between the points

  • itom1dqwtplot, itom2dqwtplot: further fixes with respect to shapes

  • plotxy: switching between xy and 1d implemented

  • itom1dqwtplot, itom2dqwtplot: improvements for rotating, moving… shapes in plots

  • improvements in shape handling (movement, rotation, resize)… based on new methods of ito::shape class. Still work to do… (will follow soon)

  • itom2dqwtplot: better coordinate representation in valuePicker2d

  • plotxy: first work on switching between xy and normal 1d plot

  • itom1dqwtplot, itom2dqwtplot: improvements when rotating shapes by mouse

  • z-stack cursor is now always using inverse color of current palette

  • itom1dqwtplot, itom2dqwtplot: improvements when rotating shapes by mouse

  • z-stack cursor is now always using inverse color of current palette

  • itom1dqwtplot: bugfix when setting property ‘unitLabelStyle’

  • itom2DQwtPlot value description + unit coding bugfix

  • plotxy: x-vector is now checked in Plot1DWidget

  • VTK_DIR excluded from load_cache because if this entry was not defined by the itom-project, it could not be overwritten in the designPlugins-Project.

  • itom2DQwtPlot axis description + unit coding bugfix

  • Matplotlibplot: added wait Cursor for Matplotlib 2.1.0… Maybe that there are some more fixes needed since IdleEvent class is deprecated in version 2.1…

  • itom1dqwtplot, itom2dqwtplot: added propertyWidget Button to toolbar

  • qwt: implemented fix from upcoming qwt version 6.3

  • Polygon shapes, adding and removing of single points

  • itom1dqwtplot, itom2dqwtplot: changed from flag ‘PolygonOpen’ of ito::shape to member unclosed.

  • itom2dqwtplot: fix when changing the property ‘overlayAlpha’ to 0 or 255.

  • vtk3dvisualizer: VTK errors are printed to text file ‘vtk_errors.txt’ instead of being displayed in popup window, which might crash.

  • itom1dqwtplot, itom2dqwtplot: improved valuePicker for very big or small floating point values

  • started to implement updateDataObject in dataObjectSeriesDataXY.cpp

  • crash when scaling image color span on linecut limits and upper bound was a #nan

  • 1D-Plot, crash when spawning line on maybe strange dataObject

  • added loading of variables from itom CMakeCache, for faster configuration of projects

  • itom2dqwtplot: bugfix concerning new dataChannel property + icons added

  • itom2dqwtplot: for RGBA32 dataObjects, the displayed dataChannel can be chosen (either RGBA as color, or single color channels or gray value from coloured object)

  • fixes issue 12: 2D plot and z-cursor are now working for negative axisScale values

  • itom1dqwtplot, itom2dqwtplot: fixes issue 11. if plot is in an ui, properties that can be set in QtDesigner will not be overwritten by global itom settings

  • itom1dqwtplot: improved placement of new pickers, since they snap to the closest point on a line to the current cursor position within a small x-range. If a picker is active and the key-buttons are pressed, the mouse-cross does not move any more.

  • itom1dqwtplot: set picker at local min/max position within current view implemented (fixes issue #13)

  • DataObjectSeriesData: removed template from header by using explicit template instantiation

  • send current view to Workspace exports complex datatype from 1d plot. It was necessary to realize this template function in the header file.

  • itom1dqwtplot: improvements in picker-handling. If multiple curves are visible, pickers can only switch between visible curves using the up and down buttons. If the min-max-action is clicked and multi curves are visible, a selection dialog appears to ask the user to select one (visible) curve.

  • itom2dqwtplot: fix when applying a line cut with Ctrl-modifier and dataObjects where the size of the x- and y-axis vary very much. In the new version, the right quadrant is checked based on the screen coordinates instead of the scale coordinates.

  • fixed crash of 1D plot, when spawning line on awkward data object

  • itom1dqwtplot: fixes parameterizations for different curve styles, such that baseline is properly displayed if desired.

  • itom1dqwtplot, itom2dqwtplot: fixes issue #10 (crash when exporting canvas to clipboard if any toolbox is visible and undocked and if a shape is highlighted)

  • itom1dqwtplot, itom2dqwtplot: improved text fields in scale-setting dialogs (e.g.scientific notation possible for min/max values of axes)

  • let Itom1DQwtPlot::getLegendLabelWidth() return a value in all cases

  • itom 1D plot adapted to export current to workspace with complex datatypes. In case of a linecut of 2D plot, it does not work!

  • itom1dqwtplot, itom2dqwtplot: “Current to workspace” adapted for complex datatypes. User can choose by a checkBox if the complex datatype should be send to workspace

  • itom1dqwtplot, itom2dqwtplot, matplotlibPlot: the dpi of the “copy to clipboard” method can now be set by one common default value (in the itom property dialog)

  • matplotlibPlot: copy to clipboard (Ctrl+C) implemented with default dpi of 200 (similar to itom1dqwtplot and itom2dqwtplot)

  • itom1dqwtplot, itom2dqwtplot: changed default dpi for “copy to clipboard” to 200 dpi (due to possible import errors in MS Office… if the image is too big). The default dpi should be changeable by the itom figure properties in future releases of itom.

  • Itom2dQwtPlot: bugfix styles will no longer be set to default if the color palette changes

  • itom1dqwtplot, itom2dqwtplot: fix in wheel-based scrolling if one or both axes are logarithmic

  • 1dQwtPlot: added property legendLabelWidth

  • itom2dqwtplot: fix bug if plane > 0 is selected and the complex type is changed, the plane was implicitly reset to the first plane. Now the plane is kept the same.

  • itom1dqwtplot: 12th default line color slightly changed to become a little bit darker

  • itom1dqwtplot: faster plot of very huge dataObjects (e.g. > 1e5 or 1e6 points) in case of ordinary line plots (no steps etc.)

  • itom1dqwtplot: data points outside of current view are not considered any more for data handling (if ClipPolygons attribute is On). This increases plotting speed for big dataObjects and zoomed views.