Medical Imaging Interaction Toolkit
2016.11.0
Medical Imaging Interaction Toolkit
|
#include <mitkVtkPropRenderer.h>
Public Types | |
enum | RenderType { Opaque, Translucent, Overlay, Volumetric } |
enum | PickingMode { WorldPointPicking, PointPicking, CellPicking } |
typedef VtkPropRenderer | Self |
typedef BaseRenderer | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef std::map< int, Mapper * > | MappersMapType |
Public Types inherited from mitk::BaseRenderer | |
enum | StandardMapperSlot { Standard2D, Standard3D } |
typedef std::map< vtkRenderWindow *, BaseRenderer * > | BaseRendererMapType |
typedef BaseRenderer | Self |
typedef itk::Object | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef int | MapperSlotId |
MapperSlotId defines which kind of mapper (e.g., 2D or 3D) shoud be used. More... | |
Public Member Functions | |
virtual std::vector< std::string > | GetClassHierarchy () const override |
virtual const char * | GetClassName () const |
int | Render (RenderType type) |
Called by the vtkMitkRenderProp in order to start MITK rendering process. More... | |
virtual void | PrepareRender () |
This methods contains all method neceassary before a VTK Render() call. More... | |
virtual void | MakeCurrent () |
Activates the current renderwindow. More... | |
virtual void | SetDataStorage (mitk::DataStorage *storage) override |
set the datastorage that will be used for rendering More... | |
virtual void | InitRenderer (vtkRenderWindow *renderwindow) override |
This method is called from the two Constructors. More... | |
virtual void | Update (mitk::DataNode *datatreenode) |
virtual void | SetMapperID (const MapperSlotId mapperId) override |
Set the MapperSlotId to use. More... | |
virtual void | InitSize (int w, int h) override |
Set the initial size. Called by RenderWindow after it has become visible for the first time. More... | |
virtual void | Resize (int w, int h) override |
Resize the OpenGL Window. 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) | |
virtual 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... | |
virtual mitk::DataNode * | PickObject (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... | |
virtual 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, mitk::RenderingManager *rm=nullptr, RenderingMode::Type mode=RenderingMode::Standard) | |
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 (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 (mitk::TimeGeometry *geometry) |
void | SetWorldGeometry3D (TimeSlicedGeometry *geometry) |
virtual const TimeGeometry * | GetWorldTimeGeometry () |
virtual TimeGeometry * | GetWorldTimeGeometry () |
virtual const BaseGeometry * | GetCurrentWorldGeometry () |
Get the current 3D-worldgeometry (m_CurrentWorldGeometry) used for 3D-rendering. More... | |
virtual const PlaneGeometry * | GetCurrentWorldPlaneGeometry () |
Get the current 2D-worldgeometry (m_CurrentWorldPlaneGeometry) used for 2D-rendering. More... | |
const PlaneGeometry * | GetCurrentWorldGeometry2D () |
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... | |
void | SetOverlayManager (itk::SmartPointer< OverlayManager > overlayManager) |
Sets an OverlayManager which is used to add various Overlays to this renderer. If an OverlayManager was already set it will be overwritten. More... | |
itk::SmartPointer< OverlayManager > | GetOverlayManager () |
Get the OverlayManager registered with this renderer if none was set, it will be created at this point. 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 DataNode * | GetCurrentWorldPlaneGeometryNode () |
Get a DataNode pointing to a data object containing the current 2D-worldgeometry. More... | |
DataNode * | GetCurrentWorldGeometry2DNode () |
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 CameraController * | GetCameraController () |
virtual SliceNavigationController * | GetSliceNavigationController () |
virtual CameraRotationController * | GetCameraRotationController () |
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 |
virtual mitk::RenderingManager * | GetRenderingManager () const |
Setter for the RenderingManager that handles this instance of BaseRenderer. More... | |
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 | 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... | |
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, mitk::RenderingManager *_argc) |
static Pointer | New (const char *_arga, vtkRenderWindow *_argb, mitk::RenderingManager *_argc, mitk::BaseRenderer::RenderingMode::Type _argd) |
static bool | useImmediateModeRendering () |
Static Public Member Functions inherited from mitk::BaseRenderer | |
static BaseRenderer * | GetInstance (vtkRenderWindow *renWin) |
static void | AddInstance (vtkRenderWindow *renWin, BaseRenderer *baseRenderer) |
static void | RemoveInstance (vtkRenderWindow *renWin) |
static BaseRenderer * | GetByName (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, mitk::RenderingManager *rm=nullptr, mitk::BaseRenderer::RenderingMode::Type renderingMode=mitk::BaseRenderer::RenderingMode::Standard) | |
virtual | ~VtkPropRenderer () |
Destructs the VtkPropRenderer. More... | |
virtual void | Update () override |
Call update of all mappers. To be implemented in subclasses. More... | |
virtual void | UpdatePaths () |
Protected Member Functions inherited from mitk::BaseRenderer | |
virtual | ~BaseRenderer () |
virtual void | SetCurrentWorldPlaneGeometry (PlaneGeometry *geometry2d) |
Sets m_CurrentWorldPlaneGeometry. More... | |
void | SetCurrentWorldGeometry2D (PlaneGeometry *geometry2d) |
virtual void | SetCurrentWorldGeometry (BaseGeometry *geometry) |
Sets m_CurrentWorldGeometry. More... | |
void | UpdateOverlays () |
This method is called during the rendering process to update or render the Overlays which are stored in the OverlayManager. More... | |
virtual 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) |
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.
Definition at line 59 of file mitkVtkPropRenderer.h.
typedef itk::SmartPointer<const Self> mitk::VtkPropRenderer::ConstPointer |
Definition at line 69 of file mitkVtkPropRenderer.h.
typedef std::map<int, Mapper *> mitk::VtkPropRenderer::MappersMapType |
Definition at line 75 of file mitkVtkPropRenderer.h.
Definition at line 69 of file mitkVtkPropRenderer.h.
Definition at line 69 of file mitkVtkPropRenderer.h.
Definition at line 69 of file mitkVtkPropRenderer.h.
Enumerator | |
---|---|
WorldPointPicking | |
PointPicking | |
CellPicking |
Definition at line 108 of file mitkVtkPropRenderer.h.
Enumerator | |
---|---|
Opaque | |
Translucent | |
Overlay | |
Volumetric |
Definition at line 80 of file mitkVtkPropRenderer.h.
|
protected |
Definition at line 59 of file mitkVtkPropRenderer.cpp.
References mitk::BaseRenderer::m_CurrentWorldPlaneGeometryNode, mitk::BaseRenderer::m_VtkRenderer, mitk::New(), mitk::PlaneGeometryDataVtkMapper3D::New(), and WorldPointPicking.
|
protectedvirtual |
Destructs the VtkPropRenderer.
Definition at line 92 of file mitkVtkPropRenderer.cpp.
const vtkCellPicker * mitk::VtkPropRenderer::GetCellPicker | ( | ) | const |
Definition at line 600 of file mitkVtkPropRenderer.cpp.
|
inlineoverridevirtual |
Reimplemented from mitk::BaseRenderer.
Definition at line 69 of file mitkVtkPropRenderer.h.
|
virtual |
Reimplemented from mitk::BaseRenderer.
mitk::VtkPropRenderer::MappersMapType mitk::VtkPropRenderer::GetMappersMap | ( | ) | const |
Definition at line 605 of file mitkVtkPropRenderer.cpp.
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.
Definition at line 561 of file mitkVtkPropRenderer.cpp.
int mitk::VtkPropRenderer::GetNumberOfPaths | ( | ) |
Definition at line 555 of file mitkVtkPropRenderer.cpp.
const vtkPointPicker * mitk::VtkPropRenderer::GetPointPicker | ( | ) | const |
Definition at line 595 of file mitkVtkPropRenderer.cpp.
|
inlinestatic |
Definition at line 69 of file mitkVtkPropRenderer.h.
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.
text_id | the id of the text property. |
Definition at line 505 of file mitkVtkPropRenderer.cpp.
const vtkWorldPointPicker * mitk::VtkPropRenderer::GetWorldPointPicker | ( | ) | const |
Definition at line 590 of file mitkVtkPropRenderer.cpp.
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.
Definition at line 510 of file mitkVtkPropRenderer.cpp.
References m_DataStorage.
|
overridevirtual |
This method is called from the two Constructors.
Reimplemented from mitk::BaseRenderer.
Definition at line 306 of file mitkVtkPropRenderer.cpp.
References mitk::BaseRenderer::InitRenderer(), mitk::New(), and RenderingCallback().
|
overridevirtual |
Set the initial size. Called by RenderWindow after it has become visible for the first time.
Reimplemented from mitk::BaseRenderer.
Definition at line 347 of file mitkVtkPropRenderer.cpp.
References Update().
mitk::VtkPropRenderer::itkGetEnumMacro | ( | PickingMode | , |
PickingMode | |||
) |
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.
|
virtual |
Activates the current renderwindow.
Definition at line 399 of file mitkVtkPropRenderer.cpp.
|
inlinestatic |
Definition at line 70 of file mitkVtkPropRenderer.h.
Referenced by mitk::RenderWindowBase::Initialize(), mitkDispatcherTest(), mitkRenderingManagerTest(), mitkVtkPropRendererTest(), and QmitkSelectableGLWidget::QmitkSelectableGLWidget().
|
inlinestatic |
Definition at line 75 of file mitkVtkPropRenderer.h.
|
overridevirtual |
Determines the object (mitk::DataNode) closest to the current position by means of picking.
Reimplemented from mitk::BaseRenderer.
Definition at line 435 of file mitkVtkPropRenderer.cpp.
References mitk::DataNode::GetBoolProperty(), mitk::DataNode::GetMapper(), mitk::VtkMapper::GetVtkProp(), mitk::VtkMapper::HasVtkProp(), m_DataStorage, and mitk::vtk2itk().
|
overridevirtual |
Perform a picking: find the x,y,z world coordinate of a display x,y coordinate.
Implemented here only for 2D-rendering
Implements mitk::BaseRenderer.
Definition at line 405 of file mitkVtkPropRenderer.cpp.
References mitk::vtk2itk().
|
virtual |
This methods contains all method neceassary before a VTK Render() call.
Definition at line 650 of file mitkVtkPropRenderer.cpp.
Referenced by mitk::RenderingManager::ForceImmediateUpdate(), QmlMitkRenderWindowItem::prepareForRender(), and mitk::InteractionTestHelper::Set3dCameraSettings().
|
virtual |
Release vtk-based graphics resources. Called by vtkMitkRenderProp::ReleaseGraphicsResources.
Definition at line 566 of file mitkVtkPropRenderer.cpp.
References m_DataStorage, and mitk::VtkMapper::ReleaseGraphicsResources().
int mitk::VtkPropRenderer::Render | ( | RenderType | type | ) |
Called by the vtkMitkRenderProp in order to start MITK rendering process.
Definition at line 161 of file mitkVtkPropRenderer.cpp.
References m_DataStorage, mitk::Mapper::MitkRender(), Opaque, and Overlay.
|
staticprotected |
Definition at line 328 of file mitkVtkPropRenderer.cpp.
References mitk::BaseRenderer::GetInstance(), and mitk::BaseRenderer::RequestUpdate().
Referenced by InitRenderer().
|
overridevirtual |
Resize the OpenGL Window.
Reimplemented from mitk::BaseRenderer.
Definition at line 341 of file mitkVtkPropRenderer.cpp.
References mitk::BaseRenderer::Resize().
|
overridevirtual |
set the datastorage that will be used for rendering
Reimplemented from mitk::BaseRenderer.
Definition at line 124 of file mitkVtkPropRenderer.cpp.
References m_DataStorage, and mitk::BaseRenderer::SetDataStorage().
Referenced by QmitkODFRenderWidget::GenerateODF(), main(), QmlMitkRenderWindowItem::SetDataStorage(), and Step6::SetupWidgets().
|
overridevirtual |
Set the MapperSlotId to use.
Reimplemented from mitk::BaseRenderer.
Definition at line 387 of file mitkVtkPropRenderer.cpp.
Referenced by main(), QmitkODFRenderWidget::QmitkODFRenderWidget(), QmlMitkRenderWindowItem::setupView(), Step8::SetupWidgets(), and Step6::SetupWidgets().
|
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.
Definition at line 138 of file mitkVtkPropRenderer.cpp.
References m_DataStorage.
|
virtual |
Definition at line 266 of file mitkVtkPropRenderer.cpp.
References mitk::DataNode::GetMapper(), and mitk::VtkMapper::UpdateVtkTransform().
|
overrideprotectedvirtual |
Call update of all mappers. To be implemented in subclasses.
Implements mitk::BaseRenderer.
Definition at line 288 of file mitkVtkPropRenderer.cpp.
References m_DataStorage, and Update().
|
protectedvirtual |
Definition at line 519 of file mitkVtkPropRenderer.cpp.
References mitk::VtkMapper::GetVtkProp(), m_DataStorage, mitk::New(), and mitk::BaseRenderer::Standard3D.
|
static |
Definition at line 613 of file mitkVtkPropRenderer.cpp.
Referenced by mitk::VtkMapper::SetVtkMapperImmediateModeRendering().
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.
Definition at line 363 of file mitkVtkPropRenderer.cpp.
References mitk::New().