Medical Imaging Interaction Toolkit  2018.4.99-65942676
Medical Imaging Interaction Toolkit
mitk::PlaneGeometryDataVtkMapper3D Class Reference

Vtk-based mapper to display a PlaneGeometry in a 3D windowUses 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). More...

#include <mitkPlaneGeometryDataVtkMapper3D.h>

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

Classes

class  ActorInfo
 

Public Types

typedef PlaneGeometryDataVtkMapper3D Self
 
typedef VtkMapper Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
- Public Types inherited from mitk::VtkMapper
typedef VtkMapper Self
 
typedef Mapper Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
- Public Types inherited from mitk::Mapper
typedef Mapper Self
 
typedef itk::Object Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 

Public Member Functions

virtual std::vector< std::string > GetClassHierarchy () const override
 
virtual const char * GetClassName () const
 
Pointer Clone () const
 
vtkProp * GetVtkProp (mitk::BaseRenderer *renderer) override
 
void UpdateVtkTransform (mitk::BaseRenderer *renderer) override
 Set the vtkTransform of the m_Prop3D for the current time step of renderer. More...
 
virtual const PlaneGeometryDataGetInput ()
 Get the PlaneGeometryData to map. More...
 
virtual void SetDataStorageForTexture (mitk::DataStorage *storage)
 All images found when traversing the (sub-) tree starting at iterator which are resliced by an ImageVtkMapper2D will be mapped. This method is used to set the data storage to traverse. This offers the possibility to use this mapper for other data storages (not only the default data storage). More...
 
- Public Member Functions inherited from mitk::VtkMapper
virtual bool IsVtkBased () const override
 Returns whether this is an vtk-based mapper. More...
 
void MitkRender (mitk::BaseRenderer *renderer, mitk::VtkPropRenderer::RenderType type) override
 Determines which geometry should be rendered (opaque, translucent, volumetric, overlay) and calls the appropriate function. More...
 
virtual void MitkRenderOverlay (BaseRenderer *renderer)
 Checks visibility and renders the overlay. More...
 
virtual void MitkRenderOpaqueGeometry (BaseRenderer *renderer)
 Checks visibility and renders untransparent geometry. More...
 
virtual void MitkRenderTranslucentGeometry (BaseRenderer *renderer)
 Checks visiblity and renders transparent geometry. More...
 
virtual void MitkRenderVolumetricGeometry (BaseRenderer *renderer)
 Checks visibility and renders volumes. More...
 
virtual bool HasVtkProp (const vtkProp *prop, BaseRenderer *renderer)
 Returns true if this mapper owns the specified vtkProp for the given BaseRenderer. More...
 
virtual void ApplyProperties (vtkActor *actor, mitk::BaseRenderer *renderer)
 Apply color and opacity properties read from the PropertyList. More...
 
void ApplyShaderProperties (mitk::BaseRenderer *)
 
void ApplyColorAndOpacityProperties (mitk::BaseRenderer *renderer, vtkActor *actor) override
 Apply color and opacity properties read from the PropertyList. Called by mapper subclasses. More...
 
virtual void ReleaseGraphicsResources (mitk::BaseRenderer *)
 Release vtk-based graphics resources that are being consumed by this mapper. More...
 
- Public Member Functions inherited from mitk::Mapper
virtual void SetDataNode (DataNode *_arg)
 Set the DataNode containing the data to map. More...
 
virtual DataNodeGetDataNode () const
 Get the DataNode containing the data to map. Method only returns valid DataNode Pointer if the mapper belongs to a data node. Otherwise, the returned DataNode Pointer might be invalid. More...
 
BaseDataGetData () const
 Get the data to map. More...
 
virtual bool GetColor (float rgb[3], BaseRenderer *renderer, const char *name="color") const
 Convenience access method for color properties (instances of ColorProperty) More...
 
virtual bool GetVisibility (bool &visible, BaseRenderer *renderer, const char *name="visible") const
 Convenience access method for visibility properties (instances of BoolProperty) More...
 
virtual bool GetOpacity (float &opacity, BaseRenderer *renderer, const char *name="opacity") const
 Convenience access method for opacity properties (instances of FloatProperty) More...
 
virtual bool GetLevelWindow (LevelWindow &levelWindow, BaseRenderer *renderer, const char *name="levelwindow") const
 Convenience access method for color properties (instances of LevelWindoProperty) More...
 
virtual bool IsVisible (BaseRenderer *renderer, const char *name="visible") const
 Convenience access method for visibility properties (instances of BoolProperty). Return value is the visibility. Default is visible==true, i.e., true is returned even if the property (propertyKey) is not found. More...
 
virtual void Update (BaseRenderer *renderer)
 Calls the time step of the input data for the specified renderer and checks whether the time step is valid and calls method GenerateDataForRenderer() More...
 
int GetTimestep () const
 Returns the current time step as calculated from the renderer. More...
 
virtual bool IsLODEnabled (BaseRenderer *) const
 

Static Public Member Functions

static const char * GetStaticNameOfClass ()
 
static Pointer New ()
 
- Static Public Member Functions inherited from mitk::VtkMapper
static const char * GetStaticNameOfClass ()
 
- Static Public Member Functions inherited from mitk::Mapper
static const char * GetStaticNameOfClass ()
 
static void SetDefaultProperties (DataNode *node, BaseRenderer *renderer=nullptr, bool overwrite=false)
 Set default values of properties used by this mapper to node. More...
 

Protected Types

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

Protected Member Functions

 PlaneGeometryDataVtkMapper3D ()
 
 ~PlaneGeometryDataVtkMapper3D () override
 
void GenerateDataForRenderer (BaseRenderer *renderer) override
 Generate the data needed for rendering into renderer. More...
 
void ProcessNode (DataNode *node, BaseRenderer *renderer, Surface *surface, LayerSortedActorList &layerSortedActors)
 
void ImageMapperDeletedCallback (itk::Object *caller, const itk::EventObject &event)
 
- 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 GenerateData ()
 Generate the data needed for rendering (independent of a specific renderer) 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 suface 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::DataStoragem_DataStorage
 The DataStorage defines which part of the data tree is traversed for renderering. More...
 
ActorList m_ImageActors
 
MemberCommandType::Pointer m_ImageMapperDeletedCommand
 
- Protected Attributes inherited from mitk::Mapper
mitk::DataNodem_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.

The internal filter pipeline which combines a (sometimes deformed) 2D surface with a nice frame and image textures is illustrated in the following sketch:

mitkPlaneGeometryDataVtkMapper3D.png
Internal filter pipeline

Definition at line 94 of file mitkPlaneGeometryDataVtkMapper3D.h.

Member Typedef Documentation

◆ ActorList

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

Definition at line 213 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ ConstPointer

◆ LayerSortedActorList

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

Definition at line 126 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ MemberCommandType

◆ Pointer

◆ Self

◆ Superclass

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 )
overrideprotectedvirtual

Generate the data needed for rendering into renderer.

Reimplemented from mitk::Mapper.

◆ GetClassHierarchy()

virtual std::vector<std::string> mitk::PlaneGeometryDataVtkMapper3D::GetClassHierarchy ( ) const
inlineoverridevirtual

Reimplemented from mitk::VtkMapper.

Definition at line 97 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ GetClassName()

virtual const char* mitk::PlaneGeometryDataVtkMapper3D::GetClassName ( ) const
virtual

Reimplemented from mitk::VtkMapper.

◆ GetInput()

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

Get the PlaneGeometryData to map.

◆ GetStaticNameOfClass()

static const char* mitk::PlaneGeometryDataVtkMapper3D::GetStaticNameOfClass ( )
inlinestatic

Definition at line 97 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ 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

◆ New()

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

◆ ProcessNode()

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

◆ SetDataStorageForTexture()

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

All images found when traversing the (sub-) tree starting at iterator which are resliced by an ImageVtkMapper2D will be mapped. This method is used to set the data storage to traverse. This offers the possibility to use this mapper for other data storages (not only the default data storage).

◆ UpdateVtkTransform()

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

Set the vtkTransform of the m_Prop3D for the current time step of renderer.

Called by mitk::VtkPropRenderer::Update before rendering. This method will transform all actors (e.g. of an vtkAssembly) according the geometry.

Warning
This method transforms only props which derive from vtkProp3D. Make sure to use vtkAssembly, if you have multiple props. vtkPropAssembly does not work, since it derives from vtkProp.

Reimplemented from mitk::VtkMapper.

Member Data Documentation

◆ m_BackgroundActor

vtkActor* mitk::PlaneGeometryDataVtkMapper3D::m_BackgroundActor
protected

Actor for black plane background.

Definition at line 169 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_BackgroundMapper

vtkPolyDataMapper* mitk::PlaneGeometryDataVtkMapper3D::m_BackgroundMapper
protected

Mapper for black plane background.

Definition at line 166 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_BackHedgeHog

vtkHedgeHog* mitk::PlaneGeometryDataVtkMapper3D::m_BackHedgeHog
protected

Definition at line 180 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_BackNormalsActor

vtkActor* mitk::PlaneGeometryDataVtkMapper3D::m_BackNormalsActor
protected

Definition at line 184 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_BackNormalsMapper

vtkPolyDataMapper* mitk::PlaneGeometryDataVtkMapper3D::m_BackNormalsMapper
protected

Definition at line 176 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_Cleaner

vtkCleanPolyData* mitk::PlaneGeometryDataVtkMapper3D::m_Cleaner
protected

Cleans the polyline in order to avoid phantom boundaries

Definition at line 187 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 renderering.

Definition at line 193 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_EdgeActor

vtkActor* mitk::PlaneGeometryDataVtkMapper3D::m_EdgeActor
protected

Actor for the tube-shaped frame.

Definition at line 163 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_EdgeMapper

vtkPolyDataMapper* mitk::PlaneGeometryDataVtkMapper3D::m_EdgeMapper
protected

Mapper for the tube-shaped frame.

Definition at line 160 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_Edges

vtkFeatureEdges* mitk::PlaneGeometryDataVtkMapper3D::m_Edges
protected

Edge extractor for tube-shaped frame.

Definition at line 151 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_EdgeTransformer

vtkTransformPolyDataFilter* mitk::PlaneGeometryDataVtkMapper3D::m_EdgeTransformer
protected

Filter to apply object transform to the extracted edges.

Definition at line 154 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_EdgeTuber

vtkTubeFilter* mitk::PlaneGeometryDataVtkMapper3D::m_EdgeTuber
protected

Source to create the tube-shaped frame.

Definition at line 157 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_FrontHedgeHog

vtkHedgeHog* mitk::PlaneGeometryDataVtkMapper3D::m_FrontHedgeHog
protected

Generates lines for surface normals.

Definition at line 179 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_FrontNormalsActor

vtkActor* mitk::PlaneGeometryDataVtkMapper3D::m_FrontNormalsActor
protected

Actor to hold the normals arrows.

Definition at line 183 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_FrontNormalsMapper

vtkPolyDataMapper* mitk::PlaneGeometryDataVtkMapper3D::m_FrontNormalsMapper
protected

Mapper for normals representation (thin lines)

Definition at line 175 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_ImageActors

ActorList mitk::PlaneGeometryDataVtkMapper3D::m_ImageActors
protected

Definition at line 214 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_ImageAssembly

vtkAssembly* mitk::PlaneGeometryDataVtkMapper3D::m_ImageAssembly
protected

PropAssembly to hold the planes.

Definition at line 142 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_ImageMapperDeletedCommand

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

Definition at line 218 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 190 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_NormalsTransformer

vtkTransformPolyDataFilter* mitk::PlaneGeometryDataVtkMapper3D::m_NormalsTransformer
protected

Transforms the suface before applying the glyph filter.

Definition at line 172 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_Prop3DAssembly

vtkAssembly* mitk::PlaneGeometryDataVtkMapper3D::m_Prop3DAssembly
protected

general PropAssembly to hold the entire scene

Definition at line 139 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_SurfaceCreator

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

Definition at line 144 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_SurfaceCreatorBoundingBox

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

Definition at line 146 of file mitkPlaneGeometryDataVtkMapper3D.h.

◆ m_SurfaceCreatorPointsContainer

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

Definition at line 148 of file mitkPlaneGeometryDataVtkMapper3D.h.


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