Medical Imaging Interaction Toolkit  2018.4.99-b7f3afaa
Medical Imaging Interaction Toolkit
mitk::DataStorage Class Referenceabstract

Data management class that handles 'was created by' relations. More...

#include <mitkDataStorage.h>

Inheritance diagram for mitk::DataStorage:
Collaboration diagram for mitk::DataStorage:

Public Types

typedef DataStorage Self
 
typedef itk::Object Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef itk::VectorContainer< unsigned int, DataNode::PointerSetOfObjects
 A Container of objects that is used as a result set of GetSubset() query operations (Set of. More...
 
typedef Message1< const DataNode * > DataStorageEvent
 

Public Member Functions

virtual std::vector< std::string > GetClassHierarchy () const
 
virtual const char * GetClassName () const
 
virtual void Add (DataNode *node, const DataStorage::SetOfObjects *parents=nullptr)=0
 Adds a DataNode containing a data object to its internal storage. More...
 
void Add (DataNode *node, DataNode *parent)
 Convenience method to add a node that has one parent. More...
 
virtual void Remove (const DataNode *node)=0
 Removes node from the DataStorage. More...
 
virtual bool Exists (const DataNode *node) const =0
 Checks if a node exists in the DataStorage. More...
 
void Remove (const DataStorage::SetOfObjects *nodes)
 Removes a set of nodes from the DataStorage. More...
 
SetOfObjects::ConstPointer GetSubset (const NodePredicateBase *condition) const
 returns a set of data objects that meet the given condition(s) More...
 
virtual SetOfObjects::ConstPointer GetSources (const DataNode *node, const NodePredicateBase *condition=nullptr, bool onlyDirectSources=true) const =0
 returns a set of source objects for a given node that meet the given condition(s). More...
 
virtual SetOfObjects::ConstPointer GetDerivations (const DataNode *node, const NodePredicateBase *condition=nullptr, bool onlyDirectDerivations=true) const =0
 returns a set of derived objects for a given node. More...
 
virtual SetOfObjects::ConstPointer GetAll () const =0
 returns a set of all data objects that are stored in the data storage More...
 
DataNodeGetNode (const NodePredicateBase *condition=nullptr) const
 Convenience method to get the first node that matches the predicate condition. More...
 
DataNodeGetNamedNode (const char *name) const
 Convenience method to get the first node with a given name. More...
 
DataNodeGetNamedNode (const std::string name) const
 Convenience method to get the first node with a given name. More...
 
DataNodeGetNamedDerivedNode (const char *name, const DataNode *sourceNode, bool onlyDirectDerivations=true) const
 Convenience method to get the first node with a given name that is derived from sourceNode. More...
 
template<class DataType >
DataType * GetNamedObject (const char *name) const
 Convenience method to get the first data object of a given data type with a given name. More...
 
template<class DataType >
DataType * GetNamedObject (const std::string name) const
 Convenience method to get the first data object of a given data type with a given name. More...
 
template<class DataType >
DataType * GetNamedDerivedObject (const char *name, const DataNode *sourceNode, bool onlyDirectDerivations=true) const
 Convenience method to get the first data object of a given data type with a given name that is derived. More...
 
const DataNode::GroupTagList GetGroupTags () const
 Returns a list of used grouptags. More...
 
TimeGeometry::ConstPointer ComputeBoundingGeometry3D (const SetOfObjects *input, const char *boolPropertyKey=nullptr, const BaseRenderer *renderer=nullptr, const char *boolPropertyKey2=nullptr) const
 Compute the axis-parallel bounding geometry of the input objects. More...
 
TimeGeometry::ConstPointer ComputeBoundingGeometry3D (const char *boolPropertyKey=nullptr, const BaseRenderer *renderer=nullptr, const char *boolPropertyKey2=nullptr) const
 Compute the axis-parallel bounding geometry of the data tree (bounding box, minimal spacing of the considered nodes, live-span) More...
 
TimeGeometry::ConstPointer ComputeVisibleBoundingGeometry3D (const BaseRenderer *renderer=nullptr, const char *boolPropertyKey=nullptr)
 Compute the axis-parallel bounding geometry of all visible parts of the data tree bounding box, minimal spacing of the considered nodes, live-span) More...
 
BoundingBox::Pointer ComputeBoundingBox (const char *boolPropertyKey=nullptr, const BaseRenderer *renderer=nullptr, const char *boolPropertyKey2=nullptr)
 Compute the bounding box of data tree structure it -> an iterator to a data tree structure. More...
 
BoundingBox::Pointer ComputeVisibleBoundingBox (const BaseRenderer *renderer=nullptr, const char *boolPropertyKey=nullptr)
 Compute the bounding box of all visible parts of the data tree structure, for general rendering or renderer specific visibility property checking. More...
 
TimeBounds ComputeTimeBounds (const char *boolPropertyKey, const BaseRenderer *renderer, const char *boolPropertyKey2)
 Compute the time-bounds of the contents of a data tree structure. More...
 
TimeBounds ComputeTimeBounds (const BaseRenderer *renderer, const char *boolPropertyKey)
 Compute the time-bounds of all visible parts of the data tree structure, for general rendering or renderer specific visibility property checking. More...
 
void BlockNodeModifiedEvents (bool block)
 Defines whether or not NodeChangedEvent is invoked . More...
 

Static Public Member Functions

static const char * GetStaticNameOfClass ()
 

Public Attributes

itk::SimpleFastMutexLock m_MutexOne
 
DataStorageEvent AddNodeEvent
 AddEvent is emitted whenever a new node has been added to the DataStorage. More...
 
DataStorageEvent RemoveNodeEvent
 RemoveEvent is emitted directly before a node is removed from the DataStorage. More...
 
DataStorageEvent ChangedNodeEvent
 ChangedEvent is emitted directly after a node was changed. More...
 
DataStorageEvent DeleteNodeEvent
 DeleteNodeEvent is emitted directly before a node is deleted. More...
 
DataStorageEvent InteractorChangedNodeEvent
 

Protected Member Functions

void EmitAddNodeEvent (const DataNode *node)
 EmitAddNodeEvent emits the AddNodeEvent. More...
 
void EmitRemoveNodeEvent (const DataNode *node)
 EmitRemoveNodeEvent emits the RemoveNodeEvent. More...
 
void OnNodeInteractorChanged (itk::Object *caller, const itk::EventObject &event)
 
void OnNodeModifiedOrDeleted (const itk::Object *caller, const itk::EventObject &event)
 OnNodeModified listens to modified events of DataNodes. More...
 
void AddListeners (const DataNode *_Node)
 Adds a Modified-Listener to the given Node. More...
 
void RemoveListeners (const DataNode *_Node)
 Removes a Modified-Listener from the given Node. More...
 
 DataStorage ()
 Standard Constructor for ::New() instantiation. More...
 
 ~DataStorage () override
 Standard Destructor. More...
 
SetOfObjects::ConstPointer FilterSetOfObjects (const SetOfObjects *set, const NodePredicateBase *condition) const
 Filters a SetOfObjects by the condition. If no condition is provided, the original set is returned. More...
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 Prints the contents of the DataStorage to os. Do not call directly, call ->Print() instead. More...
 

Protected Attributes

std::map< const DataNode *, unsigned long > m_NodeModifiedObserverTags
 Saves Modified-Observer Tags for each node in order to remove the event listeners again. More...
 
std::map< const DataNode *, unsigned long > m_NodeInteractorChangedObserverTags
 
std::map< const DataNode *, unsigned long > m_NodeDeleteObserverTags
 Saves Delete-Observer Tags for each node in order to remove the event listeners again. More...
 
bool m_BlockNodeModifiedEvents
 If this class changes nodes itself, set this to TRUE in order to suppress NodeChangedEvent to be emitted. More...
 

Detailed Description

Data management class that handles 'was created by' relations.

The DataStorage provides data storage and management functionality. It handles a 'was created by' relation by associating each data object with a set of source objects, that this object was created from. Thus, nodes are stored in a noncyclical directed graph data structure. If a new node is added to the DataStorage, AddNodeEvent is emitted. If a node is removed, RemoveNodeEvent is emitted.

Definition at line 43 of file mitkDataStorage.h.

Member Typedef Documentation

◆ ConstPointer

Definition at line 46 of file mitkDataStorage.h.

◆ DataStorageEvent

Definition at line 200 of file mitkDataStorage.h.

◆ Pointer

◆ Self

Definition at line 46 of file mitkDataStorage.h.

◆ SetOfObjects

typedef itk::VectorContainer<unsigned int, DataNode::Pointer> mitk::DataStorage::SetOfObjects

A Container of objects that is used as a result set of GetSubset() query operations (Set of.

Definition at line 46 of file mitkDataStorage.h.

◆ Superclass

typedef itk::Object mitk::DataStorage::Superclass

Definition at line 46 of file mitkDataStorage.h.

Constructor & Destructor Documentation

◆ DataStorage()

mitk::DataStorage::DataStorage ( )
protected

Standard Constructor for ::New() instantiation.

Definition at line 25 of file mitkDataStorage.cpp.

◆ ~DataStorage()

mitk::DataStorage::~DataStorage ( )
overrideprotected

Standard Destructor.

Definition at line 29 of file mitkDataStorage.cpp.

Member Function Documentation

◆ Add() [1/2]

virtual void mitk::DataStorage::Add ( DataNode node,
const DataStorage::SetOfObjects parents = nullptr 
)
pure virtual

Adds a DataNode containing a data object to its internal storage.

This Method adds a new data object to the DataStorage. The new object is passed in the first parameter. The second parameter is a set of source objects, that were used to create this object. The new object will have a 'was created from' relation to its source objects. the addition of a new object will fire the notification mechanism. If the node parameter is nullptr or if the DataNode has already been added, an exception will be thrown.

Implemented in mitk::StandaloneDataStorage.

Referenced by QmitkRenderWindowWidget::ActivateCrosshair(), mitk::PickingTool::Activated(), mitk::FastMarchingTool3D::Activated(), mitk::FastMarchingTool::Activated(), Add(), mitk::SegTool2D::AddContourmarker(), AddGeneratedDataToStorage(), mitk::Gizmo::AddGizmoToNode(), mitk::PixelManipulationTool::AddImageToDataStorage(), mitk::PaintbrushTool::CheckIfCurrentSliceHasChanged(), mitk::LiveWireTool2D::ClearSegmentation(), mitk::PickingTool::ConfirmSegmentation(), QmitkBoundingObjectWidget::CreateBoundingObject(), mitk::WatershedTool::DoIt(), mitk::PersistenceService::GetDataNodes(), mitk::AutoSegmentationTool::GetTargetSegmentationNode(), mitk::SceneReaderV1::LoadScene(), mitk::PickingTool::OnPointAdded(), mitk::AbstractFileReader::Read(), QmitkAdaptiveRegionGrowingToolGUI::RunSegmentation(), QmitkNavigationToolCreationWidget::ShowToolPreview(), mitk::modelFit::StoreResultsInDataStorage(), TestDataStorage(), and QmitkLabelSetWidget::UpdateControls().

◆ Add() [2/2]

void mitk::DataStorage::Add ( DataNode node,
DataNode parent 
)

Convenience method to add a node that has one parent.

Definition at line 39 of file mitkDataStorage.cpp.

References Add().

◆ AddListeners()

void mitk::DataStorage::AddListeners ( const DataNode _Node)
protected

◆ BlockNodeModifiedEvents()

void mitk::DataStorage::BlockNodeModifiedEvents ( bool  block)

Defines whether or not NodeChangedEvent is invoked .

This method can be used to set m_BlockNodeModifiedEvents.

If this flag is true, NodeChangedEvent is not invoked when a DataNode is modified. This might be undesired when setting many properties on a datanode and you do not want anyone to react.

Definition at line 508 of file mitkDataStorage.cpp.

References m_BlockNodeModifiedEvents.

◆ ComputeBoundingBox()

mitk::BoundingBox::Pointer mitk::DataStorage::ComputeBoundingBox ( const char *  boolPropertyKey = nullptr,
const BaseRenderer renderer = nullptr,
const char *  boolPropertyKey2 = nullptr 
)

Compute the bounding box of data tree structure it -> an iterator to a data tree structure.

Parameters
boolPropertyKeyif a BoolProperty with this boolPropertyKey exists for a node (for renderer) and is set to false, the node is ignored for the bounding-box calculation.
renderersee boolPropertyKey
boolPropertyKey2a second condition that is applied additionally to boolPropertyKey

Definition at line 411 of file mitkDataStorage.cpp.

References GetAll(), mitk::TimeGeometry::GetBoundingBoxInWorld(), mitk::TimeGeometry::GetCornerPointInWorld(), and mitk::large.

Referenced by mitk::CameraController::SetStandardView().

◆ ComputeBoundingGeometry3D() [1/2]

mitk::TimeGeometry::ConstPointer mitk::DataStorage::ComputeBoundingGeometry3D ( const SetOfObjects input,
const char *  boolPropertyKey = nullptr,
const BaseRenderer renderer = nullptr,
const char *  boolPropertyKey2 = nullptr 
) const

Compute the axis-parallel bounding geometry of the input objects.

Throws std::invalid_argument exception if input is nullptr

Parameters
inputset of objects of the DataStorage to be included in the bounding geometry
boolPropertyKeyif a BoolProperty with this boolPropertyKey exists for a node (for renderer) and is set to false, the node is ignored for the bounding-box calculation.
renderersee boolPropertyKey
boolPropertyKey2a second condition that is applied additionally to boolPropertyKey

Definition at line 255 of file mitkDataStorage.cpp.

References mitk::TimeGeometry::CountTimeSteps(), mitk::TimeGeometry::GetBoundingBoxInWorld(), mitk::TimeGeometry::GetCornerPointInWorld(), mitk::TimeGeometry::GetTimeBounds(), mitk::large, max(), MITK_ERROR, mitk::Geometry3D::New(), mitk::ArbitraryTimeGeometry::New(), and offset.

Referenced by QmitkRenderWindowWidget::ActivateCrosshair(), ComputeBoundingGeometry3D(), ComputeVisibleBoundingGeometry3D(), mitk::RenderingManager::InitializeViewsByBoundingObjects(), QmitkStdMultiWidget::SetWidgetPlanesVisibility(), and TestDataStorage().

◆ ComputeBoundingGeometry3D() [2/2]

mitk::TimeGeometry::ConstPointer mitk::DataStorage::ComputeBoundingGeometry3D ( const char *  boolPropertyKey = nullptr,
const BaseRenderer renderer = nullptr,
const char *  boolPropertyKey2 = nullptr 
) const

Compute the axis-parallel bounding geometry of the data tree (bounding box, minimal spacing of the considered nodes, live-span)

it -> an iterator to a data tree structure

Parameters
boolPropertyKeyif a BoolProperty with this boolPropertyKey exists for a node (for renderer) and is set to false, the node is ignored for the bounding-box calculation.
renderersee boolPropertyKey
boolPropertyKey2a second condition that is applied additionally to boolPropertyKey

Definition at line 398 of file mitkDataStorage.cpp.

References ComputeBoundingGeometry3D(), and GetAll().

◆ ComputeTimeBounds() [1/2]

mitk::TimeBounds mitk::DataStorage::ComputeTimeBounds ( const char *  boolPropertyKey,
const BaseRenderer renderer,
const char *  boolPropertyKey2 
)

Compute the time-bounds of the contents of a data tree structure.

The methods returns only [-infinity, +infinity], if all data-objects have an infinite live-span. Otherwise, all data-objects with infinite live-span are ignored. it -> an iterator to a data tree structure

Parameters
boolPropertyKeyif a BoolProperty with this boolPropertyKey exists for a node (for renderer) and is set to false, the node is ignored for the time-bounds calculation.
renderersee boolPropertyKey
boolPropertyKey2a second condition that is applied additionally to boolPropertyKey

Definition at line 463 of file mitkDataStorage.cpp.

References GetAll(), mitk::TimeGeometry::GetTimeBounds(), and max().

◆ ComputeTimeBounds() [2/2]

TimeBounds mitk::DataStorage::ComputeTimeBounds ( const BaseRenderer renderer,
const char *  boolPropertyKey 
)
inline

Compute the time-bounds of all visible parts of the data tree structure, for general rendering or renderer specific visibility property checking.

The methods returns only [-infinity, +infinity], if all data-objects have an infinite live-span. Otherwise, all data-objects with infinite live-span are ignored. Simply calls ComputeTimeBounds(it, "visible", renderer, boolPropertyKey).

Parameters
itan iterator to a data tree structure
boolPropertyKeyif a BoolProperty with this boolPropertyKey exists for a node (for renderer) and is set to false, the node is ignored for the time-bounds calculation.
renderersee boolPropertyKey

Definition at line 358 of file mitkDataStorage.h.

◆ ComputeVisibleBoundingBox()

BoundingBox::Pointer mitk::DataStorage::ComputeVisibleBoundingBox ( const BaseRenderer renderer = nullptr,
const char *  boolPropertyKey = nullptr 
)
inline

Compute the bounding box of all visible parts of the data tree structure, for general rendering or renderer specific visibility property checking.

Simply calls ComputeBoundingBox(it, "visible", renderer, boolPropertyKey). it -> an iterator of a data tree structure

Parameters
rendererthe reference to the renderer
boolPropertyKeyif a BoolProperty with this boolPropertyKey exists for a node (for renderer) and is set to false, the node is ignored for the bounding-box calculation.

Definition at line 327 of file mitkDataStorage.h.

◆ ComputeVisibleBoundingGeometry3D()

mitk::TimeGeometry::ConstPointer mitk::DataStorage::ComputeVisibleBoundingGeometry3D ( const BaseRenderer renderer = nullptr,
const char *  boolPropertyKey = nullptr 
)

Compute the axis-parallel bounding geometry of all visible parts of the data tree bounding box, minimal spacing of the considered nodes, live-span)

Simply calls ComputeBoundingGeometry3D(it, "visible", renderer, boolPropertyKey). it -> an iterator of a data tree structure

Parameters
rendererthe reference to the renderer
boolPropertyKeyif a BoolProperty with this boolPropertyKey exists for a node (for renderer) and is set to false, the node is ignored for the bounding-box calculation.

Definition at line 405 of file mitkDataStorage.cpp.

References ComputeBoundingGeometry3D().

◆ EmitAddNodeEvent()

void mitk::DataStorage::EmitAddNodeEvent ( const DataNode node)
protected

EmitAddNodeEvent emits the AddNodeEvent.

This method should be called by subclasses to emit the AddNodeEvent

Definition at line 176 of file mitkDataStorage.cpp.

References AddNodeEvent, and mitk::Message1< T, A >::Send().

Referenced by mitk::StandaloneDataStorage::Add().

◆ EmitRemoveNodeEvent()

void mitk::DataStorage::EmitRemoveNodeEvent ( const DataNode node)
protected

EmitRemoveNodeEvent emits the RemoveNodeEvent.

This method should be called by subclasses to emit the RemoveNodeEvent

Definition at line 181 of file mitkDataStorage.cpp.

References RemoveNodeEvent, and mitk::Message1< T, A >::Send().

Referenced by mitk::StandaloneDataStorage::Remove().

◆ Exists()

◆ FilterSetOfObjects()

mitk::DataStorage::SetOfObjects::ConstPointer mitk::DataStorage::FilterSetOfObjects ( const SetOfObjects set,
const NodePredicateBase condition 
) const
protected

Filters a SetOfObjects by the condition. If no condition is provided, the original set is returned.

Definition at line 140 of file mitkDataStorage.cpp.

References mitk::NodePredicateBase::CheckNode().

Referenced by mitk::StandaloneDataStorage::GetRelations(), and GetSubset().

◆ GetAll()

◆ GetClassHierarchy()

virtual std::vector<std::string> mitk::DataStorage::GetClassHierarchy ( ) const
inlinevirtual

Reimplemented in mitk::StandaloneDataStorage.

Definition at line 46 of file mitkDataStorage.h.

◆ GetClassName()

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

Reimplemented in mitk::StandaloneDataStorage.

◆ GetDerivations()

virtual SetOfObjects::ConstPointer mitk::DataStorage::GetDerivations ( const DataNode node,
const NodePredicateBase condition = nullptr,
bool  onlyDirectDerivations = true 
) const
pure virtual

returns a set of derived objects for a given node.

GetDerivations() returns a set of objects that are derived from the DataNode node. This means, that node was used to create the returned objects. If the parameter onlyDirectDerivations is set to true (default value), only objects that directly have node as one of their source objects will be returned. Otherwise, objects that are derived from derivations of node are returned too. The derived objects can be filtered with a predicate object as described in the GetSubset() method by providing a predicate as the condition parameter.

Implemented in mitk::StandaloneDataStorage.

Referenced by mitk::SegTool2D::AddContourmarker(), mitk::WatershedTool::DoIt(), QmitkToolWorkingDataSelectionBox::GetAllNodes(), mitk::modelFit::GetFitUIDsOfNode(), GetNamedDerivedNode(), mitk::Gizmo::HasGizmoAttached(), PrintSelf(), mitk::Gizmo::RemoveGizmoFromNode(), and TestDataStorage().

◆ GetGroupTags()

const mitk::DataNode::GroupTagList mitk::DataStorage::GetGroupTags ( ) const

Returns a list of used grouptags.

Definition at line 156 of file mitkDataStorage.cpp.

References GetAll(), and mitk::PropertyList::GetMap().

Referenced by TestDataStorage().

◆ GetNamedDerivedNode()

mitk::DataNode * mitk::DataStorage::GetNamedDerivedNode ( const char *  name,
const DataNode sourceNode,
bool  onlyDirectDerivations = true 
) const

Convenience method to get the first node with a given name that is derived from sourceNode.

Definition at line 88 of file mitkDataStorage.cpp.

References GetDerivations(), mitk::NodePredicateProperty::New(), and mitk::StringProperty::New().

Referenced by TestDataStorage().

◆ GetNamedDerivedObject()

template<class DataType >
DataType* mitk::DataStorage::GetNamedDerivedObject ( const char *  name,
const DataNode sourceNode,
bool  onlyDirectDerivations = true 
) const
inline

Convenience method to get the first data object of a given data type with a given name that is derived.

Definition at line 178 of file mitkDataStorage.h.

References mitk::DataNode::GetData().

◆ GetNamedNode() [1/2]

◆ GetNamedNode() [2/2]

DataNode* mitk::DataStorage::GetNamedNode ( const std::string  name) const
inline

Convenience method to get the first node with a given name.

Definition at line 142 of file mitkDataStorage.h.

References GetNamedNode().

Referenced by GetNamedNode().

◆ GetNamedObject() [1/2]

template<class DataType >
DataType* mitk::DataStorage::GetNamedObject ( const char *  name) const
inline

Convenience method to get the first data object of a given data type with a given name.

Definition at line 154 of file mitkDataStorage.h.

References mitk::DataNode::GetData().

Referenced by QmitkAdaptiveRegionGrowingToolGUI::ConfirmSegmentation(), and TestDataStorage().

◆ GetNamedObject() [2/2]

template<class DataType >
DataType* mitk::DataStorage::GetNamedObject ( const std::string  name) const
inline

Convenience method to get the first data object of a given data type with a given name.

Definition at line 168 of file mitkDataStorage.h.

◆ GetNode()

mitk::DataNode * mitk::DataStorage::GetNode ( const NodePredicateBase condition = nullptr) const

Convenience method to get the first node that matches the predicate condition.

Definition at line 76 of file mitkDataStorage.cpp.

References GetSubset().

Referenced by TestDataStorage().

◆ GetSources()

virtual SetOfObjects::ConstPointer mitk::DataStorage::GetSources ( const DataNode node,
const NodePredicateBase condition = nullptr,
bool  onlyDirectSources = true 
) const
pure virtual

returns a set of source objects for a given node that meet the given condition(s).

Implemented in mitk::StandaloneDataStorage.

Referenced by PrintSelf(), mitk::SceneIO::SaveScene(), and TestDataStorage().

◆ GetStaticNameOfClass()

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

Definition at line 46 of file mitkDataStorage.h.

◆ GetSubset()

mitk::DataStorage::SetOfObjects::ConstPointer mitk::DataStorage::GetSubset ( const NodePredicateBase condition) const

returns a set of data objects that meet the given condition(s)

GetSubset returns a set of objects with a specific data type that meet the condition(s) specified in the condition parameter. Conditions can be

  • data type of the data object
  • is source object of specific object (e.g. all source objects of node x)
  • has property with specific value (e.g. OrganType is Liver)
  • negation of any condition
  • conjunction of a set of conditions
  • disjunction of a set of conditions Conditions are implemented as predicates using the Composite Design Pattern (see definition of NodePredicateBase for details). The method returns a set of SmartPointers to the DataNodes that fulfill the conditions. A set of all objects can be retrieved with the GetAll() method;

Definition at line 55 of file mitkDataStorage.cpp.

References FilterSetOfObjects(), and GetAll().

Referenced by QmitkBoundingObjectWidget::GetAllBoundingObjects(), QmitkToolWorkingDataSelectionBox::GetAllNodes(), QmitkToolReferenceDataSelectionBox::GetAllPossibleReferenceImages(), mitk::ImageStatisticsContainerManager::GetImageStatisticsNode(), mitk::RenderWindowLayerUtilities::GetLayerStack(), GetNamedNode(), GetNode(), mitk::modelFit::GetNodesOfFit(), mitk::RenderingManager::InitializeViewsByBoundingObjects(), QmitkDataStorageListModel::reset(), mitk::DataStorageSelection::Reset(), and TestDataStorage().

◆ OnNodeInteractorChanged()

void mitk::DataStorage::OnNodeInteractorChanged ( itk::Object *  caller,
const itk::EventObject &  event 
)
protected

Definition at line 186 of file mitkDataStorage.cpp.

References InteractorChangedNodeEvent, and mitk::Message1< T, A >::Send().

Referenced by AddListeners().

◆ OnNodeModifiedOrDeleted()

void mitk::DataStorage::OnNodeModifiedOrDeleted ( const itk::Object *  caller,
const itk::EventObject &  event 
)
protected

OnNodeModified listens to modified events of DataNodes.

The node is hidden behind the caller parameter, which has to be casted first. If the cast succeeds the ChangedNodeEvent is emitted with this node.

Definition at line 195 of file mitkDataStorage.cpp.

References ChangedNodeEvent, DeleteNodeEvent, m_BlockNodeModifiedEvents, and mitk::Message1< T, A >::Send().

Referenced by AddListeners().

◆ PrintSelf()

void mitk::DataStorage::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const
overrideprotected

Prints the contents of the DataStorage to os. Do not call directly, call ->Print() instead.

Definition at line 104 of file mitkDataStorage.cpp.

References GetAll(), GetDerivations(), and GetSources().

Referenced by mitk::StandaloneDataStorage::PrintSelf().

◆ Remove() [1/2]

◆ Remove() [2/2]

void mitk::DataStorage::Remove ( const DataStorage::SetOfObjects nodes)

Removes a set of nodes from the DataStorage.

Definition at line 47 of file mitkDataStorage.cpp.

References Remove().

◆ RemoveListeners()

void mitk::DataStorage::RemoveListeners ( const DataNode _Node)
protected

Member Data Documentation

◆ AddNodeEvent

DataStorageEvent mitk::DataStorage::AddNodeEvent

AddEvent is emitted whenever a new node has been added to the DataStorage.

Observers should register to this event by calling myDataStorage->AddNodeEvent.AddListener(myObject,

Definition at line 215 of file mitkDataStorage.h.

Referenced by EmitAddNodeEvent(), QmitkAbstractDataStorageModel::SetDataStorage(), QmitkDataStorageListModel::SetDataStorage(), mitk::DataStorageSelection::SetDataStorage(), and TestDataStorage().

◆ ChangedNodeEvent

DataStorageEvent mitk::DataStorage::ChangedNodeEvent

ChangedEvent is emitted directly after a node was changed.

Observers should register to this event by calling myDataStorage->ChangedNodeEvent.AddListener(myObject,

Definition at line 248 of file mitkDataStorage.h.

Referenced by OnNodeModifiedOrDeleted(), and QmitkAbstractDataStorageModel::SetDataStorage().

◆ DeleteNodeEvent

DataStorageEvent mitk::DataStorage::DeleteNodeEvent

DeleteNodeEvent is emitted directly before a node is deleted.

Observers should register to this event by calling myDataStorage->DeleteNodeEvent.AddListener(myObject,

Definition at line 264 of file mitkDataStorage.h.

Referenced by OnNodeModifiedOrDeleted().

◆ InteractorChangedNodeEvent

DataStorageEvent mitk::DataStorage::InteractorChangedNodeEvent

Definition at line 266 of file mitkDataStorage.h.

Referenced by OnNodeInteractorChanged().

◆ m_BlockNodeModifiedEvents

bool mitk::DataStorage::m_BlockNodeModifiedEvents
protected

If this class changes nodes itself, set this to TRUE in order to suppress NodeChangedEvent to be emitted.

Definition at line 417 of file mitkDataStorage.h.

Referenced by BlockNodeModifiedEvents(), and OnNodeModifiedOrDeleted().

◆ m_MutexOne

itk::SimpleFastMutexLock mitk::DataStorage::m_MutexOne
mutable

Definition at line 197 of file mitkDataStorage.h.

Referenced by AddListeners(), and RemoveListeners().

◆ m_NodeDeleteObserverTags

std::map<const DataNode *, unsigned long> mitk::DataStorage::m_NodeDeleteObserverTags
protected

Saves Delete-Observer Tags for each node in order to remove the event listeners again.

Definition at line 412 of file mitkDataStorage.h.

Referenced by AddListeners(), and RemoveListeners().

◆ m_NodeInteractorChangedObserverTags

std::map<const DataNode *, unsigned long> mitk::DataStorage::m_NodeInteractorChangedObserverTags
protected

Definition at line 408 of file mitkDataStorage.h.

Referenced by AddListeners(), and RemoveListeners().

◆ m_NodeModifiedObserverTags

std::map<const DataNode *, unsigned long> mitk::DataStorage::m_NodeModifiedObserverTags
protected

Saves Modified-Observer Tags for each node in order to remove the event listeners again.

Definition at line 406 of file mitkDataStorage.h.

Referenced by AddListeners(), and RemoveListeners().

◆ RemoveNodeEvent

DataStorageEvent mitk::DataStorage::RemoveNodeEvent

RemoveEvent is emitted directly before a node is removed from the DataStorage.

Observers should register to this event by calling myDataStorage->RemoveNodeEvent.AddListener(myObject,

Definition at line 232 of file mitkDataStorage.h.

Referenced by mitk::ToolManager::ActivateTool(), EmitRemoveNodeEvent(), QmitkToolRoiDataSelectionBox::SetDataStorage(), QmitkAbstractDataStorageModel::SetDataStorage(), QmitkDataStorageListModel::SetDataStorage(), mitk::DataStorageSelection::SetDataStorage(), TestDataStorage(), and mitk::ToolManager::~ToolManager().


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