You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
467 lines
27 KiB
C++
467 lines
27 KiB
C++
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: vtkCommand.h
|
|
|
|
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
|
All rights reserved.
|
|
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
PURPOSE. See the above copyright notice for more information.
|
|
|
|
=========================================================================*/
|
|
/**
|
|
* @class vtkCommand
|
|
* @brief superclass for callback/observer methods
|
|
*
|
|
* vtkCommand is an implementation of the observer/command design
|
|
* pattern. In this design pattern, any instance of vtkObject can be
|
|
* "observed" for any events it might invoke. For example,
|
|
* vtkRenderer invokes a StartEvent as it begins to render and a
|
|
* EndEvent when it finishes rendering. Filters (subclasses of
|
|
* vtkProcessObject) invoke StartEvent, ProgressEvent, and EndEvent as
|
|
* the filter processes data. Observers of events are added with the
|
|
* AddObserver() method found in vtkObject. AddObserver(), besides
|
|
* requiring an event id or name, also takes an instance of vtkCommand
|
|
* (or a subclasses). Note that vtkCommand is meant to be subclassed,
|
|
* so that you can package the information necessary to support your
|
|
* callback.
|
|
*
|
|
* Event processing can be organized in priority lists, so it is
|
|
* possible to truncate the processing of a particular event by
|
|
* setting the AbortFlag variable. The priority is set using the
|
|
* AddObserver() method. By default the priority is 0, events of the
|
|
* same priority are processed in last-in-first-processed order. The
|
|
* ordering/aborting of events is important for things like 3D
|
|
* widgets, which handle an event if the widget is selected (and then
|
|
* aborting further processing of that event). Otherwise. the event
|
|
* is passed along for further processing.
|
|
*
|
|
* When an instance of vtkObject invokes an event, it also passes an optional
|
|
* void pointer to a callData. This callData is nullptr most of the time.
|
|
* The callData is not specific to a type of event but specific to a type
|
|
* of vtkObject invoking a specific event. For instance, vtkCommand::PickEvent
|
|
* is invoked by vtkProp with a nullptr callData but is invoked by
|
|
* vtkInteractorStyleImage with a pointer to the vtkInteractorStyleImage object
|
|
* itself.
|
|
*
|
|
* Here is the list of events that may be invoked with a non-nullptr callData.
|
|
* - vtkCommand::ProgressEvent
|
|
* - most of the objects return a pointer to a double value ranged between
|
|
* 0.0 and 1.0
|
|
* - Infovis/vtkFixedWidthTextReader returns a pointer to a float value equal
|
|
* to the number of lines read so far.
|
|
* - vtkCommand::ErrorEvent
|
|
* - an error message as a const char * string
|
|
* - vtkCommand::WarningEvent
|
|
* - a warning message as a const char * string
|
|
* - vtkCommand::StartAnimationCueEvent
|
|
* - a pointer to a vtkAnimationCue::AnimationCueInfo object
|
|
* - vtkCommand::EndAnimationCueEvent
|
|
* - a pointer to a vtkAnimationCue::AnimationCueInfo object
|
|
* - vtkCommand::AnimationCueTickEvent
|
|
* - a pointer to a vtkAnimationCue::AnimationCueInfo object
|
|
* - vtkCommand::PickEvent
|
|
* - Common/vtkProp returns nullptr
|
|
* - Rendering/vtkInteractorStyleImage returns a pointer to itself
|
|
* - vtkCommand::StartPickEvent
|
|
* - Rendering/vtkPropPicker returns nullptr
|
|
* - Rendering/vtkInteractorStyleImage returns a pointer to itself
|
|
* - vtkCommand::EndPickEvent
|
|
* - Rendering/vtkPropPicker returns nullptr
|
|
* - Rendering/vtkInteractorStyleImage returns a pointer to itself
|
|
* - vtkCommand::WrongTagEvent
|
|
* - Parallel/vtkSocketCommunicator returns a received tag as a char *
|
|
* - vtkCommand::SelectionChangedEvent
|
|
* - Views/vtkView returns nullptr
|
|
* - Views/vtkDataRepresentation returns a pointer to a vtkSelection
|
|
* - Rendering/vtkInteractorStyleRubberBand2D returns an array of 5 unsigned
|
|
* integers (p1x, p1y, p2x, p2y, mode), where mode is
|
|
* vtkInteractorStyleRubberBand2D::SELECT_UNION or
|
|
* vtkInteractorStyleRubberBand2D::SELECT_NORMAL
|
|
* - vtkCommand::AnnotationChangedEvent
|
|
* - GUISupport/Qt/vtkQtAnnotationView returns a pointer to a
|
|
* vtkAnnotationLayers
|
|
* - vtkCommand::PlacePointEvent
|
|
* - Widgets/vtkSeedWidget returns a pointer to an int, being the current
|
|
* handle number
|
|
* - vtkCommand::DeletePointEvent
|
|
* - Widgets/vtkSeedWidget returns a pointer to an int, being the
|
|
* handle number of the deleted point
|
|
* - vtkCommand::ResetWindowLevelEvent
|
|
* - Widgets/vtkImagePlaneWidget returns an array of 2 double values (window
|
|
* and level)
|
|
* - Rendering/vtkInteractorStyleImage returns a pointer to itself
|
|
* - vtkCommand::StartWindowLevelEvent
|
|
* - Widgets/vtkImagePlaneWidget returns an array of 2 double values (window
|
|
* and level)
|
|
* - Rendering/vtkInteractorStyleImage returns a pointer to itself
|
|
* - vtkCommand::EndWindowLevelEvent
|
|
* - Widgets/vtkImagePlaneWidget returns an array of 2 double values (window
|
|
* and level)
|
|
* - Rendering/vtkInteractorStyleImage returns a pointer to itself
|
|
* - vtkCommand::WindowLevelEvent
|
|
* - Widgets/vtkImagePlaneWidget returns an array of 2 double values (window
|
|
* and level)
|
|
* - Rendering/vtkInteractorStyleImage returns a pointer to itself
|
|
* - vtkCommand::CharEvent
|
|
* - most of the objects return nullptr
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QKeyEvent *
|
|
* - vtkCommand::TimerEvent
|
|
* - most of the objects return a to an int representing a timer id
|
|
* - Widgets/vtkHoverWidget returns nullptr
|
|
* - vtkCommand::CreateTimerEvent
|
|
* - Rendering/vtkGenericRenderWindowInteractor returns a to an int
|
|
* representing a timer id
|
|
* - vtkCommand::DestroyTimerEvent
|
|
* - Rendering/vtkGenericRenderWindowInteractor returns a to an int
|
|
* representing a timer id
|
|
* - vtkCommand::UserEvent
|
|
* - most of the objects return nullptr
|
|
* - Infovis/vtkInteractorStyleTreeMapHover returns a pointer to a vtkIdType
|
|
* representing a pedigree id
|
|
* - vtkCommand::KeyPressEvent
|
|
* - most of the objects return nullptr
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QKeyEvent*
|
|
* - vtkCommand::KeyReleaseEvent
|
|
* - most of the objects return nullptr
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QKeyEvent*
|
|
* - vtkCommand::LeftButtonPressEvent
|
|
* - most of the objects return nullptr
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QMouseEvent*
|
|
* - vtkCommand::LeftButtonReleaseEvent
|
|
* - most of the objects return nullptr
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QMouseEvent*
|
|
* - vtkCommand::MouseMoveEvent
|
|
* - most of the objects return nullptr
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QMouseEvent*
|
|
* - vtkCommand::MouseWheelForwardEvent
|
|
* - most of the objects return nullptr
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QWheelEvent*
|
|
* - vtkCommand::MouseWheelBackwardEvent
|
|
* - most of the objects return nullptr
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QWheelEvent*
|
|
* - vtkCommand::RightButtonPressEvent
|
|
* - most of the objects return nullptr
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QMouseEvent*
|
|
* - vtkCommand::RightButtonReleaseEvent
|
|
* - most of the objects return nullptr
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QMouseEvent*
|
|
* - vtkCommand::MiddleButtonPressEvent
|
|
* - most of the objects return nullptr
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QMouseEvent*
|
|
* - vtkCommand::MiddleButtonReleaseEvent
|
|
* - most of the objects return nullptr
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QMouseEvent*
|
|
* - vtkCommand::CursorChangedEvent
|
|
* - most of the objects return a pointer to an int representing a shape
|
|
* - Rendering/vtkInteractorObserver returns nullptr
|
|
* - vtkCommand::ResetCameraEvent
|
|
* - Rendering/vtkRenderer returns a pointer to itself
|
|
* - vtkCommand::ResetCameraClippingRangeEvent
|
|
* - Rendering/vtkRenderer returns a pointer to itself
|
|
* - vtkCommand::ActiveCameraEvent
|
|
* - Rendering/vtkRenderer returns a pointer to the active camera
|
|
* - vtkCommand::CreateCameraEvent
|
|
* - Rendering/vtkRenderer returns a pointer to the created camera
|
|
* - vtkCommand::EnterEvent
|
|
* - most of the objects return nullptr
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QEvent*
|
|
* - vtkCommand::LeaveEvent
|
|
* - most of the objects return nullptr
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QEvent*
|
|
* - vtkCommand::RenderWindowMessageEvent
|
|
* - Rendering/vtkWin32OpenGLRenderWindow return a pointer to a UINT message
|
|
* - vtkCommand::ComputeVisiblePropBoundsEvent
|
|
* - Rendering/vtkRenderer returns a pointer to itself
|
|
* - QVTKOpenGLStereoWidget::ContextMenuEvent
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QContextMenuEvent*
|
|
* - QVTKOpenGLStereoWidget::DragEnterEvent
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QDragEnterEvent*
|
|
* - QVTKOpenGLStereoWidget::DragMoveEvent
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QDragMoveEvent*
|
|
* - QVTKOpenGLStereoWidget::DragLeaveEvent
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QDragLeaveEvent*
|
|
* - QVTKOpenGLStereoWidget::DropEvent
|
|
* - GUISupport/Qt/QVTKOpenGLStereoWidget returns a QDropEvent*
|
|
* - vtkCommand::ViewProgressEvent
|
|
* - View/vtkView returns a ViewProgressEventCallData*
|
|
* - vtkCommand::VolumeMapperRenderProgressEvent
|
|
* - A pointer to a double value between 0.0 and 1.0
|
|
* - vtkCommand::VolumeMapperComputeGradientsProgressEvent
|
|
* - A pointer to a double value between 0.0 and 1.0
|
|
* - vtkCommand::TDxMotionEvent (TDx=3DConnexion)
|
|
* - A vtkTDxMotionEventInfo*
|
|
* - vtkCommand::TDxButtonPressEvent
|
|
* - A int* being the number of the button
|
|
* - vtkCommand::TDxButtonReleaseEvent
|
|
* - A int* being the number of the button
|
|
* - vtkCommand::UpdateShaderEvent
|
|
* - A vtkOpenGLHelper* currently being used
|
|
* - vtkCommand::FourthButtonPressEvent
|
|
* - most of the objects return nullptr
|
|
* - vtkCommand::FourthButtonReleaseEvent
|
|
* - most of the objects return nullptr
|
|
* - vtkCommand::FifthButtonPressEvent
|
|
* - most of the objects return nullptr
|
|
* - vtkCommand::FifthButtonReleaseEvent
|
|
* - most of the objects return nullptr
|
|
* - vtkCommand::ErrorEvent
|
|
* - vtkOutputWindow fires this with `char char*` for the error message
|
|
* - vtkCommand::WarningEvent
|
|
* - vtkOutputWindow fires this with `char char*` for the warning message
|
|
* - vtkCommand::MessageEvent
|
|
* - vtkOutputWindow fires this with `char char*` for the message text
|
|
* - vtkCommand::TextEvent
|
|
* - vtkOutputWindow fires this with `char char*` for the text
|
|
*
|
|
* @sa
|
|
* vtkObject vtkCallbackCommand vtkOldStyleCallbackCommand
|
|
* vtkInteractorObserver vtk3DWidget
|
|
*/
|
|
|
|
#ifndef vtkCommand_h
|
|
#define vtkCommand_h
|
|
|
|
#include "vtkCommonCoreModule.h" // For export macro
|
|
#include "vtkObject.h" // Need vtkTypeMacro
|
|
#include "vtkObjectBase.h"
|
|
|
|
// clang-format off
|
|
// Define all types of events here.
|
|
// Using this macro makes it possible to avoid mismatches between the event
|
|
// enums and their string counterparts.
|
|
#define vtkAllEventsMacro() \
|
|
_vtk_add_event(AnyEvent) \
|
|
_vtk_add_event(DeleteEvent) \
|
|
_vtk_add_event(StartEvent) \
|
|
_vtk_add_event(EndEvent) \
|
|
_vtk_add_event(RenderEvent) \
|
|
_vtk_add_event(ProgressEvent) \
|
|
_vtk_add_event(PickEvent) \
|
|
_vtk_add_event(StartPickEvent) \
|
|
_vtk_add_event(EndPickEvent) \
|
|
_vtk_add_event(AbortCheckEvent) \
|
|
_vtk_add_event(ExitEvent) \
|
|
_vtk_add_event(LeftButtonPressEvent) \
|
|
_vtk_add_event(LeftButtonReleaseEvent) \
|
|
_vtk_add_event(MiddleButtonPressEvent) \
|
|
_vtk_add_event(MiddleButtonReleaseEvent) \
|
|
_vtk_add_event(RightButtonPressEvent) \
|
|
_vtk_add_event(RightButtonReleaseEvent) \
|
|
_vtk_add_event(EnterEvent) \
|
|
_vtk_add_event(LeaveEvent) \
|
|
_vtk_add_event(KeyPressEvent) \
|
|
_vtk_add_event(KeyReleaseEvent) \
|
|
_vtk_add_event(CharEvent) \
|
|
_vtk_add_event(ExposeEvent) \
|
|
_vtk_add_event(ConfigureEvent) \
|
|
_vtk_add_event(TimerEvent) \
|
|
_vtk_add_event(MouseMoveEvent) \
|
|
_vtk_add_event(MouseWheelForwardEvent) \
|
|
_vtk_add_event(MouseWheelBackwardEvent) \
|
|
_vtk_add_event(ActiveCameraEvent) \
|
|
_vtk_add_event(CreateCameraEvent) \
|
|
_vtk_add_event(ResetCameraEvent) \
|
|
_vtk_add_event(ResetCameraClippingRangeEvent) \
|
|
_vtk_add_event(ModifiedEvent) \
|
|
_vtk_add_event(WindowLevelEvent) \
|
|
_vtk_add_event(StartWindowLevelEvent) \
|
|
_vtk_add_event(EndWindowLevelEvent) \
|
|
_vtk_add_event(ResetWindowLevelEvent) \
|
|
_vtk_add_event(SetOutputEvent) \
|
|
_vtk_add_event(ErrorEvent) \
|
|
_vtk_add_event(WarningEvent) \
|
|
_vtk_add_event(StartInteractionEvent) \
|
|
_vtk_add_event(DropFilesEvent) \
|
|
_vtk_add_event(UpdateDropLocationEvent) \
|
|
/*^ mainly used by vtkInteractorObservers*/ \
|
|
_vtk_add_event(InteractionEvent) \
|
|
_vtk_add_event(EndInteractionEvent) \
|
|
_vtk_add_event(EnableEvent) \
|
|
_vtk_add_event(DisableEvent) \
|
|
_vtk_add_event(CreateTimerEvent) \
|
|
_vtk_add_event(DestroyTimerEvent) \
|
|
_vtk_add_event(PlacePointEvent) \
|
|
_vtk_add_event(DeletePointEvent) \
|
|
_vtk_add_event(PlaceWidgetEvent) \
|
|
_vtk_add_event(CursorChangedEvent) \
|
|
_vtk_add_event(ExecuteInformationEvent) \
|
|
_vtk_add_event(RenderWindowMessageEvent) \
|
|
_vtk_add_event(WrongTagEvent) \
|
|
_vtk_add_event(StartAnimationCueEvent) \
|
|
_vtk_add_event(ResliceAxesChangedEvent) \
|
|
/*^ used by vtkAnimationCue*/ \
|
|
_vtk_add_event(AnimationCueTickEvent) \
|
|
_vtk_add_event(EndAnimationCueEvent) \
|
|
_vtk_add_event(VolumeMapperRenderEndEvent) \
|
|
_vtk_add_event(VolumeMapperRenderProgressEvent) \
|
|
_vtk_add_event(VolumeMapperRenderStartEvent) \
|
|
_vtk_add_event(VolumeMapperComputeGradientsEndEvent) \
|
|
_vtk_add_event(VolumeMapperComputeGradientsProgressEvent) \
|
|
_vtk_add_event(VolumeMapperComputeGradientsStartEvent) \
|
|
_vtk_add_event(WidgetModifiedEvent) \
|
|
_vtk_add_event(WidgetValueChangedEvent) \
|
|
_vtk_add_event(WidgetActivateEvent) \
|
|
_vtk_add_event(ConnectionCreatedEvent) \
|
|
_vtk_add_event(ConnectionClosedEvent) \
|
|
_vtk_add_event(DomainModifiedEvent) \
|
|
_vtk_add_event(PropertyModifiedEvent) \
|
|
_vtk_add_event(UpdateEvent) \
|
|
_vtk_add_event(RegisterEvent) \
|
|
_vtk_add_event(UnRegisterEvent) \
|
|
_vtk_add_event(UpdateInformationEvent) \
|
|
_vtk_add_event(AnnotationChangedEvent) \
|
|
_vtk_add_event(SelectionChangedEvent) \
|
|
_vtk_add_event(UpdatePropertyEvent) \
|
|
_vtk_add_event(ViewProgressEvent) \
|
|
_vtk_add_event(UpdateDataEvent) \
|
|
_vtk_add_event(CurrentChangedEvent) \
|
|
_vtk_add_event(ComputeVisiblePropBoundsEvent) \
|
|
_vtk_add_event(TDxMotionEvent) \
|
|
/*^ 3D Connexion device event */ \
|
|
_vtk_add_event(TDxButtonPressEvent) \
|
|
/*^ 3D Connexion device event */ \
|
|
_vtk_add_event(TDxButtonReleaseEvent) \
|
|
/* 3D Connexion device event */ \
|
|
_vtk_add_event(HoverEvent) \
|
|
_vtk_add_event(LoadStateEvent) \
|
|
_vtk_add_event(SaveStateEvent) \
|
|
_vtk_add_event(StateChangedEvent) \
|
|
_vtk_add_event(WindowMakeCurrentEvent) \
|
|
_vtk_add_event(WindowIsCurrentEvent) \
|
|
_vtk_add_event(WindowFrameEvent) \
|
|
_vtk_add_event(HighlightEvent) \
|
|
_vtk_add_event(WindowSupportsOpenGLEvent) \
|
|
_vtk_add_event(WindowIsDirectEvent) \
|
|
_vtk_add_event(WindowStereoTypeChangedEvent) \
|
|
_vtk_add_event(WindowResizeEvent) \
|
|
_vtk_add_event(UncheckedPropertyModifiedEvent) \
|
|
_vtk_add_event(UpdateShaderEvent) \
|
|
_vtk_add_event(MessageEvent) \
|
|
_vtk_add_event(StartSwipeEvent) \
|
|
_vtk_add_event(SwipeEvent) \
|
|
_vtk_add_event(EndSwipeEvent) \
|
|
_vtk_add_event(StartPinchEvent) \
|
|
_vtk_add_event(PinchEvent) \
|
|
_vtk_add_event(EndPinchEvent) \
|
|
_vtk_add_event(StartRotateEvent) \
|
|
_vtk_add_event(RotateEvent) \
|
|
_vtk_add_event(EndRotateEvent) \
|
|
_vtk_add_event(StartPanEvent) \
|
|
_vtk_add_event(PanEvent) \
|
|
_vtk_add_event(EndPanEvent) \
|
|
_vtk_add_event(TapEvent) \
|
|
_vtk_add_event(LongTapEvent) \
|
|
_vtk_add_event(FourthButtonPressEvent) \
|
|
_vtk_add_event(FourthButtonReleaseEvent) \
|
|
_vtk_add_event(FifthButtonPressEvent) \
|
|
_vtk_add_event(FifthButtonReleaseEvent) \
|
|
_vtk_add_event(Move3DEvent) \
|
|
_vtk_add_event(Button3DEvent) \
|
|
_vtk_add_event(TextEvent) \
|
|
_vtk_add_event(LeftButtonDoubleClickEvent) \
|
|
_vtk_add_event(RightButtonDoubleClickEvent)
|
|
// clang-format on
|
|
|
|
#define vtkEventDeclarationMacro(_enum_name) \
|
|
enum _enum_name \
|
|
{ \
|
|
NoEvent = 0, \
|
|
vtkAllEventsMacro() UserEvent = 1000 \
|
|
}
|
|
|
|
// The superclass that all commands should be subclasses of
|
|
class VTKCOMMONCORE_EXPORT vtkCommand : public vtkObjectBase
|
|
{
|
|
public:
|
|
vtkBaseTypeMacro(vtkCommand, vtkObjectBase);
|
|
|
|
/**
|
|
* Decrease the reference count (release by another object). This has
|
|
* the same effect as invoking Delete() (i.e., it reduces the reference
|
|
* count by 1).
|
|
*/
|
|
void UnRegister();
|
|
void UnRegister(vtkObjectBase*) override { this->UnRegister(); }
|
|
|
|
/**
|
|
* All derived classes of vtkCommand must implement this
|
|
* method. This is the method that actually does the work of the
|
|
* callback. The caller argument is the object invoking the event,
|
|
* the eventId parameter is the id of the event, and callData
|
|
* parameter is data that can be passed into the execute
|
|
* method. (Note: vtkObject::InvokeEvent() takes two parameters: the
|
|
* event id (or name) and call data. Typically call data is nullptr,
|
|
* but the user can package data and pass it this
|
|
* way. Alternatively, a derived class of vtkCommand can be used to
|
|
* pass data.)
|
|
*/
|
|
virtual void Execute(vtkObject* caller, unsigned long eventId, void* callData) = 0;
|
|
|
|
//@{
|
|
/**
|
|
* Convenience methods for translating between event names and event
|
|
* ids.
|
|
*/
|
|
static const char* GetStringFromEventId(unsigned long event);
|
|
static unsigned long GetEventIdFromString(const char* event);
|
|
//@}
|
|
|
|
/**
|
|
* Does this event type contain vtkEventData
|
|
*/
|
|
static bool EventHasData(unsigned long event);
|
|
|
|
/**
|
|
* Set/Get the abort flag. If this is set to true no further
|
|
* commands are executed.
|
|
*/
|
|
void SetAbortFlag(int f) { this->AbortFlag = f; }
|
|
int GetAbortFlag() { return this->AbortFlag; }
|
|
void AbortFlagOn() { this->SetAbortFlag(1); }
|
|
void AbortFlagOff() { this->SetAbortFlag(0); }
|
|
|
|
/**
|
|
* Set/Get the passive observer flag. If this is set to true, this
|
|
* indicates that this command does not change the state of the
|
|
* system in any way. Passive observers are processed first, and
|
|
* are not called even when another command has focus.
|
|
*/
|
|
void SetPassiveObserver(int f) { this->PassiveObserver = f; }
|
|
int GetPassiveObserver() { return this->PassiveObserver; }
|
|
void PassiveObserverOn() { this->SetPassiveObserver(1); }
|
|
void PassiveObserverOff() { this->SetPassiveObserver(0); }
|
|
|
|
/**
|
|
* All the currently defined events are listed here. Developers can
|
|
* use -- vtkCommand::UserEvent + int to specify their own event
|
|
* ids.
|
|
* Add new events by updating vtkAllEventsMacro.
|
|
*/
|
|
#define _vtk_add_event(Enum) Enum,
|
|
vtkEventDeclarationMacro(EventIds);
|
|
#undef _vtk_add_event
|
|
|
|
protected:
|
|
int AbortFlag;
|
|
int PassiveObserver;
|
|
|
|
vtkCommand();
|
|
~vtkCommand() override {}
|
|
|
|
friend class vtkSubjectHelper;
|
|
|
|
vtkCommand(const vtkCommand& c)
|
|
: vtkObjectBase(c)
|
|
{
|
|
}
|
|
void operator=(const vtkCommand&) {}
|
|
};
|
|
|
|
#endif /* vtkCommand_h */
|
|
|
|
// VTK-HeaderTest-Exclude: vtkCommand.h
|