MeVisLab Release Notes
This document lists the most relevant changes, additions and fixes
provided by the latest MeVisLab releases. For more detailed information
on recent changes, the following documents are available:
Version 2.0 (2009-05-08)
Common Enhancements / Fixes (MeVisLab)
- New MeVisLab package structure:
- MeVisLab Modules are now managed in Packages.
- All Tools work on the new package structure.
- New MeVisLab Tool Runner that facilitates daily developer tasks:
- Building documentation:
- doxygen for source code.
- DocBook for HTML and PDF documentation.
- Generating project files:
- .vcproj for Windows compilers (VC8 / VC9).
- .xcodeproj for Mac OS X Xcode (instead of using the dedicated MeVisLabProjectGenerator).
- Makefile for Linux gcc compilers.
- Building of projects:
- Supports IncrediBuild on Windows platforms.
- Supports the analysis of project dependencies and the building of multiple projects in the correct order.
- Revamped network rendering:
- New module colors (distinguishable for all types of color-blindnesses).
- Advanced selection highlighting:
- Selected modules, attached connections and attached modules are visualized.
- Hold SPACE to let the highlighting appear more articulate.
- Mouse over highlighting for all network items.
- Context menu for connections:
- Display values of parameter connections.
- Remove single / all connections.
- Added interactive mini map for a better navigation.
- Added visual grouping for modules.
- Added notes for annotating a network.
- Added placeholders for in/out connectors in internal networks of a macro.
- Enabled the horizontal moving of connections.
- Added many short cuts, for example:
- For opening the automatic panel.
- For opening the internal network of a macro.
- For editing the instance name of a module.
- Print modes for network (simple rendering / black & white rendering).
- An enhanced way to place instantiated modules on a network did not make it into the release.
- Enhanced Scripting methods:
- MLAB.startXxxDrag methods can now take an icon and a hotspot location.
- MLABFileManager.getExecutable().
- MLABFileDialog.getExistingDirectory().
- New Scripting methods:
- MLAB.allModulesForPackageIdentifier()
- MLAB.compilerInfo()
- MLAB.qobjectInherits()
- MLAB.runCommandDetached()
- MLAB.showColorDialog()
- MLAB.stringToEncodedUrlString()
- MLABField.isConnectedToFieldInSameNetwork()
- MLABFileManager.getExecutableOnLocalMachine()
- MLABFileManager.macGetBundleSharedSupportDir()
- MLABModule.createConnectors()
- MLABModule.getPackage()
- MLABModule.isDescendentOf()
- MLABModule.package()
- MLABModule.scriptVariable()
- MLABModule.setScriptVariable()
- MLABSqlQuery.lastInsertId()
- MLABTabViewControl.setTabText()
- MLABTabViewControl.setTabToolTip()
- MLABTabViewControl.tabText()
- MLABTabViewControl.tabToolTip()
- MLABTextViewControl.selectedText()
- MLABTree.findChildrenRecursive()
- MLABWindowControl.isMinimized()
- MLABWindowControl.showMinimized()
- Removed Scripting methods:
- MLAB.buildInformationVariable(): use information from MLABPackage
- MLAB.buildInformationVariables(): use information from MLABPackage
- MLAB.hasBuildInformationVariable()
- MLABFileManager.getDocsDir(): use MLABPackage.documentationPath()
- MLABFileManager.getExecutableDir(): use MLABFileManager.getExecutable()
- MLABFileManager.getFileInfo()
- Updated / added documentation:
- Reviewed the ML Guide.
- Added an elaborate Getting Started document that covers all first steps from building networks to building own modules in C++.
- Added a MeVisLab Reference Manual that covers all GUI elements of MeVisLab.
- Added documentation concerning the new package structure and all new tools.
- Added support for Postgres and SQLite databases (see the MLABSqlDatabase and MLABSqlQuery scripting classes for general database support).
- Other changes to the IDE:
- The Python scripting console can be set to execute default commands on startup. These can be edited in the preferences dialog. Default is "from mevis import *".
- MeVisLab got a new commandline option "-quick" for faster startup performance when the module database has not changed. Under Windows, look out for the MeVisLab icons with the red arrows on it to start MeVisLab quickly.
Common Enhancements / Fixes (Modules):
- Renamed a number of modules. The old name is left as the 'deprecatedName' to ensure compatibility with old networks. Renamed modules are: CalcGradient, CalcVolume, CatCurves, ConcatImages, ConnectComp, ConstImg, ExtConvolution, ImgLoad, ImgPropConvert, ImgSave, ImgStat, JointHist, JointHistMask, MarkerStat, StdDeviation, Subimage, SubImageStat, VoxValueRescale, SoFrameBufferSampler, SoGVRVolRen, SimpleImgStat. The new names are mostly the non-abbreviated version, e.g. ImgStat becomes ImageStatistics.
- Added SoShadow* modules group to cast and interact with shadows.
- ML image file format default file extension has changed from .mif to .mlimage (.mif will still be recognized though).
- SoTexture2 no longer crashes on Win+VC8. As a side effect it is no longer possible to load SGI Image files (.rgb). Supported are JPEG + GIF. See also SoMLTexture2 for additional image formats.
- Added event consumption mechanisms for SoView2DExtensions and SoMouseGrabber.
- SoView2DAnnotation has more display options.
- Added new module SoViewportRegion to allow rendering into a specified region of the render area and to combine several renderings in one render area.
- Added MovieCreator module, to allow writing image sequences as movie files.
- The new SoMovieScripter module allows to rotate OpenInventor scenes automatically. It also offers the linear interpolation of a variety of variables over time.
- New Arithmetic module for image arithmetic with general mathematical expressions.
- New Calculator module for general mathematical expressions.
- New TubularTracking module for tracking tubular structures and vessels.
- New GaussSmoothing module for fast filtering with a Gaussian filter kernel.
- New GaussGradient module for calculating the image gradient using a derivative-of-Gaussian approach.
- New GaussHessian module for calculating the image Hessian using a derivative-of-Gaussian approach.
- New Vesselness module for calculating a vesselness measure of an image.
- New ImageWarp module for deforming an image according to a dense vector field.
- New TensorToEigensystem module for calculating eigenvectors and eigenvalues for a tensor/matrix image.
- Added DeMosaic module which extracts 4D data sets from fMRI and DTI data e.g. provided by SIEMENS scanners.
- GVRImageToVolume and GVRVolumeLoad got a parameter "additionalTransformation" to change the world position of GVR volumes.
- XMarkerLists:
- New module InterpolateXMarkerList for interpolating new points in an XMarkerList.
- New module XMarkerShortestPath for finding the shortest path between two points in an XMarkerList.
- New module SmoothXMarkerList for smoothing the positions in an XMarkerList.
- New module TravelingSalesman for finding the shortest route visiting all positions in an XMarkerList.
- New module XMarkerListBounds for finding a bounding box or sphere enclosing all points in an XMarkerList.
- New module XMarkerSamplePattern for sampling pre-defined point patterns.
- New module XMarkerListMaxDistance for finding the max distance between points in an XMarkerList.
- New module MarkerToMask for converting an XMarkerList into an image mask.
- New module XMarkerListConvert for converting between world and voxel coordinates.
- Added two new options to SigmaFilter that are disable by default:
- Use Linear Weighting: If enabled, the kernel voxels in the Sigma Interval are not all weighted equally, but relative to their distance to its center.
- Local StdDev Max: Specifies whether and against which value the computed local standard deviation is to be clamped prior to the definition of the sigma interval. This can be useful if there is a known maximum of the noise level, but adaptive filtering is still desired in the areas with lower noise.
- RegionGrowing:
- Fixed a missing enum string bug that could cause a crash on some platforms. Now all 4D neighborhoods are associated with the correct enum item name.
- Previously, the DICOM tags RescaleIntercept and RescaleSlope were only read correctly if 'auto update unit type' was enabled. Now this happens always if 'HU' is selected as unit type (no matter if automatically or manually).
- Previously, the unit type was not auto-updated when 'auto update unit type' was enabled with an already connected input image. This is now fixed.
- Now the default HU intercept for images with no such DICOM information is 0 instead of -1024.
- Reduced the number of (unnecessary) output notifications.
- Output values are no longer clamped to the uint16 range.
- Fixed some memory leaks introduced by the 4D extension.
- Fixed boundary overlap computation for 4d images.
- Improved 64 bit support.
- MergeRegions:
- MergeRegions now supports up to 20 in- and outputs (max number can be changed in MergeRegions.h).
- Explicit region selection adapted, requires re-save of network to remove warnings. Deprecated modes still supported though, should be fully backwards compatible.
- Inactive in/outputs are hidden in the MeVisLab module representation. Default number of in/outputs now 2.
- Added some new merge modes.
- Reduced the amount of inconsistencies in the merge modes, more consistent and better documented fillValue handling.
- New MacroModule CombineLabels: The CombineLabels module is designed to simplify label image handling by allowing to add objects to an existing label image or combine them to create a new one. In contrast to mere OR operations with specified bitmasks, the module supports the invertible encoding of all pow(2, n) objects that can be represented by an n-bit label image and thus their separate extraction using the ExtractLabels module.
- New Module ExtractLabels: The ExtractLabels module is designed to simplify label image handling by allowing to extract up to 10 objects identified via a specific (sub)bitmask from a given (integer) label image. In contrast to a mere AND operation with the bitmask, it allows the separate extraction of any of pow(2,n) objects that can be represented by an n-bit label image.
- CSO:
- CSOFilter: Implemented the filtering much more efficient.
- CSOConvertTo3DMask: The starting condition for scanning the surface is more stable now. Also added a debug mode for very large surfaces / huge amount of CSOs.
- CSOConvertToImage: Fixed an issue with the calculation of the voxel bounding box.
- CSOBase: Fixed some issues with the computation of the normal and area of a CSO.
- SoView2DCSOEditor:
- The display of and the interaction with a CSO can now be limited to CSOs that lie in the current viewer's plane.
- If a CSO is edited so that it would be not in-plane anymore, it can optionally be auto-leveled.
- SoCSO3DVis supports now a StylePalette.
- WEM:
- New module WEMPVL that generates PVLs for existing WEMs and can be used for testing.
- Fixed issues with the copying of WEMPVLs; PVL values are also now generated for newly added primitves (i.e. in WEMSubdivide).
- New module WEMMerge that merges all patches of incoming WEMs into one output WEM.
- Added methods to automatically close holes in a WEM.
- New modules SoView2DWEMContour, SoWEMInteract and WEMExtrude: can be used to draw contours on a 3D viewer and to extrude those contours to become a WEM which in turn can be used with the WEMBoolOp to interactively shape surfaces.
- ITK:
- Upgrade to ITK version 3.9 from September, 4th, 2008. Some modules wrapping classes from itk review directory have been removed since licensing is not clear or since they were not useful. For details see technical notes in module help of any wrapped itk module.
- VTK:
- Upgrade to VTK version 5.3 from September, 3rd, 2008. For details see technical notes in module help of any wrapped vtk module.
Mac OS X Edition
- New Features:
- MeVisLab IDE:
- This release has been optimized to run on Mac OS X 10.5 (Leopard) or better. As a result, MeVisLab does no longer run on Mac OS X 10.4 (Tiger).
- The MeVisLab application bundle now contains a debug and a release mode version of MeVisLab that can be started separately (press the Option key during launch to toggle the version; other methods to choose a version include the Preferences dialog or command line options).
- An option has been added to the Preferences that allows you to choose an alternative IDE toolkit style (used for cross-platform application development).
- MeVisLab is now Time Machine aware, log and temporary files are excluded from backup.
- The Busy Cursor has been replaced by a more descriptive panel using an indeterminated progress indicator + text.
- Additional document icons for ML Image (.mlimage), GVR (.gvr), and Open Inventor (.iv) files have been included.
- Image Formats:
- A new ML Image IO (a.k.a. MFL) plugin has been included that interfaces with the Mac OS X Image IO framework and makes most of the Mac OS X image formats readable by MeVisLab (e.g. ImageLoad). Some of the new formats now supported are: JPEG-2000, Adobe Photoshop, Camera-RAW (Canon, Nikon, ...), GIF, Radiance, Quicktime Images, DNG, PICT, Targa, SGI Image, Windows + Mac Icons, PDF Images. Images may contain multiple layers.
- DicomService:
- The DicomService is now part of the MeVisLab application bundle and does no longer require a separate download.
- SDK:
- The MeVisLabProjectGenerator (a.k.a. MacProfileTranslator) has been completely rewritten and may now be used in GUI mode (default) or from the command line (see '.../MeVisLab.app/Contents/Support/MeVisLabProjectGenerator.app/Contents/MacOS/MeVisLabProjectGenerator --help' for available options).
- Support for the RELATEDFILES project variable (.pro files) has been added. It allows you to add related files (e.g. .def or .html files) to a 'Related Files' group in the 'Groups & Files' list of your Xcode workspace window for quick access.
- Documentation:
- Expanded and revised users guide MeVisLab Mac OS X Edition.
- New document OsiriX MeVisLab Bridge.
- Modules:
- New ML module VideoCapture, that uses Core Video to provide live video input for all video devices supported by Mac OS X - try your iSight.
- Updated OsiriX MeVisLab Bridge that supports and requires OsiriX 3.3 or later.
- Bug Fixes:
- MeVisLab IDE:
- The hidden panel issue has been fixed (module panels did not show up sometimes).
- The styles font size mismatch between Mac OS X and Windows version has been resolved (now the same font size given in point results in approximately the same pixel size on Mac OS X and Windows).
- The automatic calculation of available texture memory for newer graphics cards has been improved.
- Important:
- Some of the MeVisLab helper tools have changed their name and/or id. Sometimes the Mac OS X application database (a.k.a. launch services database) does not detect the changes as soon as you would like. To be on the safe side, execute the following command in the Terminal to rebuild the application database after you've installed MeVisLab:
- /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
- Notes:
- Leave the available texture memory setting in the MeVisLab preferences untouched for the new MacBook Pro with NVIDIA 9400&9600 chipset (5th generation), MeVisLab will automatically calculate the exact amount of texture memory for the currently active graphic chip (according to the energy settings). You may remove any manual overwriting of the texture memory setting by executing the following command in the Terminal:
- defaults delete de.mevis.MeVisLab GlobalSettings.TextureMemoryInMB.
Windows Edition
- Known issues:
- 64bit version of MeVisLab is missing the ctypes Python module, because this cannot be build on 64bit Windows.
Version 1.6.1 (2008-08-24)
Common Enhancements / Fixes (MeVisLab)
- ML:
- Subtle bug in priority management of the ML Cache fixed. It required an ML interface change and update to version number 1.8.68.23.87 in mlVersion.h. Relink all libraries dependent on the ML.
- MDL:
- The abstract Control got an attribute destroyedCommand mirroring the initCommand.
- Scripting:
- MeVisLab pointer objects (e.g. controls) can now directly be used as keys in Python dictionaries.
Common Enhancements / Fixes (Modules)
- MemCache :
- Fixed: Module MemCache always returned the first output of a connected module, not the connected output.
- eatDicom:
- fixed the scanning of scouting images, where some mandatory information could be left unset, like the PatientOrientation; in those cases, a message is printed to the console and the according structures are filled with 0.
- DICOM macros:
- Added new module DicomQuery to query and retrieve data from a DICOM server. It's quite basic at the moment, suggestions are welcome.
- CSO:
- CSOLiveWireProcessor: fixed a memory leak
- CSOIsoGenerator: fixed a memory leak
- CSOPathPointIterator: new helper structure
- CSOAffineTransformation: fixed numerous update issues
- CSOFreehandProcessor: added a field for adjusting the interpolation fineness, so that contours can now be drawn onto very small images with a very high zooming level
- CSOFilter: fixed a bug that could lead to crash if the filter string was left empty
- CSOFilter: added filter criterion for CSOs and CSOGroups: timepoint/li>
- CSOLoad: uses now ifstreams internally (enables the use of UTF8 characters in the path)
- SOView2DCSOEditor: added a missing CSO_FINISHED notification
- SOView2DCSOEditor: the picking is now more accurate
- SOView2DCSOEditor: the module can now render correctly in 3D
- CSO library: added undo/redo for removing/adding whole sets of CSOs
- CSO API: changed 'get'-methods to be 'const' where possible
- WEM:
- WEMClip: re-added module
- WEMBoolOp: fixed triangulation issues
- WEMLoad: added an 'Unload' function, fixed a bug that could lead to a crash if a lot of small WEMPatches were loaded
- WEMSubdivide: fixed a bug that could lead to a crash if the surface has holes
- WEMSubdivide: enhanced the speed of the module greatly
- SoWEMRenderer: fixed an issue with the coloring of nodes
- WEM API: added new temporary structure: WEMIndexedFace
- WEM GUI API: added new GUI substructures
- Viewers:
- Stereo viewing couldn't be activated on the OpenInventor viewers, even if the graphics card supported this. (You need to enable the context menu for this and set this from the preferences dialog.)
Mac OS X Edition
- MeVisLab startup time has been greatly reduced
Windows Edition
- Fixed a problem when building projects where the project file name contained a dash
Version 1.6 (2008-03-25)
Common Enhancements / Fixes (MeVisLab)
- New welcome screen for MeVisLab.
- Automatic detection of usable screen space.
- New integrated TextEditor (called MATE) with syntax highlighting, indention, completion and a context sensitive help (F1, ⌘+?).
- Note: Currently, MATE uses latin-1 encoding for text files on all platforms
- Improved Scripting consoles
- Advanced JavaScript and Python completion.
- Context sensitive help (F1, ⌘+?).
- Enhanced Scripting methods:
- MLAB.showInformation()
- MLAB.showWarning()
- MLAB.showCritical()
- New Scripting methods:
- MLAB.showQuestion()
- MLAB.computerModelInfo()
- MLAB.[macro|ml|inventor]Modules(), MLAB.all[Macro|ML|Inventor]Modules()
- MLABFileManager.moveFileToTrash()
- Python binding
- Fixed writing of bad .pyc files when .py files have a syntax error.
- Fixed auto-reloading of modules when a python file was changed after it had a syntax error.
- Python errors are now printed with the courier font so allow locating the ^ marker in syntax errors.
- If a MDL command is connected to a Python function/method, the Python function may now have less arguments than the command provides. Surplus arguments are ignored.
- MDL
- TextView now supports showLineNumbers = BOOL and syntaxHighlighing = (Python|QSA|MDL|GLSL).
- LineEdit: new command lostFocusCommand.
- SDK
- Module wizard for ML modules improved with many new features and tooltips with references into detail documentation of ML Guide.
- Now the Toolbox Reference uses improved doxygen layout, many classes and files have better, fixed or completed documentation and alphabetical class index.
Core Revision
- Glut removal: Glut was only provided as a prebuild binary for the windows platform. Options would have been to provide a 64bit version of glut or to remove it from netsrc. The second choice has been selected (Glut was used for font rendering only, but libraries like ftgl can handle that much better.).
- Removed glut from netsrc.
- Added a bridge to MLOpenGL (see mlGL2DFont.{h,cpp}).
- Examples of usage can be found in MLMiscModulesInv (see mlDiagram2D.{h,cpp}) and SoView2D (extends the GL2DFont class toward text rendering and usage of unicode strings).
- GL and GLU removal: Both libs should be available on any recent system (as far as it is known, exceptions have been Win95, Win98 and WinME).
-
MLSystemInfo: Inlined assembly is not supported by the VC8-64 compiler. Therefore gathering system information has to be done with outlined assembly on this platform. This is done inside this new project that returns information on available extensions (like MMX, SSE, 3DNow, ...), number of virtual processors, cache sizes and other CPU info.
Common Enhancements / Fixes (Modules)
- WEM library reworked: a WEM is now actually a list of WEMPatches of different type (WEMTrianglePatch, WEMQuadPatch or WEMPolygonPatch).
- Split the WEM library into a core part and into a modules part (MLWEM and MLWEMModules).
- Removed: WEMBrowser, WEMClip, WEMMerge
- Renamed: WEMCollapseEdges -> WEMReducePolygons
- Renamed: WEMSplitEdges -> WEMSubdivide
- Renamed: WEMPurge -> WEMDemergePatches
- Use WEMInfo instead of the removed WEMBoundingBox
- Use BaseSwitch instead of the removed WEMSwitch
- CSO: fixes and new modules
- Split the CSO library into a core part and into a modules part (MLCSO and MLCSOModules).
- Reworked CSOConvertToImage: this module works now with a page-based concept and has a OnDemand mode.
- New processors: CSOModifyProcessor and CSOBulgeProcessor, both to modify existing CSOs.
- New processor: CSOLiveWireProcessor for a semi-automatic segmentation.
- SoView2DCSOEditor displays closed and fully visible CSOs in a filled manner.
- CSOIsoGenerator offers several filtering and smoothing options.
- SoGVRVolRen no longer supports legacy hardware LUTs (using EXT_paletted_texture) , which was last seen on NVidia GeForce3 cards (but rendering still works on these cards).
- SoGVRSecondaryLUT and SoGVRSecondaryVolume support a variable number of LUTs and additional octree volumes in the renderer.
- SoGVRTransformedVolume and SoGVRTransformedVolumeSettings allow so set additional volumes as 3D textures.
- SoGVRShaderDiagnosis allows to view the shaders which the GVR generates.
- SoShader: fixes and new modules
- Shader modules now have GLSL syntax highlighting.
- Added SoMLSampler1D and SoMLSamplerCubeMap.
- Some new modules have been introduced:
- AccumulateImage: Accumulates images (MPRs) in one image.
- PointCloudToMask: Converts a list of pairs of points and normals (surface) to a smoothed distance image or a 3D mask.
- TextureFilter: Applies statistic texture filters to an image.
- MarkerStat: Computes statistical information on a marker list.
- DtfSkeletonization: 3D distance transformation by homotopic thinning, skeletonization (replaces module Skeletonization).
- SoCameraAnimation: Rotates a camera around an Inventor scene in a smooth pan.
- SoMLLUTChangeColor: Modifies output of SoMLLUT modules.
- SoMLSampler1D, SoMLSamplerCubeMap: similar to SoMLSampler2D and SoMLSampler3D.
- BaseBypass: Like the Bypass module just for Base inputs.
- OSType: Provides basic operating system information.
- SoBoundingBoxVis: Computes and visualizes an axis aligned bounding box for an arbitrary OpenInventor scene.
- SoVascularSystem: visualizes vascular systems (vessel graphs) generated by DtfSkeletonization.
- DRR: module for computing a 2D digitally reconstructed radiograph image out of a 3D CT-image.
- ColorModelConvert: Now supports color models LAB and XYZ.
- CoreControl: Has been extended.
- DistFromXMarkerList: Added calculation of maximum distance.
- EuclideanDTF: Has been re-implemented.
- FuzzyCluster: Has been re-worked.
- HistogramParameters: Calculates a second user defined quantile.
- ImgLoad: automatic load can be suppressed.
- ImgPropConvert: Voxel Size and World Matrix are now kept consistent even with no input image connected.
- MergeRegions:
- Fixed a bug that could cause a 1-voxel translation of output regions created as intersections or unions of input images for non-diagonal world matrices.
- Fixed a potential problem in output world matrix creation for merging regions in color images.
- Improved UI.
- MPR, MPRPath: Got new visualization parameters.
- Reformat: Added a field for the Euler angles.
- RegionGrowing: Added 4D capabilities.
- Sobel3D: Fields have been renamed.
- StringUtils: New mode ToASCII added for conversion of character values to ASCII numbers.
- Switch: Now up to 25 inputs are available.
- So3DXMarker: Has two drawing modes now: fast or correct.
- SoDepthPeelRenderer: Has been reworked and should produce better results.
- A lot of work was done on SoView2D and its extension modules, some changes are:
- All help files and example networks have been reworked.
- SoView2D: Added field "sliceZoomSynchronized" which updates the slice-origin when zooming. This allows to keep the viewing center in the middle of the view when updating the sliceZoom via a field synchronization.
- SoView2D: Added field "updateInventorEvent". If this is set to "true", the following inventor nodes will not react to events that have been handled by a SoView2DExtensions.
- SoView2D: New field "plane" contains the plane of the current slice.
- SoView2DAnnotation: Some fields introduced to get a reliable automatic font sizing.
- SoView2DMarkerEditor: Added option "snapToSlice" to translate any moved marker to the current slice.
- BoolInt: Also returns inverted bool value.
- DicomTool: Can take name template for file names.
- MarkerListInspector: Lots of new options.
There are also a lot of other minor changes which don't appear in this document.
Mac OS X Edition
- MeVisLab changes:
- MeVisLab does no longer run on PowerPC-based Macintosh computers. This release has been optimized to run on Macintosh computers with an Intel processor.
- Added Mac OS X 10.5 (Leopard) compatibility; MeVisLab 1.6 runs on Mac OS X 10.4.11 or 10.5.x
- Added 'Restart With Current Networks' feature (File menu).
- Improved handling of non-latin1 language settings.
- Added multiple instances support, now more than one MeVisLab application can be used at the same time.
- Added command-line support ('cmdline' license feature required).
- Added Mac OS X Spotlight metadata importer (MeVisLabDocuments.mdimporter) that allows indexing of uncrypted MeVisLab script (.script) and definition files (.def).
- Added Mac OS X Quick Look generator (MeVisLabDocuments.qlgenerator) for MeVisLab network files (.mlab) that enables previewing of MeVisLab networks. It requires networks to be saved by MeVisLab running on Mac OS X 10.5 (the preview gets added to the resource fork of the MeVisLab network file, thus does not affect loading and parsing of the network).
- Added Mac OS X Quick Look support for MeVisLab script (.script) and definition files (.def) via standard Quick Look generators for text on Mac OS X 10.5.
- Adapted shortcuts to be more consistent on Mac OS X.
- Autodetect amount of video RAM on the graphics card (used by the volume renderer and other GPU-intensive tasks).
- MeVisLab Mac OS X Edition User's Guide changes:
- PowerPC sections removed
- Spotlight importer plugin added
- Quick Look integration added
- Setup of User Projects Location added
- Using the Module Wizards added
- Creating an Xcode project from a .pro file updated
- Debugging MeVisLab modules with Xcode added
- Developing on Leopard for Tiger added
- Obtaining Source Codes of MeVisLab Modules added
- Integrating MeVisLab with OsiriX added
- MeVisLabDicomService changes:
- Added Mac OS X 10.5 compatibility. There are separate installers for Mac OS X 10.4 (Tiger) and Mac
OS X 10.5 (Leopard). Please choose the appropriate installer for your Mac OS X version.
- Module changes:
- Added an experimental bridge between MeVisLab and OsiriX 3.0 (Advanced Mac OS X PACS Viewer) consisting of the OsiriXMeVisLabBridge plugin for OsiriX 3.0 and the MeVisLab module OsiriXBridge. This bridge enables OsiriX to send datasets directly to the MeVisLab imaging pipeline using a standard ImgLoad module (see the example network of the OsiriXBridge module). After processing the dataset, MeVisLab may send the modified data back to OsiriX. The plugin and the module require Mac OS X 10.5 (Leopard). The source codes of both the plugin and the module are included in the MeVisLab public sources package
- Added check for user interaction in volume renderer (GVR); rendering large volumes should be more responsive now.
- Scripting changes:
- Added MLAB.macIsApplicationRunning(bundleId)
- SDK changes:
- Added MacOSSupport SDK that wraps Mac OS X specific functionality in C++ classes. See the MeVisLab Toolbox Reference.
- Added AppleScript xcode-prepare-debug.applescript to automatically setup an MeVisLab module Xcode project for debugging (located within the MeVisLab.app bundle in /Contents/SharedSupport/Scripts/).
Linux Edition
- All projects are now linked with the option '-z defs' in order to check all symbols at linking time. To turn this option off, add a CONFIG += NO_LIBRARY_DEPENDENCY_ERROR_CHECK to a project's .pro-file.
MeVisLab Public Sources Installer
Sources of many projects added:
- MLBase
- MLBinaryTree
- MLGeometry
- SoLUTTools
- SoMLSupport
- SoFlash
- SoShader
- SoQtMeVis
- SoTensorFieldVis
- SoVirtualVolume
- OsiriXMeVisLabBridge & MLOsiriXBridge
ML, mlLinearAlgebra, mlUtils and Image Processing
For details about the following changes see the ML release notes in mlDoc.h.
- New version number 1.8.67.23.86 which includes binary and compile interface changes. Some source will require updates before they compile again.
- Fixed: day() function in DateTime class now returns the correct day instead of always 0.
- Many constants and macros (e.g. from mlLinearAlgebraDefs.h), ML and mlUtils without ML_-prefix renamed or even removed if they are available on common system.
- Many interfaces, parameters and internal structures changed for 64 port, activation of 64 bit warnings on VC8 and non WIN32 platforms.
- New and changed image processing properties in BaseOp class for bypassing, multithreading.
- Revision of basic multithreading support in mlUtils, new class Mutex introduced which replaced mlCriticalSection.
- File system interface in mlUtils changed for 64 bit fixes and new functions added.
- Partial refactoring and revision of header files of project MLBase. Some stuff now located in its own header files such as CurveData, CurveList (from mlDiagramData.h), ParserBase, BaseItemParser (from mlListParser.h).
- Access to id of BaseItem only via functions from now on.
- New macros ML_PRINT_INFO and ML_PRINT_INFORMATION.
- Bugfixes in cursor movements and new functions for bounding box calculations and BitImage to BitImage copying in BitImage class.
- Fixed: Calculation of image statistics in ImageStat module when image has more than 3 dimensions.
- New error codes in mlTypeDefs.h and some MLErrorCodeDescriptions renamed or added, e.g MLOk string renamed to Ok.
- Runtime type system in mlUtils has new functions or paarmeters for class, dll, and inheritance dependencies.
- Fixed: MLImageFormatLoad cannot read nonwritable files.
- Many sections in ML Guide improved with new details and examples.
- Fixed: TextureFilter module crashing on non Win32 platforms.
- Fixed: KernelEditor creating wrong kernel strings on non Win32 platforms.
- Fixed: TimeCounter in mlUtils used/returned incorrect time units on different platforms. This lead to complete revision of the class interface. Interface was not clear enough such that a complete revision was necessary. It is not compile compatible any more and requires revision of the places of use. See header or SDK documentation for new interfaces.
- New module FloydSteinberg.
- New module ImageCompare.
- New Module CommandNotifyer.
- New module BitImageArithmetic, MLToBitImage, and BitImageToML in project BitImageTools as well as improved source box/region suppport and bug fixes.
ITK & VTK:
- Help pages revised and additional module specific information and limitations added.
- Many ITK and VTK modules now support correct conversion of world matrix and voxel size settings to itk/vtk orientation and voxel scaling. In some cases (e.g. ITK registration modules) this may change module behaviour slightly.
- Wrapper modules for itk/vtk classes have hyperlinks in parameter panels to doxygen class documentation.
- ITKVTKGenerator now supports the suppression of export symbols from user defined libraries and supports creation of platform dependent modules.
- Fixed minor bugs, typos in GUI, additional information.
- ITK:
- Missing Sigma parameters and limitations fixed in itkGradientRecursiveGaussianImageFilter, itkGradientMagnitudeRecursiveGaussianImageFilter, itkLaplacianRecursiveGaussianImageFilter, itkHessianRecursiveGaussianImageFilter.
- Fix in region calculation of itkLaplacianRecursiveGaussianImageFilter.
- Fixed invalid connectors of modules:
- itkCannySegmentationIF,
- itkCurvesLevelSetIF,
- itkGeodesicActiveContourLevelSetIF,
- itkGeodesicActiveContourShapePriorIF,
- itkLaplacianSegmentationIF,
- itkShapeDetectionLevelSetIF,
- itkThresholdSegmentationLevelSetIF, and
- itkVectorThresholdSegmentationLevelSetImageFilter.
- New itk classes wrapped as modules:
- itkBinaryMorphologicalClosingImageFilter,
- itkBinaryMorphologicalOpeningImageFilter,
- itkBinaryProjectionImageFilter,
- itkBinaryThresholdProjectionImageFilter,
- itkMaximumProjectionImageFilter,
- itkMeanProjectionImageFilter,
- itkMedianProjectionImageFilter,
- itkMinimumProjectionImageFilter,
- itkMorphologicalWatershedFromMarkersImageFilter,
- itkMorphologicalWatershedImageFilter,
- itkNarrowBandCurvesLevelSetImageFilter,
- itkNarrowBandThresholdSegmentationLevelSetImageFilter,
- itkRegionalMaximaImageFilter,
- itkRegionalMinimaImageFilter,
- itkStandardDeviationProjectionImageFilter,
- itkSumProjectionImageFilter,
- itkValuedRegionalMaximaImageFilter, and
- itkValuedRegionalMinimaImageFilter.
- VTK:
- Pop up window of vtk modules suppressed; errors are redirected to MeVisLab console and ML error manager now.
- 56 new vtk classes wrapped, 51 useless classes removed. See the module comparison for details.
- vtkInputInfos shows more information about connected input classes.
Version 1.5.2 (2007-11-09)
MeVisLab Core and IDE:
- Fixed a bug causing screenshots to capture the wrong display area on Windows and Linux systems
- Fixed uncheckable MLABPopupMenuItems
- Fixed handling of html file urls with spaces
-
Mac OS X Platform:
- The 1.5.x editions are the last releases for the PowerPC-based Macintosh computers. The next major revision will be only available for Macintosh computers with an Intel processor.
- Fixed crash occuring when closing MeVisLab with image connector preview on
- Fixed placing of About and SystemInfo windows in panel child mode
- Removed obsolete 'Default FileDialog path' field in preferences panel
- Improved creation of Xcode 3 projects from *.pro files on Mac OS X 10.5 (Leopard is not officially supported yet)
MeVisLab MDL/Scripting:
- Fixed MLABGraphics/MFLImageIOPlugin bug: bmp files are written correctly now
- Fixed preferences file parsing: system and debug/release variables are now defined before reading prefs
- Fixed usage of QWidget.setVisible()
- Added operation system version number variable for Mac OS X (MACOS_10_4 or MACOS_10_5)
- Fixed signing of Python files for Mac OS X and Linux
- Fixed shouldCloseCommand, which was not able to prevent window closing
Core Libraries:
- DICOM:
- ImgSave: Fixed memory leak saving DICOM slices
- ImgSave: Fixed swapping of voxel size x/y in stored DICOM images
- eatDicom: Fixed number format in output information with the -rules option
- 2D Viewing:
- Fixed a potential memory leak in SoView2D if in mosaic mode and a slice step other than 1 is used
- Volume Rendering:
- Fixed crash in GVRVolumeSave when a none DICOM file was attached and automatic filename was enabled
- Fixed bug in SoGVRVolRen occuring with color dimension c==2 was given. Color == 2 is NOT supported by the GVR
- Improved interaction with large volumes by adding render abort on interaction for Mac OS X
- CSO:
- Fixed memory leaks
- Fixed handling of Group and List rules
- Fixes in the CSOMath class
- CSOConvertTo3DMask now reduces the amount of considered points automatically, making the module much faster and stable
- Fixes in the convertor modules (double computation, internal hash keying, output image min/max values)
- Fixes in the SoView2DCSOEditor: editing of non-parallel CSOs (relative to the current viewer's plane) and moving a CSO while editing
- CSOIsoProcessor: Enabled further editing of existing CSOs
- Object Manager:
- Fixed crash in ObjLoader occuring when 'use loader with name' is non-empty and does not refer to a valid loader name
Modules:
- MLOffscreenRender works better now, fields for transparency and stencil buffer added
- Diagram2D: Fixed occasional crash on disconnecting input object
- MergeLists: Fixed a bug that lead to a crash under Windows Visual Studio 2005 (VC8)
- SoLUTEDitor: Fixed a bug that caused the module to hang if a new range with a min and max value both outside the original range was set
- JointHist: Fixed a bug that caused an invalid diagram output of the histogram of the first image if its bin size was greater/equal than of the histogram of the second input image
- ImageStat: Fixed invalid bounding box calculations on images with c-, t-, or u-extent > 1
- Draw3D: Fixed incorrect 2D and 3D fill operations
- MLImageFormatSave: Missing documentation of compression options and their additional parameters added
Add-On's:
- ITK: Many itkLevelSetImageFilters with invalid function connectors have been fixed (itkCannySegmentation-, itkCurves-, itkGeodesicActiveContour-, itkGeodesicActiveContourShapePrior-, itkLaplacianSegmentation-, itkShapeDetection-, itkThresholdSegmentation-, itkVectorThresholdSegmentationLevelSetImageFilter),
Version 1.5.1 (2007-08-31)
MeVisLab IDE:
- Fixed inconsistencies when pressing the up or down key in the quick module search.
- Fixed editing of list view items that were not added initially.
- Fixed a bug when module windows in an unregistered MeVisLab were not expanding.
MeVisLab MDL/Scripting:
- MDL validator did not include the LineEdit's lostFocusCommand.
- An unnamed LineEdit control now shows a blinking cursor.
- Fixed a bug in the ButtonBar: It had always a minimum size, which was not a desired behavior.
- Fixed the shell script template MLModule.sh, which is used by the MLModuleWizard.
Core Libraries:
- Fixed a bug in eatDicom where number to string conversion resulted in an endless loop.
- Fixed eatDicom problems related to output paths with umlauts and non-latin1 encoded input files.
Modules:
- HistogramPeakEstimate: crash if the given VOI was empty.
- LoadBase: crash if an empty list was loaded.
- CSOConvertToImage: crash if CSOs were to be converted to different time points.
- SoTensorFieldVis: wrong colors if a color image and a vec3/vecf3/mat3 image was attached.
- RasterFunction: corrected a half-voxel issue, so that primitives with a scale value of 1 are correctly rastered now.
- RasterFunction: a scale value of 0 now leads to an empty image and no matrix errors are printed out anymore.
- StringUtils: case-insensitive string comparsion always returned 'EQUAL'.
- MPR in ForceUpright mode now keeps the size of the field of view.
- Added a field Time Point to the macro View3D.
- Changed the evaluation of the parameter depthVisibility on the SoView2DMarkerEditor.
- Fixed export of time point information in ImgSave and DicomTool modules
- MLABMoviePlayerControl: the loop option did not control the looping of the player (Windows).
Mac OS X Platform:
Note: The 1.5.x editions will be last releases for the PowerPC-based Macintosh computers. The next major revision will only be available for Macintosh computers with an Intel processor.
- GUI inconsistencies and MeVisLab style support have been fixed.
- Screenshots of OpenGL renderings are now fully supported.
- Movie generation within MeVisLab has been added using Apple's Quicktime.
- Better font size match for certain GUI controls.
- A dialog misplacement of the 'save as' dialog in the screenshot gallery has been fixed.
- Frequent authorization requests during DicomService installation have been fixed.
- The 'storescp' zombie when terminating the DicomService is fixed.
- More robust font management for SoView2D.
Version 1.5 (2007-05-21)
Installation:
- New platforms supported:
- Windows with VC7 or VC8 development environments
- Mac OS X
- Minimum system requirements:
- Macintosh computer with PowerPC G4, G5, or Intel Core processor; 1 GB RAM
- ATI Radeon 9600 or NVIDIA GeForce FX 5200, 1280x800 screen resolution
- 2 GB of available hard disk space
- Mac OS X 10.4.8
- Apple Xcode 2.4 or later for module development
- Recommended system:
- Mac Pro, 4 GB RAM
- ATI Radeon X1900, 1920x1200 screen resolution
- Note: The main platform supported by MeVisLab is still the Windows VC6 environment. The Windows VC7/8 and Mac OS X versions are offered as beta versions. The Mac OS X PowerPC version is completely unsupported and only provided for non-commercial installations.
- The MeVisLab 1.5 settings are partly incompatible with the MeVisLab 1.4 settings, especially the user defined IDE layouts will be lost.
MeVisLab Core:
- Major revisions in all core libraries
- Migrated from application framework Qt3 to Qt4
- OpenInventor-Qt-binding SoQt (Coin3D) has been replaced by SoQtMeVis (port from SoXt to Qt4). The modified sources and additional documentation are available for download at www.mevislab.de/inventor.
- All third-party libraries have been updated to current versions.
- New PythonQt binding for Qt4 (see also pythonqt.sourceforge.net)
- Update to Python 2.5
- Support for Python remote debugging (see MeVisLab Scripting Reference: Python: Section on Debugging)
- New auto-completion feature in Python scripting console
- The new Python binding changes the interface to several QVariant types, including QSize, QRect, QPoint, QDate, QDateTime, QTime. Where these classes are used within Python scripting, the property access typically has to be changed into a method call (e.g. instead of size.height user size.height()).
- New builtin help() function which can be called with any Python or MeVisLab Object as its argument
MeVisLab IDE:
- New output inspectors for marker lists and CSO contour objects (see below), improved existing inspectors
- New tab bar for switching between open network windows
- New command to search for a module in the current network (Ctrl+F)
- Plain (un-fancy) network rendering mode has been removed.
MeVisLab MDL/Scripting:
- The TabView control now supports "mode = left" and "mode = right" alignment of Tabs.
- The Splitter control now has "color" and "shadow" tags.
- The Box control has a "boxCheckedField" tag which can be used to enable/disable a Box with a checkbox.
- The ColorEdit control has an "edit" tag that can be used to disable editing of the color.
- The Field control has a new tag "useSheet" to control the use of "sheets" for dialog displays (only used on Mac OS X).
Open Inventor:
- Open Inventor is now part of the MeVisLab SDK, no separate installation is needed.
- New getName() method available in the C++ code of an Inventor node, returns the module's instance name
- Improved font handling in the SoFont and SoFontStyle modules:
- On Windows, a font file with the specified font name and one of the extensions "", ".ttf", ".pfa", ".pfb", ".otf" is searched in the Windows font directory.
- On Linux, a font file with the specified font name and one of the extensions "", ".ttf", ".pfa", ".pfb", ".otf" is searched in /usr/share/data/fonts or in the directory pointed to by the FL_FONT_PATH environment variable.
- On Mac OS X, fonts are loaded using the Apple Type Services. A font can be specified by its Postscript font name (e.g. 'LucidaGrande-Bold') or its regular font name (e.g. 'Lucida Grande Bold').
- New input device drivers
- Via SoCustomExaminerViewer: SoQtSpacemouse (Windows + Mac OS X only), SoQtPowerMate (Mac OS X only), SoQtAppleRemote (Mac OS X only) - device drivers for the 3Dconnexion Space Traveler 6DOF input device, the Griffin PowerMate input device, and the Apple Remote Control device
- SoSpacemouseAccess, SoPowerMateAccess, SoAppleRemoteAccess - provide access to the input devices (buttons, sliders etc.)
ML and Related Libraries:
- New support for numeric min/max/epsilon handling in mlUtils
- Fields vec2, vec3, vec4, SubImgBoxf and long double use correct precisions in string representation now.
- Quaternion support added to mlLinearAlgebra and as a new voxel type in MLTypeExtensions
- New support for extensible image properties (classes ImagePropertyExtension, ImagePropertyExtensionContainer). This mechanism is used by the new representation of DICOM image properties (class MLDicomTreeImagePropertyExtension, see below).
- DataCompressor classes and factory added, as well as specializations for BZip2 and ZLib data compressors. User implemented compressors are supported.
- New functions and platform independent support for very large files even on 32 bit systems (mlFileSystem in mlUtils)
- Several new error codes and utility functions
- For details see ML Library Reference.
Other Core Libraries:
- DICOM:
- Access to DICOM image properties is now available through the class MLDicomTreeImagePropertyExtension as part of the extensible image properties framework.
- DICOM data is represented using the new DCMTree library, including support for DICOM sequences.
- The DICOM import in MeVisLab now preserves frame-specific DICOM data and provides them through the StructuredMF interface in the DCMTree library. The new module DicomFrameSelect can be used to access frame specific DICOM tags.
- The old DicomTags library is no longer supported.
- New MLImageFormat package with dedicated ML image file format, supporting 6D, compression, extended voxel types, DICOM information, user tags, files > 4GB, and image file caching. C++ interfaces are included in the SDK.
- New Contour Segmentation Object (CSO) library for generating, visualizing and processing contours, with C++ interface and several new modules:
- CSOAffineTransformation, CSOConvertTo3DMask, CSOConvertToImage, CSOFilter, CSOInfo, CSOIsoGenerator, CSOLoad, CSOManager, CSOSave, LocalCSOLoad
- CSOFreehandProcessor, CSOIsoProcessor, CSOPrimitiveProcessor
- SoCSO3DVis, SoView2DCSOEditor
- New SoShader framework providing a framework to use the OpenGL Shading Language (GLSL) in MeVisLab networks.
- Example source available for the SoGoochShader module
- New modules: SoCheckShaderSupport, SoClearShaderState, SoVertexShader, SoFragmentShader, SoShaderProgram, SoShaderParameter1f, SoShaderParameter2f, SoShaderParameter3f, SoShaderParameter4f, SoShaderParameter1i, SoShaderParameter2i, SoShaderParameter3i, SoShaderParameterColor, SoShaderParameterMatrix, SoShaderParameterMLImageProps, SoShaderParameterMLImageSize, SoMultiplePass, SoGLRenderState, SoMLSampler2D, SoMLSampler3D, SoFramebufferSampler, SoMultiPassFramebufferSampler, SoInheritedFramebufferSampler, SoGoochShader
- 2D Viewing:
- SoView2DMarkerEditor: The depth visibility parameter is now used correctly for picking and visualizing.
- SoView2D has options to automatically unzoom on input image change and to disable writing to the z buffer in 3D renderings.
- SoMouseGrabber and all View2D extensions support changing the cursor shape.
- SoView2DBorder/Highlight can use the information of SoFocus to draw a highlighted border.
- SoView2DOverlay supports a different data filtering instead of inheriting the SoView2D settings, see inheritFilterMode and filterMode fields.
- SoView2DOverlay can draw check-tiles, see checkerTileSize, isCheckerTiling, areCheckerTilesInverted fields.
- SoView2DTransRot has been modified to allow full mouse configuration instead of fixed settings, e.g. for MPR interaction.
- SynchroView2D has been reimplemented.
- New module GVROrthoView2D is a fast alternative to the SoView2DOrthoView by using the SoGVRVolRen module to render the images.
- Volume Rendering:
- New module SoLUTEditor2D allows to create 2D LUT's that can be used with the SoGVRVolRen module and tag volumes.
- SoGVRVolRen now uses OpenGL Shading Language shaders when available and supports on-the-fly gradients (set gradientQuality field to "Highest").
- SoGVRVolRen has a new "filterVolumeData" mode that supports Nearest, FilterLinear, FilterLinearPreClass and an experimental FilterCubic, the "classificationMode" has been removed.
- SoGVRQualitySettings has a flag "forceHighQualityRendering" that forces rending in the highest possible quality (e.g. for offscreen rendering).
- GVRVolumeLoad now has a Close button to close the opened file.
- GVRImageToVolume, GVRVolumeSave now support a "padSize" field to set the padding of the Octree (currently PAD1, PAD3 and AUTO), PAD3 is needed for on-the-fly gradients.
- WEM:
- New module IsoSurface allows to easily create WEM iso surfaces.
- Added dynamic user value vectors to the WEMNodes that can be used in networks (internally in modules) and for LUT control.
- WEMImageData module supports trilinear interpolation and RGB images, setting of LUT range is fixed.
- WEMIsoSurface module optionally generates quad meshes (in addition to triangle meshes) and supports using only the maximum iso value.
- WEMModify module facilitates rotation.
- WEMLoad/WEMSave support binary and ASCII STL formats.
- WEMSmooth module reworked, offers Laplacian surface smoothing and normal smoothing. Both smoothing algorithms can be used in serial.
- WEMSurfaceDistance contain new fields for the min/max normalized distances for the closest points positions.
- SoWEMRenderer module supports face sorting for correct transparencies without a SoDepthPeelRenderer.
- New adaptors to VTK
Modules:
- Image I/O, DICOM
- New modules BitImageLoad, BitImageSave: Saving/Loading of bit images from/to base objects or ML images
- ImgLoad/Save support BMP format.
- ImgLoad now supports loading raw images of datatype "double".
- ImgSave allows to select subsets of DICOM tags to be discarded (per-frame tags, private tags, ...).
- DicomLUT now supports VOI LUT's and non-linear modality LUT's.
- DicomRescale problems for slope!=1 fixed.
- Image Transformations:
- New module SubImageStat allows to do statistics/projections on selectable dimensions of the input image.
- New module MPRLight provides functionality of MPR without Open Inventor features.
- New module OrthoTriplePlaneViewer displays an image in oblique orthogonal 2D views.
- New module TransformEdit for numerical, incremental and manual editing of transformations.
- AffineTransformation3d has new modes selectable via a new transformationMode field.
- EuclideanDTF uses an improved algorithm which is two times faster.
- MPR,MPRPath: drawImageOn can be used to disable image drawing.
- Visualization and Interaction:
- New module SoFocus allows to handle focus changes on viewers.
- New module SoView2DDeformationGridView displays a grid showing a vector field deformation.
- New module OffscreenRenderer allows to render Inventor Scenes into images using offscreen render buffers.
- SoExaminerViewer has a new field "mouseInteraction" that allows complete mouse interaction re-mapping.
- SoLUTEditor now has fields "window" and "level" to allow interactive windowing of the current LUT, a field "currentIndex" to view/edit the current point's index, and an option "newRangeMode" to either clip or scale the LUT on range change.
- SoFlash has fields for a target color and a color output.
- SoDepthPeelRenderer has a new "sceneDepthCompare" mode that renders the depth peel layers with correct depth layers (to include it with other renderings in the depth buffer).
- VoxelizeInvScene now allows to voxelize triangles and lines in an anti-aliased manner. Thickness can be specified in either voxels or world units.
- SoTensorFieldVis module now accommodates to vector data automatically.
- SoRLAxis: Bug fix for negative annotation range or negative origin
- Miscellaneous:
- New arithmetic modules: Arithmetic0 (scalar and vectors), BoolArithmetic (boolean values), MatrixArithmetic (matrices)
- New module StringUtils provides string helper functionality (e.g. concatenation).
- New module FieldBypass allows to enable/disable propagation of field notifications.
- New module RasterMacro offers test images of geometry primitives.
- New module TestPrinting shows how to create PDFs from rich-text using Python or JavaScript.
- ImageIteratorStart/End now support file caching.
- PrintCurves was improved.
Add-On's:
- VTK:
- Update to version 5.1 of April 16th, 2007
- New converter modules between WEM, ML, points, arrays lookup tables and vtk
- New VTKQtRenderWindow and VTKQtRenderWindowInteractor
- Hiding of multi inputs controllable in panels to reduce amount of connectors
- Module inspector for vtk added
- About 260 additional modules from wrapping process of vtk classes, including many new readers and writers.
- Bug fixes related to non-scalar voxel types and voxel spacing in ML/VTK conversion. Fixed display of large module panels.
- Some modules removed that caused problems due to unresolvable symbols, platform dependencies or other issues
- For detailed release notes see any vtk module help.
- ITK:
- Update to version 3.3 of April 16th, 2007
- Four modules removed, 22 functions and 14 filters/modules added
- For detailed release notes see "Technical Notes" in any itk module help.
- New Wrapper code generator module ITKVTKGenerator for itk and vtk.
- MeVisLab Public Sources – Sources of several projects added:
- misc/MLDataCompressors/MLDataCompressor
- misc/MLDataCompressors/MLBZip2DataCompressor
- misc/MLDataCompressors/ZLibDataCompressor
- misc/MLDicomTreeImagePropertyExtension
- std/ML/MLImageFormat
- std/ML/MLImageIterator
- std/ML/MLBitImageTools
- std/ML/MLTypeExtensions
- std/AddOns/VTK/VTKAdapters
- std/AddOns/VTK/WEMVTKAdapters
Known issues:
- The SoGVRVolRen module creates border artifacts when rendering in 2D texturing legacy mode (this should only be an issue on very old graphics boards or older notebooks).
- VC7 and VC8 versions of MeVisLab do not contain the msvc*d.dll debug DLLs, because the Microsoft EULA forbids deploying these files.
- In the Mac OS X version of MeVisLab, "Restart with current network" is not and probably never will be supported.
Version 1.4 (2006-05-31)
MeVisLab Core:
- Fixes in macro reloading process and several other bug fixes
MeVisLab IDE:
- Improved output inspector:
- In addition to ML image and OpenInventor inspectors, specialized inspectors for different MLBase datatypes have been added.
- New inspectors for LUT, CurveData, WEM and GVRVolumeData objects
- ML image and OpenInventor inspectors have been improved.
- Users can add own inspectors for MLBase derived datatypes
- Inspector settings (e.g. details on/off toggle state) are persistent.
- Preferences now contains a "Limits" panel that allows to set the available resources, e.g. texture memory and volume data cache sizes.
- Fixed bug with editing instance name in module inspector
- Improved module reference pages
MeVisLab MDL/Scripting:
- MLABModule::remove() and MLABNetwork::removeModule() are now non-undoable (which is the desired behaviour in most cases), new methods MLABModule::removeUndoable() and MLABNetwork::removeModuleUndoable() remove a module undoable (which is what the former methods did in the previous version).
- MLABField::connectFrom() and MLABModule::connectField() now check if connection is possible and return true on success.
- New MDL tag tabEnabled = BOOL for items of TabView controls. In previous versions, tab view items could only be enabled/disabled by scripting commands.
OpenInventor:
- SoQtSpacemouse: Driver for Spacemouse/Spacetraveller device (SoQtSpacemouse/SoQtSpacemouse.h in InventorWrapper)
ML:
- Minor changes: Warnings removed, bug fixes in (T)SubImage and DateTime classes, some support macros for extended data types added. For details see ML Library Reference.
Other Core Libraries:
- Lookup Tables (MLLUT):
- New modules LUTCompose, DicomLUT, TableLUT
- Fixes in handling of invalid LUTs
- Added sigmoid LUT primitive
- Added interpolation mode "constant" to LUTFLinear/SoLUTEditor
- Volume Rendering (GVR), 2D/3D Visualization:
- New module SoDepthPeelRenderer implements order-independent transparency of unsorted meshes
- New module SoGVRDepthPeel allows to mix transparent geometry into the SoGVRVolRen volume renderer
- SoGVRVolRen and View3D have new "gradientQuality" field specifying the quality of the gradients in illumination mode
- SoView2DScene has been improved and now allows to render a 3D scene with a given slab size onto any SoView2D slice
- SoGVRSlabHint in connection with SoGVRVolRen allows the VolumeRenderer to render slabs on any SoView2D/SoOrthoView2D, see SoGVRSlabHint example network
- Fixed bug in updating View2D extensions
- Winged-Edge Meshes (MLWEM/SoWEM):
- New modules:
- SoWEMDiagnosis: Handling and visualization of errors
- SoWEMSynchroViewer: Synchronized views of WEMs
- WEMImageData: Set image data to the WEM nodes' LUT values
- Enhancements:
- SoWEMRenderer: More detailed impacts on visualization parameters, optional display of statistical data on the WEM
- WEMBoundingBox: Added object-aligned bounding box computation and visualization
- WEMClip Added control of the output parts of the clipped WEM
- WEMCollapseEdges: Enhanced algorithm, edges are collapsed based on angular information now, produces better results due to local smoothing
- WEMInfo: Added statistical output compatile to Diagram2D
- WEMInitialize: Added erroneous test surface
- WEMLoad/WEMSave: Added a proprietary binary .wem format for fast loading and saving
- WEMPerformance: Redesigned module panel and added a module filter
- WEMPurge: Now shows a list of all connected components that can be removed and permits interactive choice, also added an automatic selection option
- WEMSurfaceDistance: Faster computation
- Bug fixes:
- WEMIsoSurface: Fixed a bug with the lutValue interpolation
- WEMSmooth: Fixed Displacement Correction algorithm
- General features:
- Delayed computation of edges for a faster loading/saving/display
- Several new toolbox classes and basic data structures
- Object Manager:
- Fixed a rare event notification bug due to recursive notification
Modules:
- New ML and OpenInventor modules:
- Blinking material: SoFlash
- Segmentation with automatic threshold selection: OtsuThreshold
- Enhancements:
- New modes in TypeArithmetic1 and TypeArithmetic2 for processing vector and matrix images
- Performance optimization of BoundingBox (for integer images), RegionGrowing (output generation), ConnectComp (completely new, more efficient algorithm)
- VoxelizeInvScene is more time efficient now and offers a filling of closed surfaces (scan lines).
- ContourManager: Modification mode for freehand contours, drawing of label string at contours, copy and paste functionality, group ID for 3D objects, binary mask can be restricted to contours with an individual group ID.
- JointHist: New feature to compute a 2D histogram from a single image (i.e. image value vs. x,y,z,c,t or u-coordinate), improved module panel, AutoApply bug resolved.
- Bug Fixes:
- DicomTagModify: AutoApply bug resolved
- OrthoSwapFlip/OrthoReformat3: Fixed bug with certain oblique voxel coordinate systems
- ImgSave: Correctly handle suppression of special tags in case the DICOM tag list is not associated to a file
Add-On's:
- VTK:
- Upgrade to VTK 5.0: About 80 new modules, some modules removed
- A large number of bug fixes (especially in writer modules)
- New module VTKInputInfo to retrieve class parameters (e.g. scalar range)
- New module VTKToMLImage to embed VTK image processing in ML image pipelines and vice versa
- Module MLBaseToVTKPoints provides conversion of Base points, vectors etc. to VTK PolyData.
- For details see main page of VTK module documentation.
- ITK:
- Upgrade to ITK 2.7
- A few new 2.7 modules added (itkMorphologicalGradient-, itkInvertIntensity- and itkModulusImagefilter)
- Some filters with incorrect paging support have been changed to work globally (itkScalarConnectedComponent- and itk*Reconstruction*ImageFilters).
- Metrics support optional mask images now.
Version 1.3 (2006-01-30)
MeVisLab Core:
- Support for user module HTML documentation and index creation
- Destructors of modules are now always called on exit of MeVisLab (to allow user cleanup of resources)
- Several bug fixes
MeVisLab IDE
- Automatic show/hide of open panels when active network is maximized (Panels->Hide Panels of Invisible Networks)
- New tab card "Related" in the FieldInspector for quick access to referenced modules and modules in the same genre/library
- New "Quick Add Module" feature: Typing with the focus on a network automatically activates the module quick search
- New menu items "Show Module in Network" and "Module Context Menu" in the context menu of Field controls and in the widget debug context menu
- Auto-save of untitled networks, optionally restored at restart of MeVisLab after a crash
- (This is especially useful if MeVisLab is started in a debugger and the debugger kills the MeVisLab process.)
- Flexible drag-and-drop handling of files to networks allows users to extend file dropping with their own modules by file extension
- Several bug fixes
MeVisLab MDL/Scripting:
- Added initCommand tag to all GUI controls
- ColorEdit control has new mode = triangle to allow HSV inplace editing of colors
- New tags for MenuItem and SubMenu
- Added additional scripting access methods to various GUI controls
OpenInventor:
ML:
- Revision of mlLinearAlgebra, new classes mat2, mat5 and mat6.
- Several new vector and matrix voxel types
- Many new features in mlAPI and in classes Host, SubImg, TSubImg, BaseOp, PagedImg, Vector and SubImgBox
- Improved documentation
- (See detailed release notes in the ML library reference)
Other Core Libraries:
- Lookup Tables (MLLUT):
- Support for 2D- and 3D-LUTs (especially useful for tagged volume rendering, see GVR)
- New method LUTFunction::isValid() to check whether a LUT function can be rendered
- New module SoLUTEditor for interactive specification of RGBA lookup tables
- New LUT modules LUTChannelMap, LUTCombiner, LUTConcat, LUTBlend, LUTSelect
- Volume Rendering (GVR):
- The GigaVoxelRender (GVR) library has been completely reorganized and rewritten
- A lot of new features and performance optimizations, see the documentation of SoGVRVolRen
- New image object "GVRVolume" representing an image as a multi-resolution octree
- New modules to handle GVRVolumes: GVRImageToVolume, GVRVolumeToImage, GVRVolumeLoad, GVRVolumeSave
- New GVR extension modules: SoGVRTagVolume, SoGVRGradientVolume, SoGVRIlluminationSettings, SoGVRSubVolumeSettings, SoGVRQualitySettings, SoGVRIncrementalUpdater
- Object Manager:
- Improvements and bug fixes
- Kernel Filters (MLKernel):
- Support for separable kernel filters
- Support for multiple inputs and outputs
- Support for different input and output types
- New code examples for kernel classes
Modules:
- New ML modules:
- New arithmetic and conversion modules for improved processing of vector- and matrix-valued images: TypeArithmetics1, TypeArithmetics2, TypeToScalars, TypeFromScalars, TypeComposer*, TypeDecomposer* (* = 8, 16, 32, 64)
- Fast Fourier transform: FFT1D, FFT2D
- Orthogonal min/max/sum/average projection: OrthoProjection
- Geometry: ImageSeparator, InterleaveDimension, SwapDimensions, TransformEdit
- Switch image input streams: Switch1toN
- New Open Inventor modules:
- Display 3D geometry in a SoView2D viewer: SoView2DScene
- Display vector fields in a SoView2D viewer: SoView2DVectorFieldView
- Render into textures, fill rate reduced rendering: SoFramebufferRenderer, SoFramebufferTexture, SoCheckFramebufferObjectSupport
- Load 2D textures from ML images, switch according to complexity requests, enable multi-texturing, etc: SoMLTexture2, SoComplexitySwitch, SoImagePlane, SoTextureUnit
- Display orientation hints within a 3D scene: SoOrientationInset, SoOrientationModel
- New SoTensorFieldVis for 3D tensor and vector visualization
- New 3D viewer with new camera control buttons, customizable buttons and 3D input support: SoCustomExaminerViewer
- New library for dealing with surfaces represented by "winged-edge meshes" (WEMs), including several ML (MLWEM*) and OpenInventor (SoWEM*) modules for generating (iso-surface, load/save), processing (smoothing, primitive reduction, subdivision etc), visualizing (OpenInventor rendering in different modes with LUT support) and for an interactive modification of surfaces
- Special thanks to Bart De Dobbelaer (KU Leuven, Belgium) for his great contribution to this library
- SmallImageInterface (with examples) for simple image processing examples in educational contexts
Add-On's:
- New download package "MeVisLabPublicSources.exe" with complete source codes of selected MeVisLab modules and libraries, considered as additional documentation to the MeVisLab developer
- ITK and VTK:
- ITK Add-On 1.1:
- Based on ITK 1.3 (Nov. 2005), several new modules
- Includes registration framework
- Several new example networks, e.g. from the ITK book
- VTK Add-On "PreAlpha":
- Several hundred VTK modules, some adaptors, and numerous example networks
- Special thanks to Julien Jomier (CADDLab at UNC, North Carolina) for his great contributions to the code generators for ITK and VTK
Version 1.2 (2005-07-28)
MeVisLab Core:
- MeVisLab Core refactored
- Performance of module destruction improved, large speedup when freeing networks/modules
- Improved handling of debug/release libs on Linux systems (with/without _d suffix, as on Windows)
MeVisLab IDE:
- Output Inspector: Improved formatting and layout
Modules:
- New OpenGL support using GLEW and MLOpenGL library
- New module SystemInfo showing details on the OS and OpenGL driver that MeVisLab is running on
- Diagram/curve data classes now available as MLBase objects in MLBase/mlDiagramData.h
- SoView2D and extensions:
- Supports upto 16 bit hardware LUTs on cards that support ARB_fragment_program or OpenGL Shading Language
- LUT support for RGB and RGBA images
- Editing functionality in SoView2DPlane and MPR to allow editing an MPR plane in a 2D viewer interactively
- New module SoView2DBorderHighlight to draw a border around a selected range of slices
- Image import/export:
- Support for JPEG and PNG file formats
- Support for files up to 4GB
- New module DicomRescale
Version 1.1 (2005-04-28)
MeVisLab Core:
- Full unicode support in:
- Networks
- MDL
- Image, Dicom and Base I/O
- MDL:
- Translation support
- New MDL controls: EventFilter, Log, ContextMenu
- PreloadDLL allows to load DLLs on MeVisLab startup (e.g. for adding new types to the ML)
- Various new tags have been added to different controls
- New support for Python scripting language
- New scripting classes/methods:
- New scripting API for LineEdit control
- MLABProcess class for asynchronous process control
- GUI Rescaling improved
MeVisLab IDE:
- Improved Preferences dialog, includes settings controlled by global modules (error handling, tracing, debugging). The corresponding global modules are no longer visible.
- Added "Scripting Assistant" docking window
- Improved advanced search, now including "name+keywords", "common tags" and "seeAlso"
- Bug fixes and improvements in module wizards
Open Inventor:
(See Open Inventor release notes for a complete change log)
- New documentation
- New option to catch, report, and suppress runtime errors and to provide error tracing information
- UTF-8 support for path names
- Several bug fixes
ML:
(See detailed release notes in the ML library reference)
- Tracing functionality added to ML and to many modules. Now runtime catching, tracing and reporting runtime crashes is possible if the ML is configured to do so.
- Platform independent interfaces for unicode strings and file access
- Support for images larger than 4 Giga voxels, handled by several page-based modules
- MLint data type has changed from 32 to 64 bit, which results to 64 bit voxel indexing in several classes (Vector, SubImg, SubImgBox, VirtualVolume, ...).
- Some new extended data types for float vectors (vec2f, ..., vec32f)
- New MultiField classes for signed and unsigned 32 bit integers
- Various new features in classes TSubImg, ErrorOutput, VirtualVolume, and other toolbox classes, in TemplateSupport and API
- Many bug fixes
- Improved ISO and coding style compliance of ML, examples and modules
- Example programs and modules improved and extended
Modules:
- New DicomService module and Windows-NT service
- Image import/export:
- Added "Save DICOM header file only" field in ImgSave for DICOM/TIFF images
- Enabled LZW compression in ImgSave for TIFF images
- Added "Allow overwrite" field in ImgSave
- Added "Page Size Hint" field in ImgLoad to control page size of loaded image data
- Fixed handling of DICOM position coordinates
- SoView2DMarkerEditor:
- New field "selectionBoxesForCurrentOnly" to suppress manipulators of non-current vector markers
- New field "selectiveDrawing"
- Bug fix: markerSize of a connected StylePalette is used now
- New base classes and modules for lookup tables, see misc/MLLUT and ML/MLLUTTools
- Other new modules:
- SoView2DVoxelView module for voxel value inspection (View2D extension)
- Compose/DecomposeArray
- SoSilhouette and SoEdgeEmphasize to draw the outer contour and inner feature lines
- New scripting helper functions:
- assert(), see scripts/debugAssert.js
- Convenience functions for creating HTML tables, see scripts/hypertextHelper.js
- Renamed GlobalStatBase to ImageStat
- Disabled currently unmaintained SoMeasurement modules, select "Deprecated SoMeasurement" group to re-enable
- Bug fixes and improvements in many modules:
- MPR, Reformat, OrthoSwapFlip, OrthoReformat and OrthoView2D support large datasets via paging and virtual volume concepts
- LocalMaxima: Min/max of the output image are set correctly now if the "Return source value" option is enabled
- SmartMarker: Added delay to avoid resetting a smart marker immediately after delete on click
- MorphologicalGradient: Fixed a bug that occured when "threeDimensional" was on
- IntervalThresh: Fixed bug where the output image was not invalidated on disconnected/invalid input
- Added/enhanced drag-and-drop support for LoadBase, ImgLoad, OpenImage, FileDirectory, ObjLoader, MakeName
- ModifyRegion: Fixed "make extensions dividable by" mode
- ComposeBaseList now allows the specification of IDs for both input objects
- ConnectComp: Fixed a few bugs, one of them concerning the largest cluster mode
- LoadBase/SaveBase: Added keyboard shortcuts
- Resample3D bugfix: Several bug fixes, new field "filterAlwaysTolerance" for compensation of rounding errors
- More fixes...
Version 1.0 (2004-08-18)
Core:
- Fixed bug in *.mlab persistence (strings which started with * could not be saved/restored)
- Fixed #ifnset bug in MDL parser
- various minor MeVisLab core fixes and improvements
- Improved multi-user installation
- added UserLibraryPath to Preferences and mevislab.prefs file, DLLs found in UserModulePath are copied into
the UserLibraryPath if it is set, it is automatically added to the PATH/LD_LIBRARY_PATH
InventorWrapper:
- SoSFXVImage was renamed to SoSFMLImage, please adjust your projects to use #include <SoSFMLImage.h> and SoSFMLImage instead of SoSFXVImage
- InventorWrapper API and doxygen docs were cleaned and improved
- removed deprecated sources: SoDatatypes.h (SoMarkerList, SoVectorList)
Wizards:
- Fixed support for target paths which contain spaces
- Fixed minor bugs in Inventor Module Wizard
EatDicom:
- Fixed recursive data scan on Linux
Module changes:
- Fixed popupMenu of SoExaminerViewer
- Minor fixes and improvements to several modules
New Modules:
- AnonymizeMacro
- CacheView
- Checksum
- DicomReceiver
- ImageComposer
- TypeComposer
- TypeDecomposer
- RuntimeDump
New ObjectManager Modules:
The ObjectManager is a new concept that can be used for application-wide
sharing for datastructures and event handling. See the ObjMgr online help
for details.
- ObjBaseTypeConnection
- ObjConstrainedIterator
- ObjDump
- ObjFieldConnection
- ObjInfo
- ObjInspector
- ObjLoader
- ObjLoaderDump
- ObjMgr
- ObjMgrEventClient
- ObjMgrMultiClient
- ObjMgrMultiClient2
- ObjVolume
Version 1.0b2 (2004-06-16)
Wizards:
- All wizards have been improved, the settings of a wizard can now
be saved to a ".wiz" file, so that one can create templates for later
modification/extension. Be careful: re-creating the module/project in
the same place will overwrite existing files!
- New wizard for Inventor modules, allowing the creation of SoNodes
and SoView2DExtensions
Module changes:
- Improvements to ContourManager, LiveWire
- Fixes to DICOM support
- Various diffusion filter modules have been merged to a single, optimized Diffusion module. The experimental ansitropic diffusion filter module AnisoDiffOp has been removed.
- Minor fixes and improvements to several modules
Core:
- New MDL tags Label:textFormat, ToolButton:textPosition, ToolButton:autoScale
- MDL tag CheckBox:command no longer supported, use a FieldListener instead
@IF (ML_HELP)
- Added MLAddEventFilterCB() function to allow modules to process native window events
- Renamed MLMin(), MLMax() functions to MLDataTypeMin/Max(), resp.
- Added FieldContainer::removeField() method
@ENDIF
- Fixed various MeVisLab core bugs
- Documentation improved, although still not perfect...
Version 1.0b1 (2004-05-18)
First public beta version of MeVisLab.