 |
VTK
9.1.0
|
Go to the documentation of this file.
72 #include "vtkCommonCoreModule.h"
74 #include "vtkSetGet.h"
78 class vtkSubjectHelper;
94 void*
operator new(
size_t tSize);
95 void operator delete(
void* p);
212 template <
class U,
class T>
214 unsigned long event, U observer,
void (T::*callback)(),
float priority = 0.0f)
216 vtkClassMemberCallback<T>* callable =
new vtkClassMemberCallback<T>(observer, callback);
219 return this->AddTemplatedObserver(event, callable,
priority);
221 template <
class U,
class T>
225 vtkClassMemberCallback<T>* callable =
new vtkClassMemberCallback<T>(observer, callback);
228 return this->AddTemplatedObserver(event, callable,
priority);
237 template <
class U,
class T>
241 vtkClassMemberCallback<T>* callable =
new vtkClassMemberCallback<T>(observer, callback);
244 return this->AddTemplatedObserver(event, callable,
priority);
297 class vtkClassMemberCallbackBase
304 virtual bool operator()(
vtkObject*,
unsigned long,
void*) = 0;
305 virtual ~vtkClassMemberCallbackBase() =
default;
315 class vtkClassMemberHandlerPointer
322 if ((this->VoidPointer =
dynamic_cast<T*
>(o)) ==
nullptr)
325 this->VoidPointer = o;
327 this->WeakPointer = o;
328 this->UseWeakPointer =
true;
330 void operator=(
void* o)
332 this->VoidPointer = o;
333 this->WeakPointer =
nullptr;
334 this->UseWeakPointer =
false;
338 if (this->UseWeakPointer && !this->WeakPointer.GetPointer())
342 return static_cast<T*
>(this->VoidPointer);
357 class vtkClassMemberCallback :
public vtkClassMemberCallbackBase
359 vtkClassMemberHandlerPointer<T> Handler;
360 void (T::*Method1)();
361 void (T::*Method2)(
vtkObject*,
unsigned long,
void*);
362 bool (T::*Method3)(
vtkObject*,
unsigned long,
void*);
365 vtkClassMemberCallback(T* handler,
void (T::*method)())
367 this->Handler = handler;
368 this->Method1 = method;
369 this->Method2 =
nullptr;
370 this->Method3 =
nullptr;
373 vtkClassMemberCallback(T* handler,
void (T::*method)(
vtkObject*,
unsigned long,
void*))
375 this->Handler = handler;
376 this->Method1 =
nullptr;
377 this->Method2 = method;
378 this->Method3 =
nullptr;
381 vtkClassMemberCallback(T* handler,
bool (T::*method)(
vtkObject*,
unsigned long,
void*))
383 this->Handler = handler;
384 this->Method1 =
nullptr;
385 this->Method2 =
nullptr;
386 this->Method3 = method;
388 ~vtkClassMemberCallback()
override =
default;
391 bool operator()(
vtkObject* caller,
unsigned long event,
void* calldata)
override
393 T* handler = this->Handler.GetPointer();
398 (handler->*this->Method1)();
400 else if (this->Method2)
402 (handler->*this->Method2)(caller, event, calldata);
404 else if (this->Method3)
406 return (handler->*this->Method3)(caller, event, calldata);
418 unsigned long AddTemplatedObserver(
419 unsigned long event, vtkClassMemberCallbackBase* callable,
float priority);
421 friend class vtkObjectCommandInternal;
superclass for callback/observer methods
void operator=(const vtkObjectBase &)
void RemoveObservers(unsigned long event)
static void BreakOnError()
This method is called when vtkErrorMacro executes.
vtkBaseTypeMacro(vtkObject, vtkObjectBase)
void SetDebug(bool debugFlag)
Set the value of the debug flag.
int InvokeEvent(unsigned long event, void *callData)
This method invokes an event and return whether the event was aborted or not.
vtkTypeBool HasObserver(unsigned long event)
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
record modification and/or execution time
virtual void DebugOn()
Turn debugging output on.
virtual void Modified()
Update the modification time for this object.
bool GetDebug()
Get the value of the debug flag.
abstract base class for most VTK objects
void RemoveObservers(const char *event)
unsigned long AddObserver(unsigned long event, vtkCommand *, float priority=0.0f)
Allow people to add/remove/invoke observers (callbacks) to any VTK object.
static void SetGlobalWarningDisplay(int val)
This is a global flag that controls whether any debug, warning or error messages are displayed.
void InternalGrabFocus(vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr)
These methods allow a command to exclusively grab all events.
void UnRegisterInternal(vtkObjectBase *, vtkTypeBool check) override
void InternalReleaseFocus()
These methods allow a command to exclusively grab all events.
void RemoveObserver(unsigned long tag)
unsigned long AddObserver(unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
Allow user to set the AbortFlagOn() with the return value of the callback method.
unsigned long AddObserver(unsigned long event, U observer, void(T::*callback)(), float priority=0.0f)
Overloads to AddObserver that allow developers to add class member functions as callbacks for events.
void RemoveObservers(const char *event, vtkCommand *)
Allow people to add/remove/invoke observers (callbacks) to any VTK object.
virtual vtkMTimeType GetMTime()
Return this object's modified time.
abstract base class for most VTK objects
static void GlobalWarningDisplayOn()
This is a global flag that controls whether any debug, warning or error messages are displayed.
Non-templated superclass for vtkWeakPointer.
a simple class to control print indentation
vtkTypeBool HasObserver(const char *event)
static void GlobalWarningDisplayOff()
This is a global flag that controls whether any debug, warning or error messages are displayed.
vtkTypeBool HasObserver(const char *event, vtkCommand *)
Allow people to add/remove/invoke observers (callbacks) to any VTK object.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkCommand * GetCommand(unsigned long tag)
Allow people to add/remove/invoke observers (callbacks) to any VTK object.
static int GetGlobalWarningDisplay()
This is a global flag that controls whether any debug, warning or error messages are displayed.
virtual void DebugOff()
Turn debugging output off.
unsigned long AddObserver(unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
Overloads to AddObserver that allow developers to add class member functions as callbacks for events.
int InvokeEvent(const char *event, void *callData)
This method invokes an event and return whether the event was aborted or not.
void RemoveObserver(vtkCommand *)
Allow people to add/remove/invoke observers (callbacks) to any VTK object.
int InvokeEvent(const char *event)
unsigned long AddObserver(const char *event, vtkCommand *, float priority=0.0f)
Allow people to add/remove/invoke observers (callbacks) to any VTK object.
int InvokeEvent(unsigned long event)
void RemoveObservers(unsigned long event, vtkCommand *)
Allow people to add/remove/invoke observers (callbacks) to any VTK object.
void RemoveAllObservers()
vtkSubjectHelper * SubjectHelper
void RegisterInternal(vtkObjectBase *, vtkTypeBool check) override
vtkTypeBool HasObserver(unsigned long event, vtkCommand *)
Allow people to add/remove/invoke observers (callbacks) to any VTK object.
vtkTypeUInt32 vtkMTimeType