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

VtkPropRenderer. More...

#include <mitkVtkPropRenderer.h>

Inheritance diagram for mitk::VtkPropRenderer:
Collaboration diagram for mitk::VtkPropRenderer:

Public Types

enum  RenderType { Opaque, Translucent, Overlay, Volumetric }
 
enum  PickingMode { WorldPointPicking, PointPicking, CellPicking }
 
typedef VtkPropRenderer Self
 
typedef BaseRenderer Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef std::map< int, Mapper * > MappersMapType
 
- Public Types inherited from mitk::BaseRenderer
enum  StandardMapperSlot { Standard2D, Standard3D }
 
enum  ViewDirection { ViewDirection::AXIAL, ViewDirection::SAGITTAL, ViewDirection::CORONAL, ViewDirection::THREE_D }
 Possible view directions for render windows. More...
 
typedef std::map< vtkRenderWindow *, BaseRenderer * > BaseRendererMapType
 
typedef BaseRenderer Self
 
typedef itk::Object Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef int MapperSlotId
 MapperSlotId defines which kind of mapper (e.g. 2D or 3D) should be used. More...
 

Public Member Functions

virtual std::vector< std::string > GetClassHierarchy () const override
 
virtual const char * GetClassName () const
 
void SetPropertyKeys (vtkInformation *info)
 Store/propagate vtkInformation during rendering. More...
 
int Render (RenderType type)
 
virtual void PrepareRender ()
 This methods contains all method neceassary before a VTK Render() call. More...
 
virtual void MakeCurrent ()
 
void SetDataStorage (mitk::DataStorage *storage) override
 set the datastorage that will be used for rendering More...
 
void InitRenderer (vtkRenderWindow *renderwindow) override
 Initialize the renderer with a RenderWindow (renderwindow). More...
 
virtual void Update (mitk::DataNode *datatreenode)
 
void SetMapperID (const MapperSlotId mapperId) override
 Set the MapperSlotId to use. More...
 
void InitSize (int w, int h) override
 Set the initial size. Called by RenderWindow after it has become visible for the first time. More...
 
void Resize (int w, int h) override
 Called to inform the renderer that the RenderWindow has been resized. More...
 
 itkSetEnumMacro (PickingMode, PickingMode)
 Set the picking mode. This method is used to set the picking mode for 3D object picking. The user can select one of the three options WorldPointPicking, PointPicking and CellPicking. The first option uses the zBuffer from graphics rendering, the second uses the 3D points from the closest surface mesh, and the third option uses the cells of that mesh. The last option is the slowest, the first one the fastest. However, the first option cannot use transparent data object and the tolerance of the picked position to the selected point should be considered. PointPicking also need a tolerance around the picking position to select the closest point in the mesh. The CellPicker performs very well, if the foreground surface part (i.e. the surfacepart that is closest to the scene's cameras) needs to be picked. More...
 
 itkGetEnumMacro (PickingMode, PickingMode)
 
void PickWorldPoint (const Point2D &displayPoint, Point3D &worldPoint) const override
 Perform a picking: find the x,y,z world coordinate of a display x,y coordinate. More...
 
mitk::DataNodePickObject (const Point2D &displayPosition, Point3D &worldPosition) const override
 Determines the object (mitk::DataNode) closest to the current position by means of picking. More...
 
int WriteSimpleText (std::string text, double posX, double posY, double color1=0.0, double color2=1.0, double color3=0.0, float opacity=1.0)
 WriteSimpleText Write a text in a renderwindow. More...
 
vtkTextProperty * GetTextLabelProperty (int text_id)
 CGetTextLabelProperty an be used in order to get a vtkTextProperty for a specific text_id. This property enables the setup of font, font size, etc. More...
 
bool SetWorldGeometryToDataStorageBounds () override
 
void InitPathTraversal ()
 Used by vtkPointPicker/vtkPicker. This will query a list of all objects in MITK and provide every vtk based mapper to the picker. More...
 
vtkAssemblyPath * GetNextPath ()
 Used by vtkPointPicker/vtkPicker. This will query a list of all objects in MITK and provide every vtk based mapper to the picker. More...
 
int GetNumberOfPaths ()
 
const vtkWorldPointPicker * GetWorldPointPicker () const
 
const vtkPointPicker * GetPointPicker () const
 
const vtkCellPicker * GetCellPicker () const
 
virtual void ReleaseGraphicsResources (vtkWindow *renWin)
 Release vtk-based graphics resources. Called by vtkMitkRenderProp::ReleaseGraphicsResources. More...
 
MappersMapType GetMappersMap () const
 
- Public Member Functions inherited from mitk::BaseRenderer
 itkEventMacro (RendererResetEvent, itk::AnyEvent)
 
 BaseRenderer (const char *name=nullptr, vtkRenderWindow *renWin=nullptr)
 
virtual DataStorage::Pointer GetDataStorage () const
 
vtkRenderWindow * GetRenderWindow () const
 Access the RenderWindow into which this renderer renders. More...
 
vtkRenderer * GetVtkRenderer () const
 
Dispatcher::Pointer GetDispatcher () const
 Returns the Dispatcher which handles Events for this BaseRenderer. More...
 
virtual void Paint ()
 Do the rendering and flush the result. More...
 
virtual void Initialize ()
 Initialize the RenderWindow. Should only be called from RenderWindow. More...
 
virtual void DrawOverlayMouse (Point2D &p2d)
 Draws a point on the widget. Should be used during conferences to show the position of the remote mouse. More...
 
virtual void SetWorldGeometry3D (const BaseGeometry *geometry)
 Set/Get the WorldGeometry (m_WorldGeometry) for 3D and 2D rendering, that describing the (maximal) area to be rendered. More...
 
virtual void SetWorldTimeGeometry (const mitk::TimeGeometry *geometry)
 
void SetWorldGeometry3D (TimeSlicedGeometry *geometry)
 
virtual const TimeGeometryGetWorldTimeGeometry ()
 
virtual const BaseGeometryGetCurrentWorldGeometry ()
 Get the current 3D-worldgeometry (m_CurrentWorldGeometry) used for 3D-rendering. More...
 
virtual const PlaneGeometryGetCurrentWorldPlaneGeometry ()
 Get the current 2D-worldgeometry (m_CurrentWorldPlaneGeometry) used for 2D-rendering. More...
 
const PlaneGeometryGetCurrentWorldGeometry2D ()
 
virtual void SetSlice (unsigned int slice)
 Set/Get m_Slice which defines together with m_TimeStep the 2D geometry stored in m_WorldTimeGeometry used as m_CurrentWorldPlaneGeometry. More...
 
virtual unsigned int GetSlice () const
 
virtual void SetTimeStep (unsigned int timeStep)
 Set/Get m_TimeStep which defines together with m_Slice the 2D geometry stored in m_WorldTimeGeometry used as m_CurrentWorldPlaneGeometry. More...
 
virtual unsigned int GetTimeStep () const
 
int GetTimeStep (const BaseData *data) const
 Get the time-step of a BaseData object which exists at the time of the currently displayed content. More...
 
ScalarType GetTime () const
 Get the time in ms of the currently displayed content. More...
 
virtual void SetGeometry (const itk::EventObject &geometrySliceEvent)
 SetWorldGeometry is called according to the geometrySliceEvent, which is supposed to be a SliceNavigationController::GeometrySendEvent. More...
 
virtual void UpdateGeometry (const itk::EventObject &geometrySliceEvent)
 UpdateWorldGeometry is called to re-read the 2D geometry from the slice navigation controller. More...
 
virtual void SetGeometrySlice (const itk::EventObject &geometrySliceEvent)
 SetSlice is called according to the geometrySliceEvent, which is supposed to be a SliceNavigationController::GeometrySliceEvent. More...
 
virtual void SetGeometryTime (const itk::EventObject &geometryTimeEvent)
 SetTimeStep is called according to the geometrySliceEvent, which is supposed to be a SliceNavigationController::GeometryTimeEvent. More...
 
virtual DataNodeGetCurrentWorldPlaneGeometryNode ()
 Get a DataNode pointing to a data object containing the current 2D-worldgeometry. More...
 
DataNodeGetCurrentWorldGeometry2DNode ()
 
void SendUpdateSlice ()
 Sets timestamp of CurrentWorldPlaneGeometry and forces so reslicing in that renderwindow. More...
 
unsigned long GetCurrentWorldPlaneGeometryUpdateTime ()
 Get timestamp of last call of SetCurrentWorldPlaneGeometry. More...
 
unsigned long GetCurrentWorldGeometry2DUpdateTime ()
 
unsigned long GetTimeStepUpdateTime ()
 Get timestamp of last change of current TimeStep. More...
 
virtual MapperSlotId GetMapperID ()
 Get the MapperSlotId to use. More...
 
virtual MapperSlotId GetMapperID () const
 
virtual int * GetSize () const
 
virtual int * GetViewportSize () const
 
void SetSliceNavigationController (SliceNavigationController *SlicenavigationController)
 
virtual CameraControllerGetCameraController ()
 
virtual SliceNavigationControllerGetSliceNavigationController ()
 
virtual CameraRotationControllerGetCameraRotationController ()
 
virtual bool GetEmptyWorldGeometry ()
 
virtual bool GetKeepDisplayedRegion ()
 Tells if the displayed region is shifted and rescaled if the render window is resized. More...
 
virtual void SetKeepDisplayedRegion (bool _arg)
 Tells if the displayed region should be shifted and rescaled if the render window is resized. More...
 
const char * GetName () const
 get the name of the Renderer More...
 
int GetSizeX () const
 get the x_size of the RendererWindow More...
 
int GetSizeY () const
 get the y_size of the RendererWindow More...
 
const double * GetBounds () const
 
void RequestUpdate ()
 
void ForceImmediateUpdate ()
 
unsigned int GetNumberOfVisibleLODEnabledMappers () const
 
void DisplayToWorld (const Point2D &displayPoint, Point3D &worldIndex) const
 This method converts a display point to the 3D world index using the geometry of the renderWindow. More...
 
void DisplayToPlane (const Point2D &displayPoint, Point2D &planePointInMM) const
 This method converts a display point to the 2D world index, mapped onto the display plane using the geometry of the renderWindow. More...
 
void WorldToDisplay (const Point3D &worldIndex, Point2D &displayPoint) const
 This method converts a 3D world index to the display point using the geometry of the renderWindow. More...
 
void WorldToView (const Point3D &worldIndex, Point2D &viewPoint) const
 This method converts a 3D world index to the point on the viewport using the geometry of the renderWindow. More...
 
void PlaneToDisplay (const Point2D &planePointInMM, Point2D &displayPoint) const
 This method converts a 2D plane coordinate to the display point using the geometry of the renderWindow. More...
 
void PlaneToView (const Point2D &planePointInMM, Point2D &viewPoint) const
 This method converts a 2D plane coordinate to the point on the viewport using the geometry of the renderWindow. More...
 
double GetScaleFactorMMPerDisplayUnit () const
 
Point2D GetDisplaySizeInMM () const
 
Point2D GetViewportSizeInMM () const
 
Point2D GetOriginInMM () const
 
virtual bool GetConstrainZoomingAndPanning () const
 
virtual void SetConstrainZoomingAndPanning (bool constrain)
 
virtual Point3D Map2DRendererPositionTo3DWorldPosition (const Point2D &mousePosition) const
 Provides (1) world coordinates for a given mouse position and (2) translates mousePosition to Display coordinates. More...
 
void RemoveAllLocalStorages ()
 
void RegisterLocalStorageHandler (mitk::BaseLocalStorageHandler *lsh)
 
void UnregisterLocalStorageHandler (mitk::BaseLocalStorageHandler *lsh)
 

Static Public Member Functions

static const char * GetStaticNameOfClass ()
 
static Pointer New (const char *_arga, vtkRenderWindow *_argb)
 
static bool useImmediateModeRendering ()
 
- Static Public Member Functions inherited from mitk::BaseRenderer
static BaseRendererGetInstance (vtkRenderWindow *renWin)
 
static void AddInstance (vtkRenderWindow *renWin, BaseRenderer *baseRenderer)
 
static void RemoveInstance (vtkRenderWindow *renWin)
 
static BaseRendererGetByName (const std::string &name)
 
static vtkRenderWindow * GetRenderWindowByName (const std::string &name)
 
static const char * GetStaticNameOfClass ()
 

Protected Member Functions

 VtkPropRenderer (const char *name="VtkPropRenderer", vtkRenderWindow *renWin=nullptr)
 
 ~VtkPropRenderer () override
 
void Update () override
 Call update of all mappers. To be implemented in subclasses. More...
 
virtual void UpdatePaths ()
 
- Protected Member Functions inherited from mitk::BaseRenderer
 ~BaseRenderer () override
 
virtual void SetCurrentWorldPlaneGeometry (const PlaneGeometry *geometry2d)
 Sets m_CurrentWorldPlaneGeometry. More...
 
void SetCurrentWorldGeometry2D (PlaneGeometry *geometry2d)
 
virtual void SetCurrentWorldGeometry (const BaseGeometry *geometry)
 Sets m_CurrentWorldGeometry. More...
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 

Static Protected Member Functions

static void RenderingCallback (vtkObject *caller, unsigned long eid, void *clientdata, void *calldata)
 

Additional Inherited Members

- Static Public Attributes inherited from mitk::BaseRenderer
static BaseRendererMapType baseRendererMap
 
static const MapperSlotId defaultMapper
 Default mapper id to use. More...
 
- Protected Types inherited from mitk::BaseRenderer
typedef std::set< Mapper * > LODEnabledMappersType
 
- Protected Attributes inherited from mitk::BaseRenderer
vtkRenderWindow * m_RenderWindow
 
vtkRenderer * m_VtkRenderer
 
MapperSlotId m_MapperID
 MapperSlotId to use. Defines which kind of mapper (e.g., 2D or 3D) shoud be used. More...
 
DataStorage::Pointer m_DataStorage
 The DataStorage that is used for rendering. More...
 
unsigned long m_LastUpdateTime
 Timestamp of last call of Update(). More...
 
itk::SmartPointer< CameraControllerm_CameraController
 CameraController for 3D rendering. More...
 
SliceNavigationController::Pointer m_SliceNavigationController
 
CameraRotationController::Pointer m_CameraRotationController
 
PlaneGeometryData::Pointer m_CurrentWorldPlaneGeometryData
 
DataNode::Pointer m_CurrentWorldPlaneGeometryNode
 
unsigned long m_CurrentWorldPlaneGeometryTransformTime
 test only More...
 
std::string m_Name
 
double m_Bounds [6]
 
bool m_EmptyWorldGeometry
 
unsigned int m_NumberOfVisibleLODEnabledMappers
 
std::list< mitk::BaseLocalStorageHandler * > m_RegisteredLocalStorageHandlers
 
bool m_ConstrainZoomingAndPanning
 

Detailed Description

VtkPropRenderer.

VtkPropRenderer organizes the MITK rendering process. The MITK rendering process is completely integrated into the VTK rendering pipeline. The vtkMitkRenderProp is a custom vtkProp derived class, which implements the rendering interface between MITK and VTK. It redirects render() calls to the VtkPropRenderer, which is responsible for rendering of the datatreenodes. VtkPropRenderer replaces the old OpenGLRenderer.

See also
rendering

Definition at line 55 of file mitkVtkPropRenderer.h.

Member Typedef Documentation

◆ ConstPointer

◆ MappersMapType

Definition at line 66 of file mitkVtkPropRenderer.h.

◆ Pointer

◆ Self

◆ Superclass

Member Enumeration Documentation

◆ PickingMode

Enumerator
WorldPointPicking 
PointPicking 
CellPicking 

Definition at line 102 of file mitkVtkPropRenderer.h.

◆ RenderType

Enumerator
Opaque 
Translucent 
Overlay 
Volumetric 

Definition at line 71 of file mitkVtkPropRenderer.h.

Constructor & Destructor Documentation

◆ VtkPropRenderer()

mitk::VtkPropRenderer::VtkPropRenderer ( const char *  name = "VtkPropRenderer",
vtkRenderWindow *  renWin = nullptr 
)
protected

◆ ~VtkPropRenderer()

mitk::VtkPropRenderer::~VtkPropRenderer ( )
overrideprotected

Member Function Documentation

◆ GetCellPicker()

const vtkCellPicker* mitk::VtkPropRenderer::GetCellPicker ( ) const

◆ GetClassHierarchy()

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

Reimplemented from mitk::BaseRenderer.

Definition at line 65 of file mitkVtkPropRenderer.h.

◆ GetClassName()

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

Reimplemented from mitk::BaseRenderer.

◆ GetMappersMap()

MappersMapType mitk::VtkPropRenderer::GetMappersMap ( ) const

◆ GetNextPath()

vtkAssemblyPath* mitk::VtkPropRenderer::GetNextPath ( )

Used by vtkPointPicker/vtkPicker. This will query a list of all objects in MITK and provide every vtk based mapper to the picker.

◆ GetNumberOfPaths()

int mitk::VtkPropRenderer::GetNumberOfPaths ( )

◆ GetPointPicker()

const vtkPointPicker* mitk::VtkPropRenderer::GetPointPicker ( ) const

◆ GetStaticNameOfClass()

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

Definition at line 65 of file mitkVtkPropRenderer.h.

◆ GetTextLabelProperty()

vtkTextProperty* mitk::VtkPropRenderer::GetTextLabelProperty ( int  text_id)

CGetTextLabelProperty an be used in order to get a vtkTextProperty for a specific text_id. This property enables the setup of font, font size, etc.

Parameters
text_idthe id of the text property.
Deprecated:
(as of 2015_05) Please use mitkTextOverlay2D instead. See mitkTextOverlay2DRenderingTest for an example.

◆ GetWorldPointPicker()

const vtkWorldPointPicker* mitk::VtkPropRenderer::GetWorldPointPicker ( ) const

◆ InitPathTraversal()

void mitk::VtkPropRenderer::InitPathTraversal ( )

Used by vtkPointPicker/vtkPicker. This will query a list of all objects in MITK and provide every vtk based mapper to the picker.

◆ InitRenderer()

void mitk::VtkPropRenderer::InitRenderer ( vtkRenderWindow *  renderwindow)
overridevirtual

Initialize the renderer with a RenderWindow (renderwindow).

Reimplemented from mitk::BaseRenderer.

◆ InitSize()

void mitk::VtkPropRenderer::InitSize ( int  w,
int  h 
)
overridevirtual

Set the initial size. Called by RenderWindow after it has become visible for the first time.

Reimplemented from mitk::BaseRenderer.

◆ itkGetEnumMacro()

mitk::VtkPropRenderer::itkGetEnumMacro ( PickingMode  ,
PickingMode   
)

◆ itkSetEnumMacro()

mitk::VtkPropRenderer::itkSetEnumMacro ( PickingMode  ,
PickingMode   
)

Set the picking mode. This method is used to set the picking mode for 3D object picking. The user can select one of the three options WorldPointPicking, PointPicking and CellPicking. The first option uses the zBuffer from graphics rendering, the second uses the 3D points from the closest surface mesh, and the third option uses the cells of that mesh. The last option is the slowest, the first one the fastest. However, the first option cannot use transparent data object and the tolerance of the picked position to the selected point should be considered. PointPicking also need a tolerance around the picking position to select the closest point in the mesh. The CellPicker performs very well, if the foreground surface part (i.e. the surfacepart that is closest to the scene's cameras) needs to be picked.

◆ MakeCurrent()

virtual void mitk::VtkPropRenderer::MakeCurrent ( )
virtual

◆ New()

static Pointer mitk::VtkPropRenderer::New ( const char *  _arga,
vtkRenderWindow *  _argb 
)
inlinestatic

Definition at line 66 of file mitkVtkPropRenderer.h.

◆ PickObject()

mitk::DataNode* mitk::VtkPropRenderer::PickObject ( const Point2D ,
Point3D  
) const
overridevirtual

Determines the object (mitk::DataNode) closest to the current position by means of picking.

Warning
Implementation currently empty for 2D rendering; intended to be implemented for 3D renderers

Reimplemented from mitk::BaseRenderer.

◆ PickWorldPoint()

void mitk::VtkPropRenderer::PickWorldPoint ( const Point2D diplayPosition,
Point3D worldPosition 
) const
overridevirtual

Perform a picking: find the x,y,z world coordinate of a display x,y coordinate.

Warning
Has to be overwritten in subclasses for the 3D-case.

Implemented here only for 2D-rendering

Implements mitk::BaseRenderer.

◆ PrepareRender()

virtual void mitk::VtkPropRenderer::PrepareRender ( )
virtual

This methods contains all method neceassary before a VTK Render() call.

◆ ReleaseGraphicsResources()

virtual void mitk::VtkPropRenderer::ReleaseGraphicsResources ( vtkWindow *  renWin)
virtual

Release vtk-based graphics resources. Called by vtkMitkRenderProp::ReleaseGraphicsResources.

◆ Render()

int mitk::VtkPropRenderer::Render ( RenderType  type)

◆ RenderingCallback()

static void mitk::VtkPropRenderer::RenderingCallback ( vtkObject *  caller,
unsigned long  eid,
void *  clientdata,
void *  calldata 
)
staticprotected

◆ Resize()

void mitk::VtkPropRenderer::Resize ( int  w,
int  h 
)
overridevirtual

Called to inform the renderer that the RenderWindow has been resized.

Reimplemented from mitk::BaseRenderer.

◆ SetDataStorage()

void mitk::VtkPropRenderer::SetDataStorage ( mitk::DataStorage storage)
overridevirtual

set the datastorage that will be used for rendering

Reimplemented from mitk::BaseRenderer.

◆ SetMapperID()

void mitk::VtkPropRenderer::SetMapperID ( const MapperSlotId  id)
overridevirtual

Set the MapperSlotId to use.

Reimplemented from mitk::BaseRenderer.

◆ SetPropertyKeys()

void mitk::VtkPropRenderer::SetPropertyKeys ( vtkInformation *  info)

Store/propagate vtkInformation during rendering.

◆ SetWorldGeometryToDataStorageBounds()

bool mitk::VtkPropRenderer::SetWorldGeometryToDataStorageBounds ( )
overridevirtual

This method calculates the bounds of the DataStorage (if it contains any valid data), creates a geometry from these bounds and sets it as world geometry of the renderer.

Call this method to re-initialize the renderer to the current DataStorage (e.g. after loading an additional dataset), to ensure that the view is aligned correctly.

Reimplemented from mitk::BaseRenderer.

◆ Update() [1/2]

virtual void mitk::VtkPropRenderer::Update ( mitk::DataNode datatreenode)
virtual

◆ Update() [2/2]

void mitk::VtkPropRenderer::Update ( )
overrideprotectedvirtual

Call update of all mappers. To be implemented in subclasses.

Implements mitk::BaseRenderer.

◆ UpdatePaths()

virtual void mitk::VtkPropRenderer::UpdatePaths ( )
protectedvirtual

◆ useImmediateModeRendering()

static bool mitk::VtkPropRenderer::useImmediateModeRendering ( )
static

◆ WriteSimpleText()

int mitk::VtkPropRenderer::WriteSimpleText ( std::string  text,
double  posX,
double  posY,
double  color1 = 0.0,
double  color2 = 1.0,
double  color3 = 0.0,
float  opacity = 1.0 
)

WriteSimpleText Write a text in a renderwindow.

Writes some 2D text as overlay. Function returns an unique int Text_ID for each call, which can be used via the GetTextLabelProperty(int text_id) function in order to get a vtkTextProperty. This property enables the setup of font, font size, etc.

Deprecated:
(as of 2015_05) Please use mitkTextOverlay2D instead. See mitkTextOverlay2DRenderingTest for an example.

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