15#ifndef __vtkObserverManager_h
16#define __vtkObserverManager_h
27class vtkCallbackCommand;
30class vtkUnsignedLongArray;
32#ifndef vtkObjectPointer
33#define vtkObjectPointer(xx) (reinterpret_cast <vtkObject **>( (xx) ))
48 void PrintSelf(ostream& os, vtkIndent indent)
override;
51 void SetObject(vtkObject **nodePtr, vtkObject *node);
54 void SetAndObserveObject(vtkObject **nodePtr, vtkObject *node,
float priority=0.0,
bool logWarningIfSameObservationExists=
true);
57 void SetAndObserveObjectEvents(vtkObject **nodePtr, vtkObject *node, vtkIntArray *events, vtkFloatArray *priorities=
nullptr,
bool logWarningIfSameObservationExists=
true);
63 void GetObjectEvents(vtkObject *nodePtr, vtkIntArray *events, vtkFloatArray *priorities);
66 void ObserveObject(vtkObject *node,
float priority=0.0,
bool logWarningIfSameObservationExists=
true);
69 void AddObjectEvent(vtkObject *node,
unsigned long event,
float priority=0.0,
bool logWarningIfSameObservationExists=
true);
72 void AddObjectEvents(vtkObject *nodePtr, vtkIntArray *events, vtkFloatArray *priorities=
nullptr,
bool logWarningIfSameObservationExists=
true);
79 vtkGetObjectMacro (
Owner, vtkObject);
vtkObserverManager(const vtkObserverManager &)
void SetAndObserveObjectEvents(vtkObject **nodePtr, vtkObject *node, vtkIntArray *events, vtkFloatArray *priorities=nullptr, bool logWarningIfSameObservationExists=true)
set vtkObject to a specified pointer, remove all observers for all events, add observers for specifie...
~vtkObserverManager() override
void GetObjectEvents(vtkObject *nodePtr, vtkIntArray *events, vtkFloatArray *priorities)
get a list of all observed events and priorities for the selected node
vtkCallbackCommand * CallbackCommand
Holder for callback.
vtkObject * Owner
The owner of the observer manager (e.g. the vtkMRMLNode)
void RemoveObjectEvents(vtkObject *nodePtr)
remove all observers for all events
void AddObjectEvent(vtkObject *node, unsigned long event, float priority=0.0, bool logWarningIfSameObservationExists=true)
add observers for specified events
void AddObjectEvents(vtkObject *nodePtr, vtkIntArray *events, vtkFloatArray *priorities=nullptr, bool logWarningIfSameObservationExists=true)
add observers for specified events
void ObserveObject(vtkObject *node, float priority=0.0, bool logWarningIfSameObservationExists=true)
observe ModifiedEvent on the object (convenience method that calls AddObjectEvent with ModifiedEvent)
void operator=(const vtkObserverManager &)
vtkObject * GetObserver()
Returns the owner if any, otherwise returns the manager itself.
void SetObject(vtkObject **nodePtr, vtkObject *node)
set vtkObject to a specified pointer and remove all observers for all events
static vtkObserverManager * New()
The Usual vtk class functions.
void AssignOwner(vtkObject *owner)
void SetAndObserveObject(vtkObject **nodePtr, vtkObject *node, float priority=0.0, bool logWarningIfSameObservationExists=true)
set vtkObject to a specified pointer, remove all observers for all events, add observer for Modify ev...
std::map< vtkObject *, vtkUnsignedLongArray * > ObserverTags
void PrintSelf(ostream &os, vtkIndent indent) override
int GetObservationsCount(vtkObject *nodePtr, unsigned long event=0)