Medical Imaging Interaction Toolkit
2024.12.99-d991a09f
Medical Imaging Interaction Toolkit
|
Data management class that handles 'was created by' relations. More...
#include <mitkStandaloneDataStorage.h>
Public Types | |
typedef StandaloneDataStorage | Self |
typedef mitk::DataStorage | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
![]() | |
typedef DataStorage | Self |
typedef itk::Object | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef itk::VectorContainer< unsigned int, DataNode::Pointer > | SetOfObjects |
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 override |
virtual const char * | GetClassName () const |
Pointer | Clone () const |
void | Add (mitk::DataNode *node, const mitk::DataStorage::SetOfObjects *parents=nullptr) override |
Adds a DataNode containing a data object to its internal storage. More... | |
void | Remove (const mitk::DataNode *node) override |
Removes node from the StandaloneDataStorage. More... | |
bool | Exists (const mitk::DataNode *node) const override |
Checks if a node exists in the StandaloneDataStorage. More... | |
SetOfObjects::ConstPointer | GetSources (const mitk::DataNode *node, const NodePredicateBase *condition=nullptr, bool onlyDirectSources=true) const override |
returns a set of source objects for a given node that meet the given condition(s). More... | |
SetOfObjects::ConstPointer | GetDerivations (const mitk::DataNode *node, const NodePredicateBase *condition=nullptr, bool onlyDirectDerivations=true) const override |
returns a set of derived objects for a given node. More... | |
SetOfObjects::ConstPointer | GetAll () const override |
returns a set of all data objects that are stored in the data storage More... | |
![]() | |
void | Add (DataNode *node, DataNode *parent) |
Convenience method to add a node that has one parent. 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... | |
DataNode * | GetNode (const NodePredicateBase *condition=nullptr) const |
Convenience method to get the first node that matches the predicate condition. More... | |
DataNode * | GetNamedNode (const char *name) const |
Convenience method to get the first node with a given name. More... | |
DataNode * | GetNamedNode (const std::string name) const |
Convenience method to get the first node with a given name. More... | |
DataNode * | 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. 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 () |
static Pointer | New () |
![]() | |
static const char * | GetStaticNameOfClass () |
Public Attributes | |
std::mutex | m_Mutex |
![]() | |
std::mutex | 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 Types | |
typedef std::map< mitk::DataNode::ConstPointer, SetOfObjects::ConstPointer > | AdjacencyList |
noncyclical directed graph data structure to store the nodes with their relation More... | |
Protected Member Functions | |
StandaloneDataStorage () | |
~StandaloneDataStorage () override | |
bool | IsInitialized () const |
convenience method to check if the object has been initialized (i.e. a data tree has been set) More... | |
SetOfObjects::ConstPointer | GetRelations (const mitk::DataNode *node, const AdjacencyList &relation, const NodePredicateBase *condition=nullptr, bool onlyDirectlyRelated=true) const |
Traverses the Relation graph and extracts a list of related elements (e.g. Sources or Derivations) More... | |
void | RemoveFromRelation (const mitk::DataNode *node, AdjacencyList &relation) |
deletes all references to a node in a given relation (used in Remove() and TreeListener) More... | |
void | PrintSelf (std::ostream &os, itk::Indent indent) const override |
Prints the contents of the StandaloneDataStorage to os. Do not call directly, call ->Print() instead. More... | |
![]() | |
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 () | |
~DataStorage () override | |
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 | |
AdjacencyList | m_SourceNodes |
Nodes and their relation are stored in m_SourceNodes. More... | |
AdjacencyList | m_DerivedNodes |
Nodes are stored in reverse relation for easier traversal in the opposite direction of the relation. More... | |
![]() | |
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... | |
Data management class that handles 'was created by' relations.
The StandaloneDataStorage 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 were used to create the new object was created from. Thus, nodes are stored in a noncyclical directed graph data structure. It is derived from mitk::DataStorage and implements its interface, including AddNodeEvent and RemoveNodeEvent.
Definition at line 37 of file mitkStandaloneDataStorage.h.
|
protected |
noncyclical directed graph data structure to store the nodes with their relation
Definition at line 97 of file mitkStandaloneDataStorage.h.
typedef itk::SmartPointer<const Self> mitk::StandaloneDataStorage::ConstPointer |
Definition at line 40 of file mitkStandaloneDataStorage.h.
Definition at line 40 of file mitkStandaloneDataStorage.h.
Definition at line 40 of file mitkStandaloneDataStorage.h.
Definition at line 40 of file mitkStandaloneDataStorage.h.
|
protected |
|
overrideprotected |
|
overridevirtual |
Adds a DataNode containing a data object to its internal storage.
This Method adds a new data object to the StandaloneDataStorage. 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.
Implements mitk::DataStorage.
Pointer mitk::StandaloneDataStorage::Clone | ( | ) | const |
|
overridevirtual |
Checks if a node exists in the StandaloneDataStorage.
Implements mitk::DataStorage.
|
overridevirtual |
returns a set of all data objects that are stored in the data storage
Implements mitk::DataStorage.
|
inlineoverridevirtual |
Reimplemented from mitk::DataStorage.
Definition at line 40 of file mitkStandaloneDataStorage.h.
|
virtual |
Reimplemented from mitk::DataStorage.
|
overridevirtual |
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.
Implements mitk::DataStorage.
|
protected |
Traverses the Relation graph and extracts a list of related elements (e.g. Sources or Derivations)
|
overridevirtual |
returns a set of source objects for a given node that meet the given condition(s).
Implements mitk::DataStorage.
|
inlinestatic |
Definition at line 40 of file mitkStandaloneDataStorage.h.
|
protected |
convenience method to check if the object has been initialized (i.e. a data tree has been set)
|
static |
|
overrideprotected |
Prints the contents of the StandaloneDataStorage to os. Do not call directly, call ->Print() instead.
|
overridevirtual |
Removes node from the StandaloneDataStorage.
Implements mitk::DataStorage.
|
protected |
deletes all references to a node in a given relation (used in Remove() and TreeListener)
|
protected |
Nodes are stored in reverse relation for easier traversal in the opposite direction of the relation.
Definition at line 126 of file mitkStandaloneDataStorage.h.
|
mutable |
Definition at line 92 of file mitkStandaloneDataStorage.h.
|
protected |
Nodes and their relation are stored in m_SourceNodes.
Definition at line 123 of file mitkStandaloneDataStorage.h.