 |
VTK
9.0.1
|
Go to the documentation of this file.
53 #include "vtkCommonCoreModule.h"
55 #include "vtkSetGet.h"
59 class vtkSubjectHelper;
75 void*
operator new(
size_t tSize);
76 void operator delete(
void* p);
193 template <
class U,
class T>
195 unsigned long event, U observer,
void (T::*callback)(),
float priority = 0.0f)
197 vtkClassMemberCallback<T>* callable =
new vtkClassMemberCallback<T>(observer, callback);
200 return this->AddTemplatedObserver(event, callable,
priority);
202 template <
class U,
class T>
206 vtkClassMemberCallback<T>* callable =
new vtkClassMemberCallback<T>(observer, callback);
209 return this->AddTemplatedObserver(event, callable,
priority);
218 template <
class U,
class T>
222 vtkClassMemberCallback<T>* callable =
new vtkClassMemberCallback<T>(observer, callback);
225 return this->AddTemplatedObserver(event, callable,
priority);
278 class vtkClassMemberCallbackBase
285 virtual bool operator()(
vtkObject*,
unsigned long,
void*) = 0;
286 virtual ~vtkClassMemberCallbackBase() {}
296 class vtkClassMemberHandlerPointer
303 if ((this->VoidPointer =
dynamic_cast<T*
>(o)) ==
nullptr)
306 this->VoidPointer = o;
308 this->WeakPointer = o;
309 this->UseWeakPointer =
true;
311 void operator=(
void* o)
313 this->VoidPointer = o;
314 this->WeakPointer =
nullptr;
315 this->UseWeakPointer =
false;
319 if (this->UseWeakPointer && !this->WeakPointer.GetPointer())
323 return static_cast<T*
>(this->VoidPointer);
338 class vtkClassMemberCallback :
public vtkClassMemberCallbackBase
340 vtkClassMemberHandlerPointer<T> Handler;
341 void (T::*Method1)();
342 void (T::*Method2)(
vtkObject*,
unsigned long,
void*);
343 bool (T::*Method3)(
vtkObject*,
unsigned long,
void*);
346 vtkClassMemberCallback(T* handler,
void (T::*method)())
348 this->Handler = handler;
349 this->Method1 = method;
350 this->Method2 =
nullptr;
351 this->Method3 =
nullptr;
354 vtkClassMemberCallback(T* handler,
void (T::*method)(
vtkObject*,
unsigned long,
void*))
356 this->Handler = handler;
357 this->Method1 =
nullptr;
358 this->Method2 = method;
359 this->Method3 =
nullptr;
362 vtkClassMemberCallback(T* handler,
bool (T::*method)(
vtkObject*,
unsigned long,
void*))
364 this->Handler = handler;
365 this->Method1 =
nullptr;
366 this->Method2 =
nullptr;
367 this->Method3 = method;
369 ~vtkClassMemberCallback()
override {}
372 bool operator()(
vtkObject* caller,
unsigned long event,
void* calldata)
override
374 T* handler = this->Handler.GetPointer();
379 (handler->*this->Method1)();
381 else if (this->Method2)
383 (handler->*this->Method2)(caller, event, calldata);
385 else if (this->Method3)
387 return (handler->*this->Method3)(caller, event, calldata);
399 unsigned long AddTemplatedObserver(
400 unsigned long event, vtkClassMemberCallbackBase* callable,
float priority);
402 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()
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 *)
virtual vtkMTimeType GetMTime()
Return this object's modified time.
abstract base class for most VTK objects
static void GlobalWarningDisplayOn()
Non-templated superclass for vtkWeakPointer.
a simple class to control print indentation
vtkTypeBool HasObserver(const char *event)
static void GlobalWarningDisplayOff()
vtkTypeBool HasObserver(const char *event, vtkCommand *)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkCommand * GetCommand(unsigned long tag)
static int GetGlobalWarningDisplay()
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)
int InvokeEvent(const char *event, void *callData)
void RemoveObserver(vtkCommand *)
int InvokeEvent(const char *event)
unsigned long AddObserver(const char *event, vtkCommand *, float priority=0.0f)
int InvokeEvent(unsigned long event)
void RemoveObservers(unsigned long event, vtkCommand *)
void RemoveAllObservers()
vtkSubjectHelper * SubjectHelper
void RegisterInternal(vtkObjectBase *, vtkTypeBool check) override
vtkTypeBool HasObserver(unsigned long event, vtkCommand *)
vtkTypeUInt32 vtkMTimeType