Slicer 5.13
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLLayerDMNodeReferenceObserver Class Reference

#include <Modules/Loadable/LayerDM/MRML/vtkMRMLLayerDMNodeReferenceObserver.h>

Inheritance diagram for vtkMRMLLayerDMNodeReferenceObserver:
Collaboration diagram for vtkMRMLLayerDMNodeReferenceObserver:

Public Types

enum  Event { ReferenceAddedEvent = 0 , ReferenceRemovedEvent }
 
using RefT = std::tuple<vtkWeakPointer<vtkMRMLNode>, std::string>
 
typedef vtkObject Superclass
 

Public Member Functions

virtual const char * GetClassName ()
 
virtual int IsA (const char *type)
 
void PrintSelf (ostream &os, vtkIndent indent) override
 
void SetScene (vtkMRMLScene *scene)
 Setting the MRML scene will trigger node added / removed callbacks if they are set.
 
std::vector< RefT > GetNodeToReferences (vtkMRMLNode *node) const
 
std::vector< RefT > GetNodeFromReferences (vtkMRMLNode *node) const
 
int GetReferenceToSize () const
 
int GetReferenceFromSize () const
 
int GetNumberOfNodes () const
 

Static Public Member Functions

static int IsTypeOf (const char *type)
 
static vtkMRMLLayerDMNodeReferenceObserver * New ()
 
static vtkMRMLLayerDMNodeReferenceObserver * SafeDownCast (vtkObject *o)
 

Protected Member Functions

 vtkMRMLLayerDMNodeReferenceObserver ()
 
 ~vtkMRMLLayerDMNodeReferenceObserver () override
 
using CallBackT = std::function<void(vtkMRMLNode*, vtkMRMLNode*, const std::string&, int eventType)>
 
void SetReferenceModifiedCallBack (const CallBackT &modifiedCallback)
 

Detailed Description

Reference node observer. Triggers node ref added / removed when references change in the scene. Allows to appropriately update pipelines when references to a given display node are added / removed.

Definition at line 45 of file vtkMRMLLayerDMNodeReferenceObserver.h.

Member Typedef Documentation

◆ CallBackT

using vtkMRMLLayerDMNodeReferenceObserver::CallBackT = std::function<void(vtkMRMLNode*, vtkMRMLNode*, const std::string&, int eventType)>

Set the callback triggered when a reference from a node to another node with a given role is added / removed. If the callbacks are defined before the scene is set to the object, the callbacks will be triggered for existing nodes in the scene.

Definition at line 89 of file vtkMRMLLayerDMNodeReferenceObserver.h.

◆ RefT

using vtkMRMLLayerDMNodeReferenceObserver::RefT = std::tuple<vtkWeakPointer<vtkMRMLNode>, std::string>

Reference to a node with a given role.

The node is held by a weak pointer, unlike the other LayerDM containers, because these lists can outlive the node: OnNodeRemoved drops the owning key of the map holding the opposite direction of the reference without notifying the nodes referencing it, so their lists keep the reference until they are updated. Reading such an entry must therefore check the node before using it. The lists are unordered for the same reason: a weak pointer nulls itself in place, which would silently change the value of an element of an ordered container and break its ordering.

See also
NodeToReferences
NodeFromReferences

Definition at line 59 of file vtkMRMLLayerDMNodeReferenceObserver.h.

◆ Superclass

Member Enumeration Documentation

◆ Event

Enumerator
ReferenceAddedEvent 
ReferenceRemovedEvent 

Definition at line 61 of file vtkMRMLLayerDMNodeReferenceObserver.h.

Constructor & Destructor Documentation

◆ vtkMRMLLayerDMNodeReferenceObserver()

vtkMRMLLayerDMNodeReferenceObserver::vtkMRMLLayerDMNodeReferenceObserver ( )
protected

◆ ~vtkMRMLLayerDMNodeReferenceObserver()

vtkMRMLLayerDMNodeReferenceObserver::~vtkMRMLLayerDMNodeReferenceObserver ( )
overrideprotected

Member Function Documentation

◆ GetClassName()

virtual const char * vtkMRMLLayerDMNodeReferenceObserver::GetClassName ( )
virtual

◆ GetNodeFromReferences()

std::vector< RefT > vtkMRMLLayerDMNodeReferenceObserver::GetNodeFromReferences ( vtkMRMLNode * node) const

◆ GetNodeToReferences()

std::vector< RefT > vtkMRMLLayerDMNodeReferenceObserver::GetNodeToReferences ( vtkMRMLNode * node) const

Get references to / from node

◆ GetNumberOfNodes()

int vtkMRMLLayerDMNodeReferenceObserver::GetNumberOfNodes ( ) const

◆ GetReferenceFromSize()

int vtkMRMLLayerDMNodeReferenceObserver::GetReferenceFromSize ( ) const

◆ GetReferenceToSize()

int vtkMRMLLayerDMNodeReferenceObserver::GetReferenceToSize ( ) const

Returns the number of nodes currently stored in the observer. Used for testing / debugging purposes. Usage in normal context should be unnecessary.

◆ IsA()

virtual int vtkMRMLLayerDMNodeReferenceObserver::IsA ( const char * type)
virtual

◆ IsTypeOf()

static int vtkMRMLLayerDMNodeReferenceObserver::IsTypeOf ( const char * type)
static

◆ New()

static vtkMRMLLayerDMNodeReferenceObserver * vtkMRMLLayerDMNodeReferenceObserver::New ( )
static

◆ PrintSelf()

void vtkMRMLLayerDMNodeReferenceObserver::PrintSelf ( ostream & os,
vtkIndent indent )
override

◆ SafeDownCast()

static vtkMRMLLayerDMNodeReferenceObserver * vtkMRMLLayerDMNodeReferenceObserver::SafeDownCast ( vtkObject * o)
static

◆ SetReferenceModifiedCallBack()

void vtkMRMLLayerDMNodeReferenceObserver::SetReferenceModifiedCallBack ( const CallBackT & modifiedCallback)

◆ SetScene()

void vtkMRMLLayerDMNodeReferenceObserver::SetScene ( vtkMRMLScene * scene)

Setting the MRML scene will trigger node added / removed callbacks if they are set.


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