|
Medical Imaging Interaction Toolkit
2026.06.00
Medical Imaging Interaction Toolkit
|
Mapper to resample and display 2D slices of a 3D image. More...
#include <mitkImageVtkMapper2D.h>


Classes | |
| class | LocalStorage |
| Internal class holding the mapper, actor, etc. for each of the 3 2D render windows. More... | |
Public Member Functions | |
| mitkClassMacro (ImageVtkMapper2D, VtkMapper) | |
| Pointer | Clone () const |
| const mitk::Image * | GetInput (void) |
| Get the Image to map. More... | |
| void | Update (mitk::BaseRenderer *renderer) override |
| Check whether the mapper needs to update and regenerate data for the given renderer. More... | |
| vtkProp * | GetVtkProp (mitk::BaseRenderer *renderer) override |
| Get the VTK prop assembly for the given renderer. More... | |
| const LocalStorage * | GetConstLocalStorage (mitk::BaseRenderer *renderer) |
| Get a const pointer to the LocalStorage for the given renderer. More... | |
| void | ApplyRenderingMode (mitk::BaseRenderer *renderer) |
| Apply the rendering mode for the given renderer. More... | |
Public Member Functions inherited from mitk::VtkMapper | |
| mitkClassMacro (VtkMapper, Mapper) | |
| void | MitkRender (mitk::BaseRenderer *renderer, mitk::VtkPropRenderer::RenderType type) override |
| Determine the render pass type and call the appropriate render method. More... | |
| virtual void | MitkRenderOverlay (BaseRenderer *renderer) |
| Check visibility and render the overlay pass. More... | |
| virtual void | MitkRenderOpaqueGeometry (BaseRenderer *renderer) |
| Check visibility and render opaque (untransparent) geometry. More... | |
| virtual void | MitkRenderTranslucentGeometry (BaseRenderer *renderer) |
| Check visibility and render translucent (transparent) geometry. More... | |
| virtual void | MitkRenderVolumetricGeometry (BaseRenderer *renderer) |
| Check visibility and render volumetric geometry. More... | |
| virtual bool | HasVtkProp (const vtkProp *prop, BaseRenderer *renderer) |
| Check whether this mapper owns the specified vtkProp for the given renderer. More... | |
| virtual void | UpdateVtkTransform (mitk::BaseRenderer *renderer) |
| Set the vtkTransform of the m_Prop3D for the current time step of renderer. More... | |
| void | ApplyColorAndOpacityProperties (mitk::BaseRenderer *renderer, vtkActor *actor) override |
| Apply color and opacity properties read from the PropertyList to the given vtkActor. More... | |
| virtual void | ReleaseGraphicsResources (mitk::BaseRenderer *) |
| Release VTK-based graphics resources consumed by this mapper. More... | |
Public Member Functions inherited from mitk::Mapper | |
| mitkClassMacroItkParent (Mapper, itk::Object) | |
| virtual void | SetDataNode (DataNode *_arg) |
| Set the DataNode containing the data to map. More... | |
| virtual DataNode * | GetDataNode () const |
| Get the DataNode containing the data to map. More... | |
| TimeStepType | GetTimestep () const |
| Return the current time step as calculated from the renderer. More... | |
| virtual bool | IsLODEnabled (BaseRenderer *) const |
| Return whether this Mapper currently allows for Level-of-Detail rendering. More... | |
Static Public Member Functions | |
| static Pointer | New () |
| static void | SetDefaultProperties (mitk::DataNode *node, mitk::BaseRenderer *renderer=nullptr, bool overwrite=false) |
| Set default properties for general image rendering on the given DataNode. More... | |
Static Public Member Functions inherited from mitk::Mapper | |
| static void | SetDefaultProperties (DataNode *node, BaseRenderer *renderer=nullptr, bool overwrite=false) |
| Set default values of properties used by this mapper on the given node. More... | |
Protected Member Functions | |
| LocalStorage * | GetLocalStorage (mitk::BaseRenderer *renderer) |
| Get the LocalStorage corresponding to the current renderer. More... | |
| void | TransformActor (mitk::BaseRenderer *renderer) |
| Transforms the actor to the actual position in 3D. More... | |
| void | GeneratePlane (mitk::BaseRenderer *renderer, double planeBounds[6]) |
| Generates a plane according to the size of the resliced image in millimeters. More... | |
| template<typename TPixel > | |
| vtkSmartPointer< vtkPolyData > | CreateOutlinePolyData (mitk::BaseRenderer *renderer) |
| Generates a vtkPolyData object containing the outline of a given binary slice. More... | |
| ImageVtkMapper2D () | |
| ~ImageVtkMapper2D () override | |
| void | GenerateDataForRenderer (mitk::BaseRenderer *renderer) override |
| Does the actual resampling, without rendering the image yet. All the data is generated inside this method. The vtkProp (or Actor) is filled with content (i.e. the resliced image). More... | |
| float | CalculateLayerDepth (mitk::BaseRenderer *renderer) |
| This method uses the vtkCamera clipping range and the layer property to calculate the depth of the object (e.g. image or contour). The depth is used to keep the correct order for the final VTK rendering. More... | |
| void | ApplyLookuptable (mitk::BaseRenderer *renderer) |
| This method applies (or modifies) the lookuptable for all types of images. More... | |
| void | ApplyColorTransferFunction (mitk::BaseRenderer *renderer) |
| This method applies a color transfer function. Internally, a vtkColorTransferFunction is used. This is useful for coloring continuous images (e.g. float) More... | |
| void | ApplyLevelWindow (mitk::BaseRenderer *renderer) |
| ApplyLevelWindow Apply the level window for the given renderer. More... | |
| void | ApplyColor (mitk::BaseRenderer *renderer) |
| Set the color of the image/polydata. More... | |
| void | ApplyOpacity (mitk::BaseRenderer *renderer) |
| Set the opacity of the actor. More... | |
| bool | RenderingGeometryIntersectsImage (const PlaneGeometry *renderingGeometry, SlicedGeometry3D *imageGeometry) |
| Calculates whether the given rendering geometry intersects the given SlicedGeometry3D. More... | |
| void | SetToInvalidState (mitk::ImageVtkMapper2D::LocalStorage *localStorage) |
Protected Member Functions inherited from mitk::VtkMapper | |
| VtkMapper () | |
| ~VtkMapper () override | |
Protected Member Functions inherited from mitk::Mapper | |
| Mapper () | |
| explicit constructor which disallows implicit conversions More... | |
| ~Mapper () override | |
| virtual destructor in order to derive from this class More... | |
| virtual void | CalculateTimeStep (BaseRenderer *renderer) |
| Updates the time step, which is sometimes needed in subclasses. More... | |
| virtual void | ResetMapper (BaseRenderer *) |
| Reset the mapper (i.e., make sure that nothing is displayed) if no valid data is present. In most cases the reimplemented function disables the according actors (toggling visibility off) More... | |
Protected Attributes | |
| mitk::LocalStorageHandler< LocalStorage > | m_LSH |
| The LocalStorageHandler holds all (three) LocalStorages for the three 2D render windows. More... | |
Protected Attributes inherited from mitk::Mapper | |
| mitk::DataNode * | m_DataNode |
Mapper to resample and display 2D slices of a 3D image.
The following image gives a brief overview of the mapping and the involved parts.
First, the image is resliced by means of vtkImageReslice. The volume image serves as input to the mapper in addition to spatial placement of the slice and a few other properties such as thick slices. This code was already present in the old version (mitkImageMapperGL2D).
Next, the obtained slice (m_ReslicedImage) is put into a vtkMitkLevelWindowFilter and the scalar levelwindow, opacity levelwindow and optional clipping to local image bounds are applied
Next, the output of the vtkMitkLevelWindowFilter is used to create a texture (m_Texture) and a plane onto which the texture is rendered (m_Plane). For mapping purposes, a vtkPolyDataMapper (m_Mapper) is utilized. Orthographic projection is applied to create the effect of a 2D image. The mapper and the texture are assigned to the actor (m_Actor) which is passed to the VTK rendering pipeline via the method GetVtkProp().
In order to transform the textured plane to the correct position in space, the same transformation as used for reslicing is applied to both the camera and the vtkActor. All important steps are explained in more detail below. The resulting 2D image (by reslicing the underlying 3D input image appropriately) can either be directly rendered in a 2D view or just be calculated to be used later by another rendering entity, e.g. in texture mapping in a 3D view.
Properties that can be set for images and influence the imageMapper2D are:
The default properties are:
If the modality-property is set for an image, the mapper uses modality-specific default properties, e.g. color maps, if they are defined.
Definition at line 116 of file mitkImageVtkMapper2D.h.
|
protected |
Default constructor
|
overrideprotected |
Default deconstructor
|
protected |
Set the color of the image/polydata.
|
protected |
This method applies a color transfer function. Internally, a vtkColorTransferFunction is used. This is useful for coloring continuous images (e.g. float)
|
protected |
ApplyLevelWindow Apply the level window for the given renderer.
| renderer | Level window for which renderer? |
|
protected |
This method applies (or modifies) the lookuptable for all types of images.
|
protected |
Set the opacity of the actor.
| void mitk::ImageVtkMapper2D::ApplyRenderingMode | ( | mitk::BaseRenderer * | renderer | ) |
Apply the rendering mode for the given renderer.
Switches between different rendering modes (lookup table, color transfer function, etc.) based on the "Image Rendering.Mode" property.
| [in] | renderer | The renderer to apply the rendering mode for. |
|
protected |
This method uses the vtkCamera clipping range and the layer property to calculate the depth of the object (e.g. image or contour). The depth is used to keep the correct order for the final VTK rendering.
| Pointer mitk::ImageVtkMapper2D::Clone | ( | ) | const |
|
protected |
Generates a vtkPolyData object containing the outline of a given binary slice.
| renderer | Pointer to the renderer containing the needed information |
|
overrideprotectedvirtual |
Does the actual resampling, without rendering the image yet. All the data is generated inside this method. The vtkProp (or Actor) is filled with content (i.e. the resliced image).
After generation, a 4x4 transformation matrix(t) of the current slice is obtained from the vtkResliceImage object via GetReslicesAxis(). This matrix is applied to each textured plane (actor->SetUserTransform(t)) to transform everything to the actual 3D position (cf. the following image).
Reimplemented from mitk::Mapper.
|
protected |
Generates a plane according to the size of the resliced image in millimeters.
In VTK a vtkPlaneSource is defined through three points. The origin and two points defining the axes of the plane (see VTK documentation). The origin is set to (xMin; yMin; Z), where xMin and yMin are the minimal bounds of the resliced image in space. Z is relevant for blending and the layer property. The center of the plane (C) is also the center of the view plane (cf. the image above).
| const LocalStorage* mitk::ImageVtkMapper2D::GetConstLocalStorage | ( | mitk::BaseRenderer * | renderer | ) |
Get a const pointer to the LocalStorage for the given renderer.
| [in] | renderer | The renderer whose LocalStorage is requested. |
| const mitk::Image* mitk::ImageVtkMapper2D::GetInput | ( | void | ) |
Get the Image to map.
|
protected |
Get the LocalStorage corresponding to the current renderer.
|
overridevirtual |
Get the VTK prop assembly for the given renderer.
Returns the public prop assembly (either the regular actors or the empty actors if the mapper is in an invalid state).
| [in] | renderer | The renderer for which the prop is requested. |
Implements mitk::VtkMapper.
| mitk::ImageVtkMapper2D::mitkClassMacro | ( | ImageVtkMapper2D | , |
| VtkMapper | |||
| ) |
Standard class typedefs.
|
static |
Method for creation through the object factory.
|
protected |
Calculates whether the given rendering geometry intersects the given SlicedGeometry3D.
This method checks if the given PlaneGeometry intersects the given SlicedGeometry3D. It calculates the distance of the PlaneGeometry to all 8 cornerpoints of the SlicedGeometry3D. If all distances have the same sign (all positive or all negative) there is no intersection. If the distances have different sign, there is an intersection.
|
static |
Set default properties for general image rendering on the given DataNode.
Initializes properties such as opacity, color, binary rendering mode, texture interpolation, lookup table, and transfer function.
| [in] | node | The DataNode on which to set the properties. |
| [in] | renderer | The renderer context (nullptr for default property list). |
| [in] | overwrite | If true, overwrite existing properties. |
|
protected |
Helper function to reset the local storage in order to indicate an invalid state.
|
protected |
Transforms the actor to the actual position in 3D.
| renderer | The current renderer corresponding to the render window. |
|
overridevirtual |
Check whether the mapper needs to update and regenerate data for the given renderer.
Validates the time step and world plane geometry before calling GenerateDataForRenderer().
| [in] | renderer | The renderer to update for. |
Reimplemented from mitk::Mapper.
|
protected |
The LocalStorageHandler holds all (three) LocalStorages for the three 2D render windows.
Definition at line 254 of file mitkImageVtkMapper2D.h.