Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitk::RenderWindowLayerController Class Reference

#include <mitkRenderWindowLayerController.h>

Public Member Functions

 RenderWindowLayerController ()
 
void SetDataStorage (DataStorage::Pointer dataStorage)
 Set the data storage on which to work. More...
 
void SetControlledRenderer (RenderWindowLayerUtilities::RendererVector controlledRenderer)
 Set the controlled base renderer. More...
 
void SetBaseDataNode (DataNode *dataNode, const BaseRenderer *renderer=nullptr)
 Set the given node as the base node of the given renderer. More...
 
void InsertLayerNode (DataNode *dataNode, int layer=RenderWindowLayerUtilities::TOP_LAYER_INDEX, const BaseRenderer *renderer=nullptr)
 Insert the given data node at the specified layer for the given renderer. More...
 
void RemoveLayerNode (DataNode *dataNode, const BaseRenderer *renderer=nullptr)
 Remove the given data node for the given renderer. More...
 
bool MoveNodeToPosition (DataNode *dataNode, int newLayer, const BaseRenderer *renderer=nullptr)
 Move the data node to the given layer. This will change only the "layer" property. More...
 
bool MoveNodeToFront (DataNode *dataNode, const BaseRenderer *renderer=nullptr)
 Set the node in the given renderer as the topmost layer. This will change only the "layer" property. More...
 
bool MoveNodeToBack (DataNode *dataNode, const BaseRenderer *renderer=nullptr)
 Set the node in the given renderer as the lowermost layer. This will change only the "layer" property. More...
 
bool MoveNodeUp (DataNode *dataNode, const BaseRenderer *renderer=nullptr)
 Move the node in the given renderer one layer down. This will change only the "layer" property. More...
 
bool MoveNodeDown (DataNode *dataNode, const BaseRenderer *renderer=nullptr)
 Move the node in the given renderer one layer up. This will change only the "layer" property. More...
 
void SetVisibilityOfDataNode (bool visiblity, DataNode *dataNode, const BaseRenderer *renderer=nullptr)
 Set the visibility of the given data node for the given renderer. More...
 
void HideDataNodeInAllRenderer (const DataNode *dataNode)
 Hide the given data node by setting the "visible" property of the data node for all controlled renderer to false. Later setting the "visible" property of the data node for a certain renderer will overwrite the same property of the common renderer. More...
 
void ResetRenderer (bool onlyVisibility=true, const BaseRenderer *renderer=nullptr)
 Reset the given render window: If "onlyVisibility = true": set all data nodes for the given render window to invisible, except for the base node. If "onlyVisibility = false": remove all data nodes from the render window, except for the base node. More...
 

Detailed Description

The RenderWindowLayerController is used to manipulate the 'layer', 'fixedLayer' and 'visible' property of a given data node. The 'layer' property is used to denote the layer level of a data node. Data from nodes on higher layer level are rendered on top of data from nodes on lower layer level. It can be changed using the 'MoveNode*'-functions.

To view the data of a data node only in a specific renderer, the "InsertLayerNode'-function should be used. It inserts the given node into the specified renderer and sets the corresponding properties. To hide the data in the common renderer view (all renderer), the 'HideDataNodeInAllRenderer'-function can be used. Inserting and showing a data node in a specific renderer / render window, will overwrite the properties of the common renderer view.

For more information about the data node properties for specific renderer, see mitk::DataNode- and mitk::PropertyList-classes.

Functions with 'mitk::BaseRenderer* renderer' have 'nullptr' as their default argument. Using the nullptr these functions operate on all base renderer. Giving a specific base renderer will modify the node only for the given renderer.

Definition at line 42 of file mitkRenderWindowLayerController.h.

Constructor & Destructor Documentation

◆ RenderWindowLayerController()

mitk::RenderWindowLayerController::RenderWindowLayerController ( )

Definition at line 16 of file mitkRenderWindowLayerController.cpp.

Member Function Documentation

◆ HideDataNodeInAllRenderer()

void mitk::RenderWindowLayerController::HideDataNodeInAllRenderer ( const DataNode dataNode)

Hide the given data node by setting the "visible" property of the data node for all controlled renderer to false. Later setting the "visible" property of the data node for a certain renderer will overwrite the same property of the common renderer.

Parameters
dataNodeThe data node that should be hid.
Postcondition
After a successful call , the "visibility" property will be set to the false.

Definition at line 498 of file mitkRenderWindowLayerController.cpp.

References mitk::RenderingManager::GetInstance(), mitk::DataNode::GetPropertyList(), mitk::RenderingManager::RequestUpdateAll(), and mitk::PropertyList::SetBoolProperty().

◆ InsertLayerNode()

void mitk::RenderWindowLayerController::InsertLayerNode ( DataNode dataNode,
int  layer = RenderWindowLayerUtilities::TOP_LAYER_INDEX,
const BaseRenderer renderer = nullptr 
)

Insert the given data node at the specified layer for the given renderer.

Parameters
dataNodeThe data node that should be inserted.
layerThe layer value for the "layer" property of the data node (insertion level). "layer = RenderWindowLayerUtilities::TOP_LAYER_INDEX" (default) inserts the given data node at the top of the node stack (topmost layer).
rendererPointer to the renderer instance for which the data node should be inserted. If it is a nullptr (default) all controlled renderer will be affected.
Postcondition
After a successful call, the "fixedLayer" and "visibility" property will be true and the "layer" property will be set correctly.

Definition at line 84 of file mitkRenderWindowLayerController.cpp.

References mitk::RenderWindowLayerUtilities::BASE_LAYER_INDEX, mitk::RenderingManager::GetInstance(), mitk::RenderWindowLayerUtilities::GetLayerStack(), mitk::BaseRenderer::GetRenderWindow(), MoveNodeToPosition(), mitk::RenderingManager::RequestUpdate(), SetBaseDataNode(), mitk::DataNode::SetIntProperty(), mitk::RenderWindowLayerUtilities::SetRenderWindowProperties(), and mitk::RenderWindowLayerUtilities::TOP_LAYER_INDEX.

◆ MoveNodeDown()

bool mitk::RenderWindowLayerController::MoveNodeDown ( DataNode dataNode,
const BaseRenderer renderer = nullptr 
)

Move the node in the given renderer one layer up. This will change only the "layer" property.

Parameters
dataNodeThe data node that should be moved.
rendererPointer to the renderer instance for which the data node should be moved. If it is a nullptr (default) all controlled renderer will be affected.

Definition at line 413 of file mitkRenderWindowLayerController.cpp.

References mitk::RenderingManager::GetInstance(), mitk::DataNode::GetIntProperty(), mitk::RenderWindowLayerUtilities::GetLayerStack(), mitk::BaseRenderer::GetRenderWindow(), mitk::RenderingManager::RequestUpdate(), and mitk::DataNode::SetIntProperty().

◆ MoveNodeToBack()

bool mitk::RenderWindowLayerController::MoveNodeToBack ( DataNode dataNode,
const BaseRenderer renderer = nullptr 
)

Set the node in the given renderer as the lowermost layer. This will change only the "layer" property.

Parameters
dataNodeThe data node that should be moved.
rendererPointer to the renderer instance for which the data node should be moved. If it is a nullptr (default) all controlled renderer will be affected.

Definition at line 301 of file mitkRenderWindowLayerController.cpp.

References mitk::RenderingManager::GetInstance(), mitk::DataNode::GetIntProperty(), mitk::RenderWindowLayerUtilities::GetLayerStack(), mitk::BaseRenderer::GetRenderWindow(), mitk::RenderingManager::RequestUpdate(), and mitk::DataNode::SetIntProperty().

◆ MoveNodeToFront()

bool mitk::RenderWindowLayerController::MoveNodeToFront ( DataNode dataNode,
const BaseRenderer renderer = nullptr 
)

Set the node in the given renderer as the topmost layer. This will change only the "layer" property.

Parameters
dataNodeThe data node that should be moved.
rendererPointer to the renderer instance for which the data node should be moved. If it is a nullptr (default) all controlled renderer will be affected.

Definition at line 255 of file mitkRenderWindowLayerController.cpp.

References mitk::RenderingManager::GetInstance(), mitk::DataNode::GetIntProperty(), mitk::RenderWindowLayerUtilities::GetLayerStack(), mitk::BaseRenderer::GetRenderWindow(), mitk::RenderingManager::RequestUpdate(), and mitk::DataNode::SetIntProperty().

◆ MoveNodeToPosition()

bool mitk::RenderWindowLayerController::MoveNodeToPosition ( DataNode dataNode,
int  newLayer,
const BaseRenderer renderer = nullptr 
)

Move the data node to the given layer. This will change only the "layer" property.

Parameters
dataNodeThe data node that should be moved.
rendererPointer to the renderer instance for which the data node should be moved. If it is a nullptr (default) all controlled renderer will be affected.

Definition at line 182 of file mitkRenderWindowLayerController.cpp.

References mitk::RenderingManager::GetInstance(), mitk::DataNode::GetIntProperty(), mitk::RenderWindowLayerUtilities::GetLayerStack(), mitk::BaseRenderer::GetRenderWindow(), mitk::RenderingManager::RequestUpdate(), and mitk::DataNode::SetIntProperty().

Referenced by InsertLayerNode().

◆ MoveNodeUp()

bool mitk::RenderWindowLayerController::MoveNodeUp ( DataNode dataNode,
const BaseRenderer renderer = nullptr 
)

Move the node in the given renderer one layer down. This will change only the "layer" property.

Parameters
dataNodeThe data node that should be moved.
rendererPointer to the renderer instance for which the data node should be moved. If it is a nullptr (default) all controlled renderer will be affected.

Definition at line 358 of file mitkRenderWindowLayerController.cpp.

References mitk::RenderingManager::GetInstance(), mitk::DataNode::GetIntProperty(), mitk::RenderWindowLayerUtilities::GetLayerStack(), mitk::BaseRenderer::GetRenderWindow(), mitk::RenderingManager::RequestUpdate(), and mitk::DataNode::SetIntProperty().

◆ RemoveLayerNode()

void mitk::RenderWindowLayerController::RemoveLayerNode ( DataNode dataNode,
const BaseRenderer renderer = nullptr 
)

Remove the given data node for the given renderer.

Parameters
dataNodeThe data node that should be removed.
rendererPointer to the renderer instance for which the data node should be removed. If it is a nullptr (default) all controlled renderer will be affected.
Postcondition
After a successful call, the "fixedLayer" and "visibility" property will be false and the "layer" property will be deleted.

Definition at line 153 of file mitkRenderWindowLayerController.cpp.

References mitk::PropertyList::DeleteProperty(), mitk::RenderingManager::GetInstance(), mitk::DataNode::GetPropertyList(), mitk::BaseRenderer::GetRenderWindow(), mitk::RenderingManager::RequestUpdate(), mitk::DataNode::SetBoolProperty(), and mitk::DataNode::SetVisibility().

◆ ResetRenderer()

void mitk::RenderWindowLayerController::ResetRenderer ( bool  onlyVisibility = true,
const BaseRenderer renderer = nullptr 
)

Reset the given render window: If "onlyVisibility = true": set all data nodes for the given render window to invisible, except for the base node. If "onlyVisibility = false": remove all data nodes from the render window, except for the base node.

Parameters
visibilityBoolean to define the reset mode.
rendererPointer to the renderer instance for which the data node should be reset. If it is a nullptr (default) all controlled renderer will be affected.
Postcondition
After a successful call , the "visibility" property will be set to the "false" value (except for the base node). If "onlyVisibility = false": additionally the "fixedLayer" property will be false and the "layer" property will be deleted.

Definition at line 516 of file mitkRenderWindowLayerController.cpp.

References mitk::RenderWindowLayerUtilities::BASE_LAYER_INDEX, mitk::RenderingManager::GetInstance(), mitk::RenderWindowLayerUtilities::GetLayerStack(), mitk::BaseRenderer::GetRenderWindow(), and mitk::RenderingManager::RequestUpdate().

◆ SetBaseDataNode()

void mitk::RenderWindowLayerController::SetBaseDataNode ( DataNode dataNode,
const BaseRenderer renderer = nullptr 
)

Set the given node as the base node of the given renderer.

Parameters
dataNodeThe data node whose layer is to be modified.
rendererPointer to the renderer instance for which the data node property should be modified. If it is a nullptr (default) all controlled renderer will be affected.

Definition at line 40 of file mitkRenderWindowLayerController.cpp.

References mitk::RenderWindowLayerUtilities::BASE_LAYER_INDEX, mitk::RenderingManager::GetInstance(), mitk::RenderWindowLayerUtilities::GetLayerStack(), mitk::BaseRenderer::GetRenderWindow(), mitk::RenderingManager::RequestUpdate(), mitk::DataNode::SetBoolProperty(), mitk::DataNode::SetIntProperty(), and mitk::DataNode::SetVisibility().

Referenced by InsertLayerNode().

◆ SetControlledRenderer()

void mitk::RenderWindowLayerController::SetControlledRenderer ( RenderWindowLayerUtilities::RendererVector  controlledRenderer)

Set the controlled base renderer.

Definition at line 31 of file mitkRenderWindowLayerController.cpp.

◆ SetDataStorage()

void mitk::RenderWindowLayerController::SetDataStorage ( DataStorage::Pointer  dataStorage)

Set the data storage on which to work.

Definition at line 22 of file mitkRenderWindowLayerController.cpp.

◆ SetVisibilityOfDataNode()

void mitk::RenderWindowLayerController::SetVisibilityOfDataNode ( bool  visiblity,
DataNode dataNode,
const BaseRenderer renderer = nullptr 
)

Set the visibility of the given data node for the given renderer.

Parameters
visibilityBoolean to set the "visible" property of the given data node.
dataNodeThe data node that should be moved.
rendererPointer to the renderer instance for which the data node should be modified. If it is a nullptr (default) all controlled renderer will be affected.
Postcondition
After a successful call , the "visibility" property will be set to the "visibility" value.

Definition at line 472 of file mitkRenderWindowLayerController.cpp.

References mitk::RenderingManager::GetInstance(), mitk::BaseRenderer::GetRenderWindow(), mitk::RenderingManager::RequestUpdate(), and mitk::DataNode::SetVisibility().


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