15#ifndef __vtkObserverManager_h
16#define __vtkObserverManager_h
27class vtkCallbackCommand;
30class vtkUnsignedLongArray;
32#ifndef vtkObjectPointer
33# define vtkObjectPointer(xx) (reinterpret_cast<vtkObject**>((xx)))
47 void PrintSelf(ostream& os, vtkIndent indent)
override;
50 void SetObject(vtkObject** nodePtr, vtkObject* node);
53 void SetAndObserveObject(vtkObject** nodePtr, vtkObject* node,
float priority = 0.0,
bool logWarningIfSameObservationExists =
true);
56 void SetAndObserveObjectEvents(vtkObject** nodePtr, vtkObject* node, vtkIntArray* events, vtkFloatArray* priorities =
nullptr,
bool logWarningIfSameObservationExists =
true);
62 void GetObjectEvents(vtkObject* nodePtr, vtkIntArray* events, vtkFloatArray* priorities);
65 void ObserveObject(vtkObject* node,
float priority = 0.0,
bool logWarningIfSameObservationExists =
true);
68 void AddObjectEvent(vtkObject* node,
unsigned long event,
float priority = 0.0,
bool logWarningIfSameObservationExists =
true);
71 void AddObjectEvents(vtkObject* nodePtr, vtkIntArray* events, vtkFloatArray* priorities =
nullptr,
bool logWarningIfSameObservationExists =
true);
78 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)
std::map< vtkObject *, vtkUnsignedLongArray * > ObserverTags
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...
void PrintSelf(ostream &os, vtkIndent indent) override
int GetObservationsCount(vtkObject *nodePtr, unsigned long event=0)