MITK 1.3

MITK 1.2

MITK 2.0 Key changes from 1.x


    (1) NEW fully support of out-of-core data set, including out-of-core volume and out-of-core mesh: update the class hierarchy of mitkDataObject; add mitkOoCVolume, mitkOoCTriangleMesh and mitkHEOoCTriangleMesh to support out-of-core volume, mesh and half-edge mesh:
        Some changes to the interfaces:
        a. mitkVolume::Allocate() no longer return the pointer to the volume data, return a bool value to indicate whether the space allocation is successful;
        b. mitkVolume::GetData() does not always return a valid pointer to the volume data, it will return NULL for mitkOoCVolume;
        c. mitkVolume add new interfaces (e.g. GetSliceForRead(), GetSliceForWrite(), GetSliceForReadWrite(), ReadSliceData(), WriteSliceData(), etc.) for accessing slice data in the volume which are recommended to use (see class documentation for details);
        d. mitkMesh::GetVertexData() and mitkMesh::GetFaceData() do not always return the valid pointers to the vertex/face data, they will return NULL for out-of-core mesh;
        e. mitkMesh add new interfaces (e.g. GetVertex(), GetFace(), SetVertex(), SetFace(), etc.) for accessing the vertex/face data(see class documentation for etails).

    (2) NEW mitkOoCVolumeRayCastCompositeFunction and mitkOoCVolumeRendererRayCasting classes: provide out-of-core volume ray casting algorithm;

    (3) NEW mitkOoCVolumeRendererTexture3D class: provide 3D texture based volume rendering algorithm;

    (4) NEW mitkOoCSurfaceRendererStandard and mitkOoCSurfaceRendererUseVA classes: support surface rendering for the out-of-core mesh;

    (5) NEW mitkCacheVolumeReader and mitkCacheVolumeWriter classes: provide I/O functions for the disk cache data of mitkOoCVolume, which can reuse the cache data and accelerate the loading process of the out-of-core volume data;

    (6) UPDATE mitkMarchingCubes and mitkBinMarchingCubes classes: provide out-of-core Marching Cubes algorithm;

    (7) UPDATE the basic I/O classes (e.g. mitkDICOMReader/Wirter, etc.): support out-of-core data I/O;

    (8) UPDATE filter classes: support out-of-core input and output data;

    (9) UPDATE examples: add out-of-core test part, configure two lines in MITKTest.h #define TEST_OOC // comment it and rebuild to remove out-of-core test part char const DISK_CACHE_PATH[] = "i:\\temp\\ooctemp\\";

    (10) Fix others bugs found in MITK 1.x.

MITK 1.3 Key changes from 1.2


    (1) Improvement and update of the registration framework, including the changes of mitkRegistrationFilter, mitkMetric, mitkInterpolateFilter, etc., and changing the data type of the internal computation to 32bit float so as to simplify the algorithm implementation;

    (2) NEW mitkLinearInterpolateFilter class: provide bi-linear and tri-linear interpolation for registration algorithm;

    (3) NEW mitkBSplineInterpolateFilter class: provide B spline interpolation for registration algorithm;

    (4) NEW mitkGradientDescentOptimizer class: provide a Gradient Descent Optimizer for registration algorithm;

    (5) NEW mitkGaussianDerivativeImageFilter class: provide Gaussian Derivative Recursive algorithm for the registration optimizer;

    (6) NEW mitkResampleFilter class: to get multi-resolution images;

    (7) NEW Splatting volume rendering algorithm, including mitkVolumeRendererSplatting (main algorithm class), mitkFootprint and its sub-classes, mitkVolumeSplatFunction and its sub-classes, mitkSplatCamera (specific camera for splatting), etc.

    (8) NEW mitkVolumeRendererTexture3D class: provide volume rendering based on 3D texture acceleration;

    (9) Add support for handling mouse wheel message;

    (10) Add calculation of the frame speed in mitkView;

    (11) Add a registration example (Examples\ImageRegistration);

    (12) Add a Splatting volume rendering example (Examples\VolumeSplatting);

    (13) Add renderer switcher (ray casting <-> 3d texture) to the "VolRen" example, and displaying the frame speed in the title bar;

    (14) mitkVolumeCropFilter & mitkVolumeResizeFilter: fix bug of setting wrong pixel spacings for the output volume;

    (15) Fix others bugs found in MITK 1.2.

MITK 1.2 Key changes from 1.1


    (1) mitkReslicePlaneWidgetModel & mitkReslicePlaneWidgetModel: Add separate control for each side of the plane: select a side with left button pressed and drag to move the selected side on the plane, so as to change the width or height of the plane; select a side with right button pressed and drag to rotate the plane around the midline of the plane. The zooming of the plane is also improved to keep the change following the movement of the mouse;

    (2) mitkVolumeRendererRayCasting & mitkVolumeRendererRayCastingLoD: Solve the problem that when the pixel spacing is 1.0mm (e.g. 0.001mm) the rendering result is too small to see. This change also affects the member functions GetBounds() and GetCenter() of mitkVolumeModel. They return the bounding box and center point in voxel space in MITK 1.1, but now return them in physical space (model space). The bug of intermixing rendering with other models is also fixed and the rendering result is improved (note that intermixing rendering is still not perfect now because of the particularity of the volume rendering algorithm).

    (3) mitkVolumeRenderer: Because of the changes in (2), mitkVolumeRenderer accepts clipping plane in model space now by default. In order to keep compatibility with old codes, a new function SetAdjustClippingPlane() is added. If you use AddClippingPlane() to add clipping plane in the voxel space when performing volume rendering, please call aVolModel->GetRenderer()->SetAdjustClippingPlane(false) first.

    (4) mitkQEMSimplification: Add some constraints to improve the simplification result;

    (5) mitkHEMesh: Fix the bug of vertex manifold test;

    (6) mitkWidgetModel3D: Fix bugs in _drawCylinder() function and _drawCone() function;

    (7) mitkSurfaceRendererUseVBO: Fix a memory operation bug;

    (8) mitkMesh: Add a function TestClockWise() to test the orientation of front-facing polygons;

    (9) mitkMatrix & mitkVector: Add SSE acceleration;

    (10) Improve "Examples/Demo" by adding pixel information of current mouse position in the image view to the status-bar.

    (11) Complete the GetRegionMask() functions of 2D widgets, and add an example "Examples/InteractiveSegment" to demonstrate the use of these functions: interactive segmentation. At the same time, the "InteractiveSegment" example also introduces how to add 2D widgets by mouse interactively.

    (12) Improve "Examples/VolRen" by adding clipping function using mitkReslicePlaneWidgetModel or mitkReslicePlaneWidgetModel. Now you can use mouse to control the clipping plane interactively.

    (13) Fix others bugs found in MITK 1.1.