Medical Imaging Interaction Toolkit
2018.4.99-389bf124
Medical Imaging Interaction Toolkit
|
Provides access to the LevelWindowProperty object and LevelWindow of the "current" image. More...
#include <mitkLevelWindowManager.h>
Public Types | |
typedef LevelWindowManager | Self |
typedef itk::Object | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
Public Member Functions | |
virtual std::vector< std::string > | GetClassHierarchy () const |
virtual const char * | GetClassName () const |
Pointer | Clone () const |
void | SetDataStorage (DataStorage *ds) |
DataStorage * | GetDataStorage () |
void | SetAutoTopMostImage (bool autoTopMost, const DataNode *removedNode=nullptr) |
(Re-)Initialize the LevelWindowManager by setting the topmost image. Use the removedNode parameter if a node was removed. More... | |
void | SetSelectedImages (bool selectedImagesMode, const DataNode *removedNode=nullptr) |
(Re-)Initialize the LevelWindowManager by setting the selected images. Use the removedNode parameter if a node was removed. More... | |
void | RecalculateLevelWindowForSelectedComponent (const itk::EventObject &) |
void | Update (const itk::EventObject &) |
Update the level window. This function is called if a property of a data node is changed. Relevant properties are defined in the protected 'ObserverToPropertyValueMap'-members. More... | |
void | UpdateSelected (const itk::EventObject &) |
Update the level window. This function is only called if the 'selected' property of a data node is changed. This is done in order to avoid finding the correct image each time a node is selected but the 'm_SelectedImages' bool value is set to false (as the normal 'Update'-function would do). Changes of the 'selected' property happen quite a lot so this should not slow down the application. More... | |
void | SetLevelWindowProperty (LevelWindowProperty::Pointer levelWindowProperty) |
Set a specific LevelWindowProperty; all changes will affect the image belonging to this property. More... | |
void | SetLevelWindow (const LevelWindow &levelWindow) |
Set new Level/Window values and inform all listeners about changes. More... | |
LevelWindowProperty::Pointer | GetLevelWindowProperty () |
Return the current LevelWindowProperty object from the image that is affected by changes. More... | |
const LevelWindow & | GetLevelWindow () |
Return Level/Window values for the current image. More... | |
bool | IsAutoTopMost () |
Return true, if the changes on slider or line-edits will affect the topmost layer image. More... | |
bool | IsSelectedImages () |
Return true, if changes on slider or line-edits will affect the currently selected images. More... | |
void | DataStorageAddedNode (const DataNode *n=nullptr) |
This method is called when a node is added to the data storage. A listener on the data storage is used to call this method automatically after a node was added. More... | |
void | DataStorageRemovedNode (const DataNode *removedNode=nullptr) |
This method is called when a node is removed to the data storage. A listener on the data storage is used to call this method automatically directly before a node will be removed. More... | |
void | OnPropertyModified (const itk::EventObject &e) |
Change notifications from mitkLevelWindowProperty. More... | |
Image * | GetCurrentImage () |
Return the currently active image. More... | |
int | GetNumberOfObservers () |
DataStorage::SetOfObjects::ConstPointer | GetRelevantNodes () |
Returns all nodes in the DataStorage that have the following properties: More... | |
Static Public Member Functions | |
static const char * | GetStaticNameOfClass () |
static Pointer | New () |
Protected Types | |
typedef std::pair< unsigned long, DataNode::Pointer > | PropDataPair |
typedef std::map< PropDataPair, BaseProperty::Pointer > | ObserverToPropertyValueMap |
Protected Member Functions | |
LevelWindowManager () | |
~LevelWindowManager () override | |
void | UpdateObservers () |
void | ClearPropObserverLists () |
Internal help method to clear both lists/maps. More... | |
void | CreatePropObserverLists () |
Internal help method to create both lists/maps. More... | |
bool | IgnoreNode (const DataNode *dataNode) |
Provides access to the LevelWindowProperty object and LevelWindow of the "current" image.
Changes on Level/Window can be set with SetLevelWindow() and will affect either the topmost layer image, if isAutoTopMost() returns true, or an image which is set by SetLevelWindowProperty(LevelWindowProperty::Pointer levelWindowProperty).
Changes to Level/Window, when another image gets active or by SetLevelWindow(const LevelWindow& levelWindow), will be sent to all listeners by Modified().
DataStorageChanged() listens to the DataStorage for new or removed images. Depending on how m_AutoTopMost is set, the new image becomes active or not. If an image is removed from the DataStorage and m_AutoTopMost is false, there is a check to proof, if the active image is still available. If not, then m_AutoTopMost becomes true.
Note that this class is not thread safe at the moment!
Definition at line 49 of file mitkLevelWindowManager.h.
typedef itk::SmartPointer<const Self> mitk::LevelWindowManager::ConstPointer |
Definition at line 53 of file mitkLevelWindowManager.h.
|
protected |
Definition at line 175 of file mitkLevelWindowManager.h.
Definition at line 53 of file mitkLevelWindowManager.h.
|
protected |
Definition at line 174 of file mitkLevelWindowManager.h.
Definition at line 53 of file mitkLevelWindowManager.h.
typedef itk::Object mitk::LevelWindowManager::Superclass |
Definition at line 53 of file mitkLevelWindowManager.h.
|
protected |
Definition at line 27 of file mitkLevelWindowManager.cpp.
|
overrideprotected |
Definition at line 39 of file mitkLevelWindowManager.cpp.
References ClearPropObserverLists(), DataStorageAddedNode(), DataStorageRemovedNode(), m_DataStorage, m_IsPropertyModifiedTagSet, m_LevelWindowProperty, and m_PropertyModifiedTag.
|
protected |
Internal help method to clear both lists/maps.
Definition at line 586 of file mitkLevelWindowManager.cpp.
References m_ObserverToDisplayedComponentProperty, m_ObserverToLayerProperty, m_ObserverToLevelWindowImageProperty, m_ObserverToRenderingModeProperty, m_ObserverToSelectedProperty, and m_ObserverToVisibleProperty.
Referenced by UpdateObservers(), and ~LevelWindowManager().
Pointer mitk::LevelWindowManager::Clone | ( | ) | const |
|
protected |
Internal help method to create both lists/maps.
Definition at line 631 of file mitkLevelWindowManager.cpp.
References GetRelevantNodes(), m_DataStorage, m_NodeMarkedToDelete, m_ObserverToDisplayedComponentProperty, m_ObserverToLayerProperty, m_ObserverToLevelWindowImageProperty, m_ObserverToRenderingModeProperty, m_ObserverToSelectedProperty, m_ObserverToVisibleProperty, mitkThrow, RecalculateLevelWindowForSelectedComponent(), Update(), and UpdateSelected().
Referenced by UpdateObservers().
void mitk::LevelWindowManager::DataStorageAddedNode | ( | const DataNode * | n = nullptr | ) |
This method is called when a node is added to the data storage. A listener on the data storage is used to call this method automatically after a node was added.
mitk::Exception | Throws an exception if something is wrong, e.g. if the number of observers differs from the number of nodes. |
Definition at line 465 of file mitkLevelWindowManager.cpp.
References GetRelevantNodes(), m_ObserverToLayerProperty, m_ObserverToVisibleProperty, mitkThrow, SetAutoTopMostImage(), and UpdateObservers().
Referenced by SetDataStorage(), and ~LevelWindowManager().
void mitk::LevelWindowManager::DataStorageRemovedNode | ( | const DataNode * | removedNode = nullptr | ) |
This method is called when a node is removed to the data storage. A listener on the data storage is used to call this method automatically directly before a node will be removed.
mitk::Exception | Throws an exception if something is wrong, e.g. if the number of observers differs from the number of nodes. |
Definition at line 481 of file mitkLevelWindowManager.cpp.
References GetRelevantNodes(), m_AutoTopMost, m_DataStorage, m_LevelWindowProperty, m_NodeMarkedToDelete, m_ObserverToLayerProperty, m_ObserverToVisibleProperty, mitkThrow, mitk::NodePredicateProperty::New(), SetAutoTopMostImage(), and UpdateObservers().
Referenced by SetDataStorage(), and ~LevelWindowManager().
|
inlinevirtual |
Definition at line 53 of file mitkLevelWindowManager.h.
|
virtual |
mitk::Image * mitk::LevelWindowManager::GetCurrentImage | ( | ) |
Return the currently active image.
Definition at line 538 of file mitkLevelWindowManager.cpp.
References m_CurrentImage.
Referenced by QmitkLevelWindowWidgetContextMenu::OnUseAllGreyvaluesFromImage(), and QmitkLevelWindowWidgetContextMenu::OnUseOptimizedLevelWindow().
mitk::DataStorage * mitk::LevelWindowManager::GetDataStorage | ( | ) |
Definition at line 84 of file mitkLevelWindowManager.cpp.
References m_DataStorage.
const mitk::LevelWindow & mitk::LevelWindowManager::GetLevelWindow | ( | ) |
Return Level/Window values for the current image.
Definition at line 443 of file mitkLevelWindowManager.cpp.
References m_LevelWindowProperty, and mitkThrow.
Referenced by QmitkLevelWindowWidgetContextMenu::GetContextMenu().
mitk::LevelWindowProperty::Pointer mitk::LevelWindowManager::GetLevelWindowProperty | ( | ) |
Return the current LevelWindowProperty object from the image that is affected by changes.
Definition at line 438 of file mitkLevelWindowManager.cpp.
References m_LevelWindowProperty.
Referenced by QmitkLevelWindowWidgetContextMenu::GetContextMenu().
int mitk::LevelWindowManager::GetNumberOfObservers | ( | ) |
mitk::Exception | Throws an exception if the number of observers differs from the number of relevant objects which means that something is wrong. |
Definition at line 543 of file mitkLevelWindowManager.cpp.
References m_ObserverToVisibleProperty.
mitk::DataStorage::SetOfObjects::ConstPointer mitk::LevelWindowManager::GetRelevantNodes | ( | ) |
Returns all nodes in the DataStorage that have the following properties:
Definition at line 548 of file mitkLevelWindowManager.cpp.
References m_DataStorage, mitk::BoolProperty::New(), mitk::NodePredicateOr::New(), mitk::NodePredicateAnd::New(), mitk::NodePredicateDataType::New(), and mitk::NodePredicateProperty::New().
Referenced by CreatePropObserverLists(), DataStorageAddedNode(), DataStorageRemovedNode(), QmitkLevelWindowWidgetContextMenu::GetContextMenu(), RecalculateLevelWindowForSelectedComponent(), SetAutoTopMostImage(), SetSelectedImages(), and Update().
|
inlinestatic |
Definition at line 53 of file mitkLevelWindowManager.h.
|
protected |
Definition at line 708 of file mitkLevelWindowManager.cpp.
References mitk::RenderingModeProperty::COLORTRANSFERFUNCTION_COLOR, mitk::DataNode::GetProperty(), and mitk::RenderingModeProperty::LOOKUPTABLE_COLOR.
Referenced by SetAutoTopMostImage(), and SetSelectedImages().
bool mitk::LevelWindowManager::IsAutoTopMost | ( | ) |
Return true, if the changes on slider or line-edits will affect the topmost layer image.
Definition at line 455 of file mitkLevelWindowManager.cpp.
References m_AutoTopMost.
Referenced by QmitkLevelWindowWidgetContextMenu::GetContextMenu(), and QmitkLevelWindowWidgetContextMenu::OnSetImage().
bool mitk::LevelWindowManager::IsSelectedImages | ( | ) |
Return true, if changes on slider or line-edits will affect the currently selected images.
Definition at line 460 of file mitkLevelWindowManager.cpp.
References m_SelectedImagesMode.
Referenced by QmitkLevelWindowWidgetContextMenu::GetContextMenu(), and QmitkLevelWindowWidgetContextMenu::OnSetImage().
|
static |
void mitk::LevelWindowManager::OnPropertyModified | ( | const itk::EventObject & | e | ) |
Change notifications from mitkLevelWindowProperty.
Definition at line 533 of file mitkLevelWindowManager.cpp.
Referenced by SetLevelWindowProperty().
void mitk::LevelWindowManager::RecalculateLevelWindowForSelectedComponent | ( | const itk::EventObject & | event | ) |
Definition at line 227 of file mitkLevelWindowManager.cpp.
References GetRelevantNodes(), image, mitk::LevelWindow::SetAuto(), and Update().
Referenced by CreatePropObserverLists().
void mitk::LevelWindowManager::SetAutoTopMostImage | ( | bool | autoTopMost, |
const DataNode * | removedNode = nullptr |
||
) |
(Re-)Initialize the LevelWindowManager by setting the topmost image. Use the removedNode parameter if a node was removed.
autoTopMost | Set the topmost layer image to be affected by changes, if true. |
removedNode | A node was removed from the data storage if != nullptr. |
Definition at line 89 of file mitkLevelWindowManager.cpp.
References GetRelevantNodes(), IgnoreNode(), m_AutoTopMost, m_CurrentImage, m_DataStorage, m_IsPropertyModifiedTagSet, m_LevelWindowMutex, m_LevelWindowProperty, m_PropertyModifiedTag, m_SelectedImagesMode, min(), mitkThrow, and SetLevelWindowProperty().
Referenced by DataStorageAddedNode(), DataStorageRemovedNode(), QmitkLevelWindowWidgetContextMenu::OnSetImage(), and Update().
void mitk::LevelWindowManager::SetDataStorage | ( | DataStorage * | ds | ) |
Definition at line 60 of file mitkLevelWindowManager.cpp.
References DataStorageAddedNode(), DataStorageRemovedNode(), and m_DataStorage.
void mitk::LevelWindowManager::SetLevelWindow | ( | const LevelWindow & | levelWindow | ) |
Set new Level/Window values and inform all listeners about changes.
Definition at line 419 of file mitkLevelWindowManager.cpp.
References m_LevelWindowProperty, m_RelevantDataNodes, and mitk::LevelWindowProperty::SetLevelWindow().
Referenced by QmitkLevelWindowWidgetContextMenu::OnChangeScaleRange(), QmitkLevelWindowWidgetContextMenu::OnSetDefaultLevelWindow(), QmitkLevelWindowWidgetContextMenu::OnSetDefaultScaleRange(), QmitkLevelWindowWidgetContextMenu::OnSetFixed(), QmitkLevelWindowWidgetContextMenu::OnSetMaximumWindow(), QmitkLevelWindowWidgetContextMenu::OnSetPreset(), QmitkLevelWindowWidgetContextMenu::OnUseAllGreyvaluesFromImage(), and QmitkLevelWindowWidgetContextMenu::OnUseOptimizedLevelWindow().
void mitk::LevelWindowManager::SetLevelWindowProperty | ( | LevelWindowProperty::Pointer | levelWindowProperty | ) |
Set a specific LevelWindowProperty; all changes will affect the image belonging to this property.
mitk::Exception | Throw an exception if the there is no image in the data storage which belongs to this property. |
Definition at line 365 of file mitkLevelWindowManager.cpp.
References m_CurrentImage, m_DataStorage, m_IsPropertyModifiedTagSet, m_LevelWindowMutex, m_LevelWindowProperty, m_PropertyModifiedTag, mitkThrow, and OnPropertyModified().
Referenced by QmitkLevelWindowWidgetContextMenu::OnSetImage(), SetAutoTopMostImage(), SetSelectedImages(), and Update().
void mitk::LevelWindowManager::SetSelectedImages | ( | bool | selectedImagesMode, |
const DataNode * | removedNode = nullptr |
||
) |
(Re-)Initialize the LevelWindowManager by setting the selected images. Use the removedNode parameter if a node was removed.
selectedImagesMode | Set the selected images to be affected by changes, if true. |
removedNode | A node was removed from the data storage if != nullptr. |
Definition at line 162 of file mitkLevelWindowManager.cpp.
References GetRelevantNodes(), IgnoreNode(), m_AutoTopMost, m_CurrentImage, m_DataStorage, m_IsPropertyModifiedTagSet, m_LevelWindowMutex, m_LevelWindowProperty, m_PropertyModifiedTag, m_RelevantDataNodes, m_SelectedImagesMode, mitkThrow, and SetLevelWindowProperty().
Referenced by QmitkLevelWindowWidgetContextMenu::OnSetImage(), Update(), and UpdateSelected().
void mitk::LevelWindowManager::Update | ( | const itk::EventObject & | ) |
Update the level window. This function is called if a property of a data node is changed. Relevant properties are defined in the protected 'ObserverToPropertyValueMap'-members.
Definition at line 260 of file mitkLevelWindowManager.cpp.
References GetRelevantNodes(), m_AutoTopMost, m_LevelWindowMutex, m_LevelWindowProperty, m_RelevantDataNodes, m_SelectedImagesMode, min(), MITK_ERROR, SetAutoTopMostImage(), SetLevelWindowProperty(), and SetSelectedImages().
Referenced by CreatePropObserverLists(), and RecalculateLevelWindowForSelectedComponent().
|
protected |
Updates the internal observer list. Ignores nodes which are marked to be deleted in the variable m_NodeMarkedToDelete.
Definition at line 580 of file mitkLevelWindowManager.cpp.
References ClearPropObserverLists(), and CreatePropObserverLists().
Referenced by DataStorageAddedNode(), and DataStorageRemovedNode().
void mitk::LevelWindowManager::UpdateSelected | ( | const itk::EventObject & | ) |
Update the level window. This function is only called if the 'selected' property of a data node is changed. This is done in order to avoid finding the correct image each time a node is selected but the 'm_SelectedImages' bool value is set to false (as the normal 'Update'-function would do). Changes of the 'selected' property happen quite a lot so this should not slow down the application.
Definition at line 351 of file mitkLevelWindowManager.cpp.
References m_LevelWindowMutex, m_RelevantDataNodes, m_SelectedImagesMode, and SetSelectedImages().
Referenced by CreatePropObserverLists().
|
protected |
Definition at line 203 of file mitkLevelWindowManager.h.
Referenced by DataStorageRemovedNode(), IsAutoTopMost(), SetAutoTopMostImage(), SetSelectedImages(), and Update().
|
protected |
Definition at line 208 of file mitkLevelWindowManager.h.
Referenced by GetCurrentImage(), SetAutoTopMostImage(), SetLevelWindowProperty(), and SetSelectedImages().
|
protected |
Definition at line 170 of file mitkLevelWindowManager.h.
Referenced by CreatePropObserverLists(), DataStorageRemovedNode(), GetDataStorage(), GetRelevantNodes(), SetAutoTopMostImage(), SetDataStorage(), SetLevelWindowProperty(), SetSelectedImages(), and ~LevelWindowManager().
|
protected |
Definition at line 206 of file mitkLevelWindowManager.h.
|
protected |
Definition at line 210 of file mitkLevelWindowManager.h.
Referenced by SetAutoTopMostImage(), SetLevelWindowProperty(), SetSelectedImages(), and ~LevelWindowManager().
|
protected |
Definition at line 211 of file mitkLevelWindowManager.h.
Referenced by SetAutoTopMostImage(), SetLevelWindowProperty(), SetSelectedImages(), Update(), and UpdateSelected().
|
protected |
Pointer to the LevelWindowProperty of the current image.
Definition at line 172 of file mitkLevelWindowManager.h.
Referenced by DataStorageRemovedNode(), GetLevelWindow(), GetLevelWindowProperty(), SetAutoTopMostImage(), SetLevelWindow(), SetLevelWindowProperty(), SetSelectedImages(), Update(), and ~LevelWindowManager().
|
protected |
This variable holds a data node which will be deleted from the datastorage immediately Nullptr, if there is no data node to be deleted.
Definition at line 201 of file mitkLevelWindowManager.h.
Referenced by CreatePropObserverLists(), and DataStorageRemovedNode().
|
protected |
Definition at line 205 of file mitkLevelWindowManager.h.
|
protected |
Map to hold observer IDs to every "Image.Displayed Component" property of DataNode's BaseProperty.
Definition at line 183 of file mitkLevelWindowManager.h.
Referenced by ClearPropObserverLists(), and CreatePropObserverLists().
|
protected |
Map to hold observer IDs to every "layer" property of DataNode's BaseProperty.
Definition at line 179 of file mitkLevelWindowManager.h.
Referenced by ClearPropObserverLists(), CreatePropObserverLists(), DataStorageAddedNode(), and DataStorageRemovedNode().
|
protected |
Map to hold observer IDs to every "imageForLevelWindow" property of DataNode's BaseProperty.
Definition at line 185 of file mitkLevelWindowManager.h.
Referenced by ClearPropObserverLists(), and CreatePropObserverLists().
|
protected |
Map to hold observer IDs to every "Image Rendering.Mode" property of DataNode's BaseProperty.
Definition at line 181 of file mitkLevelWindowManager.h.
Referenced by ClearPropObserverLists(), and CreatePropObserverLists().
|
protected |
Map to hold observer IDs to every "selected" property of DataNode's BaseProperty.
Definition at line 187 of file mitkLevelWindowManager.h.
Referenced by ClearPropObserverLists(), and CreatePropObserverLists().
|
protected |
Map to hold observer IDs to every "visible" property of DataNode's BaseProperty.
Definition at line 177 of file mitkLevelWindowManager.h.
Referenced by ClearPropObserverLists(), CreatePropObserverLists(), DataStorageAddedNode(), DataStorageRemovedNode(), and GetNumberOfObservers().
|
protected |
Definition at line 207 of file mitkLevelWindowManager.h.
Referenced by SetAutoTopMostImage(), SetLevelWindowProperty(), SetSelectedImages(), and ~LevelWindowManager().
|
protected |
Definition at line 209 of file mitkLevelWindowManager.h.
Referenced by SetLevelWindow(), SetSelectedImages(), Update(), and UpdateSelected().
|
protected |
Definition at line 204 of file mitkLevelWindowManager.h.
Referenced by IsSelectedImages(), SetAutoTopMostImage(), SetSelectedImages(), Update(), and UpdateSelected().