Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitk::PlaneGeometryDataVtkMapper3D Class Reference

Vtk-based mapper to display a PlaneGeometry in a 3D window. More...

#include <mitkPlaneGeometryDataVtkMapper3D.h>

Inheritance diagram for mitk::PlaneGeometryDataVtkMapper3D:
Collaboration diagram for mitk::PlaneGeometryDataVtkMapper3D:

Classes

class  ActorInfo
 Helper class that associates a vtkActor with an observer on a mapper object. More...
 

Public Member Functions

 mitkClassMacro (PlaneGeometryDataVtkMapper3D, VtkMapper)
 
Pointer Clone () const
 
vtkProp * GetVtkProp (mitk::BaseRenderer *renderer) override
 
void UpdateVtkTransform (mitk::BaseRenderer *renderer) override
 Update the VTK transform for the given renderer. More...
 
virtual const PlaneGeometryData * GetInput ()
 Get the PlaneGeometryData that is being mapped. More...
 
virtual void SetDataStorageForTexture (mitk::DataStorage *storage)
 Set the data storage used for traversing image nodes for texturing. 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...
 
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...
 
virtual void Update (BaseRenderer *renderer)
 Calculate the time step for the current renderer and generate rendering data. 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 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 Types

typedef std::multimap< int, vtkActor * > LayerSortedActorList
 
typedef std::map< ImageVtkMapper2D *, ActorInfo > ActorList
 List holding the vtkActor to map the image into 3D for each ImageMapper. More...
 
typedef itk::MemberCommand< PlaneGeometryDataVtkMapper3D > MemberCommandType
 

Protected Member Functions

 PlaneGeometryDataVtkMapper3D ()
 
 ~PlaneGeometryDataVtkMapper3D () override
 
void GenerateDataForRenderer (BaseRenderer *renderer) override
 Generate the VTK representation for the given renderer. More...
 
void ProcessNode (DataNode *node, BaseRenderer *renderer, Surface *surface, LayerSortedActorList &layerSortedActors)
 Process a single data node, creating texture actors for the plane surface. More...
 
void ImageMapperDeletedCallback (itk::Object *caller, const itk::EventObject &event)
 Callback invoked when an ImageVtkMapper2D is destroyed. More...
 
- 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

vtkAssembly * m_Prop3DAssembly
 general PropAssembly to hold the entire scene More...
 
vtkAssembly * m_ImageAssembly
 PropAssembly to hold the planes. More...
 
PlaneGeometryDataToSurfaceFilter::Pointer m_SurfaceCreator
 
BoundingBox::Pointer m_SurfaceCreatorBoundingBox
 
BoundingBox::PointsContainer::Pointer m_SurfaceCreatorPointsContainer
 
vtkFeatureEdges * m_Edges
 Edge extractor for tube-shaped frame. More...
 
vtkTransformPolyDataFilter * m_EdgeTransformer
 Filter to apply object transform to the extracted edges. More...
 
vtkTubeFilter * m_EdgeTuber
 Source to create the tube-shaped frame
More...
 
vtkPolyDataMapper * m_EdgeMapper
 Mapper for the tube-shaped frame
More...
 
vtkActor * m_EdgeActor
 Actor for the tube-shaped frame. More...
 
vtkPolyDataMapper * m_BackgroundMapper
 Mapper for black plane background. More...
 
vtkActor * m_BackgroundActor
 Actor for black plane background. More...
 
vtkTransformPolyDataFilter * m_NormalsTransformer
 Transforms the surface before applying the glyph filter. More...
 
vtkPolyDataMapper * m_FrontNormalsMapper
 Mapper for normals representation (thin lines) More...
 
vtkPolyDataMapper * m_BackNormalsMapper
 
vtkHedgeHog * m_FrontHedgeHog
 Generates lines for surface normals. More...
 
vtkHedgeHog * m_BackHedgeHog
 
vtkActor * m_FrontNormalsActor
 Actor to hold the normals arrows. More...
 
vtkActor * m_BackNormalsActor
 
vtkCleanPolyData * m_Cleaner
 
bool m_NormalsActorAdded
 
mitk::WeakPointer< mitk::DataStorage > m_DataStorage
 The DataStorage defines which part of the data tree is traversed for rendering. More...
 
ActorList m_ImageActors
 
MemberCommandType::Pointer m_ImageMapperDeletedCommand
 
- Protected Attributes inherited from mitk::Mapper
mitk::DataNode * m_DataNode
 

Detailed Description

Vtk-based mapper to display a PlaneGeometry in a 3D window.

Uses a PlaneGeometryDataToSurfaceFilter object to create a vtkPolyData representation of a given PlaneGeometry instance. PlaneGeometry may either contain a common flat plane or a curved plane (ThinPlateSplineCurvedGeometry).

The vtkPolyData object is then decorated by a colored tube on the edges and by image textures if possible (currently this requires that there is a 2D render window rendering the same geometry as this mapper).

Properties that influence rendering are:

  • "draw edges": (Bool) Toggle display of the tubed frame
  • "color": (ColorProperty) Color of the tubed frame.
  • "xresolution": (FloatProperty) Resolution (=number of tiles) in x direction. Only relevant for ThinPlateSplineCurvedGeometry
  • "yresolution": (FloatProperty) Resolution (=number of tiles) in y direction. Only relevant for ThinPlateSplineCurvedGeometry
  • "draw normals 3D": (BoolProperty) If true, a vtkHedgeHog is used to display normals for the generated surface object. Useful to distinguish front and back of a plane. Hedgehogs are colored according to "front color" and "back color"
  • "color two sides": (BoolProperty) If true, front and back side of the plane are colored differently ("front color" and "back color")
  • "invert normals": (BoolProperty) Inverts front/back for display.
  • "front color": (ColorProperty) Color for front side of the plane
  • "back color": (ColorProperty) Color for back side of the plane
  • "material.representation": (BoolProperty) Choose the representation to draw the mesh in (Surface, Wireframe, Point Cloud)
  • "surfacegeometry": TODO: Add documentation
  • "LookupTable": (LookupTableProperty) Set the lookuptable to render with.

Note: The following properties are set for each image individually, and thus, also influence the rendering of this mapper:

  • "texture interpolation": (BoolProperty) Turn on/off the texture interpolation of each image
  • "use color": (BoolProperty) Decide whether we want to use the color property or a lookuptable.
  • "binary": (BoolProperty) Binary image handling: Color the value=1.0 with the color property and make the background (value=0.0) of the image translucent.
  • "layer": (IntProperty) Controls what image is considered "on top" of another. In the case that two should inhabit the same space, higher layer occludes lower layer.
  • "opacity": (FloatProperty) Set the opacity for each rendered image.
  • "color": (FloatProperty) Set the color for each rendered image.

Definition at line 84 of file mitkPlaneGeometryDataVtkMapper3D.h.

Member Typedef Documentation

◆ ActorList

List holding the vtkActor to map the image into 3D for each ImageMapper.

Definition at line 215 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ LayerSortedActorList

typedef std::multimap<int, vtkActor *> mitk::PlaneGeometryDataVtkMapper3D::LayerSortedActorList
protected

Definition at line 120 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ MemberCommandType

Constructor & Destructor Documentation

◆ PlaneGeometryDataVtkMapper3D()

mitk::PlaneGeometryDataVtkMapper3D::PlaneGeometryDataVtkMapper3D ( )
protected

◆ ~PlaneGeometryDataVtkMapper3D()

mitk::PlaneGeometryDataVtkMapper3D::~PlaneGeometryDataVtkMapper3D ( )
overrideprotected

Member Function Documentation

◆ Clone()

Pointer mitk::PlaneGeometryDataVtkMapper3D::Clone ( ) const

◆ GenerateDataForRenderer()

void mitk::PlaneGeometryDataVtkMapper3D::GenerateDataForRenderer ( BaseRenderer *  renderer)
overrideprotectedvirtual

Generate the VTK representation for the given renderer.

Reimplemented from mitk::Mapper.

◆ GetInput()

virtual const PlaneGeometryData* mitk::PlaneGeometryDataVtkMapper3D::GetInput ( )
virtual

Get the PlaneGeometryData that is being mapped.

Returns
The PlaneGeometryData input of this mapper.

◆ GetVtkProp()

vtkProp* mitk::PlaneGeometryDataVtkMapper3D::GetVtkProp ( mitk::BaseRenderer *  renderer)
overridevirtual

Overloaded since the displayed color-frame of the image mustn't be transformed after generation of poly data, but before (vertex coordinates only)

Implements mitk::VtkMapper.

◆ ImageMapperDeletedCallback()

void mitk::PlaneGeometryDataVtkMapper3D::ImageMapperDeletedCallback ( itk::Object *  caller,
const itk::EventObject &  event 
)
protected

Callback invoked when an ImageVtkMapper2D is destroyed.

◆ mitkClassMacro()

mitk::PlaneGeometryDataVtkMapper3D::mitkClassMacro ( PlaneGeometryDataVtkMapper3D  ,
VtkMapper   
)

◆ New()

static Pointer mitk::PlaneGeometryDataVtkMapper3D::New ( )
static

◆ ProcessNode()

void mitk::PlaneGeometryDataVtkMapper3D::ProcessNode ( DataNode *  node,
BaseRenderer *  renderer,
Surface *  surface,
LayerSortedActorList &  layerSortedActors 
)
protected

Process a single data node, creating texture actors for the plane surface.

◆ SetDataStorageForTexture()

virtual void mitk::PlaneGeometryDataVtkMapper3D::SetDataStorageForTexture ( mitk::DataStorage *  storage)
virtual

Set the data storage used for traversing image nodes for texturing.

All images found when traversing the data tree that are resliced by an ImageVtkMapper2D will be mapped as textures. This allows using a data storage other than the default.

Parameters
storageThe data storage to traverse for image nodes.

◆ UpdateVtkTransform()

void mitk::PlaneGeometryDataVtkMapper3D::UpdateVtkTransform ( mitk::BaseRenderer *  renderer)
overridevirtual

Update the VTK transform for the given renderer.

Reimplemented from mitk::VtkMapper.

Member Data Documentation

◆ m_BackgroundActor

vtkActor* mitk::PlaneGeometryDataVtkMapper3D::m_BackgroundActor
protected

Actor for black plane background.

Definition at line 166 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_BackgroundMapper

vtkPolyDataMapper* mitk::PlaneGeometryDataVtkMapper3D::m_BackgroundMapper
protected

Mapper for black plane background.

Definition at line 163 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_BackHedgeHog

vtkHedgeHog* mitk::PlaneGeometryDataVtkMapper3D::m_BackHedgeHog
protected

Definition at line 177 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_BackNormalsActor

vtkActor* mitk::PlaneGeometryDataVtkMapper3D::m_BackNormalsActor
protected

Definition at line 181 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_BackNormalsMapper

vtkPolyDataMapper* mitk::PlaneGeometryDataVtkMapper3D::m_BackNormalsMapper
protected

Definition at line 173 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_Cleaner

vtkCleanPolyData* mitk::PlaneGeometryDataVtkMapper3D::m_Cleaner
protected

Cleans the polyline in order to avoid phantom boundaries

Definition at line 184 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_DataStorage

mitk::WeakPointer<mitk::DataStorage> mitk::PlaneGeometryDataVtkMapper3D::m_DataStorage
protected

The DataStorage defines which part of the data tree is traversed for rendering.

Definition at line 190 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_EdgeActor

vtkActor* mitk::PlaneGeometryDataVtkMapper3D::m_EdgeActor
protected

Actor for the tube-shaped frame.

Definition at line 160 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_EdgeMapper

vtkPolyDataMapper* mitk::PlaneGeometryDataVtkMapper3D::m_EdgeMapper
protected

Mapper for the tube-shaped frame

Definition at line 157 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_Edges

vtkFeatureEdges* mitk::PlaneGeometryDataVtkMapper3D::m_Edges
protected

Edge extractor for tube-shaped frame.

Definition at line 148 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_EdgeTransformer

vtkTransformPolyDataFilter* mitk::PlaneGeometryDataVtkMapper3D::m_EdgeTransformer
protected

Filter to apply object transform to the extracted edges.

Definition at line 151 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_EdgeTuber

vtkTubeFilter* mitk::PlaneGeometryDataVtkMapper3D::m_EdgeTuber
protected

Source to create the tube-shaped frame

Definition at line 154 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_FrontHedgeHog

vtkHedgeHog* mitk::PlaneGeometryDataVtkMapper3D::m_FrontHedgeHog
protected

Generates lines for surface normals.

Definition at line 176 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_FrontNormalsActor

vtkActor* mitk::PlaneGeometryDataVtkMapper3D::m_FrontNormalsActor
protected

Actor to hold the normals arrows.

Definition at line 180 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_FrontNormalsMapper

vtkPolyDataMapper* mitk::PlaneGeometryDataVtkMapper3D::m_FrontNormalsMapper
protected

Mapper for normals representation (thin lines)

Definition at line 172 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_ImageActors

ActorList mitk::PlaneGeometryDataVtkMapper3D::m_ImageActors
protected

Definition at line 216 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_ImageAssembly

vtkAssembly* mitk::PlaneGeometryDataVtkMapper3D::m_ImageAssembly
protected

PropAssembly to hold the planes.

Definition at line 139 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_ImageMapperDeletedCommand

MemberCommandType::Pointer mitk::PlaneGeometryDataVtkMapper3D::m_ImageMapperDeletedCommand
protected

Definition at line 220 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_NormalsActorAdded

bool mitk::PlaneGeometryDataVtkMapper3D::m_NormalsActorAdded
protected

Internal flag, if actors for normals are already added to m_Prop3DAssembly

Definition at line 187 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_NormalsTransformer

vtkTransformPolyDataFilter* mitk::PlaneGeometryDataVtkMapper3D::m_NormalsTransformer
protected

Transforms the surface before applying the glyph filter.

Definition at line 169 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_Prop3DAssembly

vtkAssembly* mitk::PlaneGeometryDataVtkMapper3D::m_Prop3DAssembly
protected

general PropAssembly to hold the entire scene

Definition at line 136 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_SurfaceCreator

PlaneGeometryDataToSurfaceFilter::Pointer mitk::PlaneGeometryDataVtkMapper3D::m_SurfaceCreator
protected

Definition at line 141 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_SurfaceCreatorBoundingBox

BoundingBox::Pointer mitk::PlaneGeometryDataVtkMapper3D::m_SurfaceCreatorBoundingBox
protected

Definition at line 143 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_SurfaceCreatorPointsContainer

BoundingBox::PointsContainer::Pointer mitk::PlaneGeometryDataVtkMapper3D::m_SurfaceCreatorPointsContainer
protected

Definition at line 145 of file mitkPlaneGeometryDataVtkMapper3D.h.


The documentation for this class was generated from the following file: