@@ -29,6 +29,7 @@ enum class vtkEventDataDevice
2929 RightController,
3030 LeftController,
3131 GenericTracker,
32+ Any,
3233 NumberOfDevices
3334};
3435
@@ -38,6 +39,7 @@ const int vtkEventDataNumberOfDevices = (static_cast<int>(vtkEventDataDevice::Nu
3839enum class vtkEventDataDeviceInput
3940{
4041 Unknown = -1 ,
42+ Any,
4143 Trigger,
4244 TrackPad,
4345 Joystick,
@@ -52,6 +54,7 @@ const int vtkEventDataNumberOfInputs = (static_cast<int>(vtkEventDataDeviceInput
5254enum class vtkEventDataAction
5355{
5456 Unknown = -1 ,
57+ Any,
5558 Press,
5659 Release,
5760 Touch,
@@ -68,6 +71,7 @@ class vtkEventData : public vtkObjectBase
6871 vtkBaseTypeMacro (vtkEventData, vtkObjectBase);
6972
7073 int GetType () const { return this ->Type ; }
74+ void SetType (int val) { this ->Type = val; }
7175
7276 // are two events equivalent
7377 bool operator ==(const vtkEventData& a) const
@@ -114,6 +118,12 @@ class vtkEventDataForDevice : public vtkEventData
114118 void SetInput (vtkEventDataDeviceInput v) { this ->Input = v; }
115119 void SetAction (vtkEventDataAction v) { this ->Action = v; }
116120
121+ bool DeviceMatches (vtkEventDataDevice val)
122+ {
123+ return val == this ->Device || val == vtkEventDataDevice::Any ||
124+ this ->Device == vtkEventDataDevice::Any;
125+ }
126+
117127 vtkEventDataForDevice* GetAsEventDataForDevice () override { return this ; }
118128
119129protected:
@@ -124,7 +134,12 @@ class vtkEventDataForDevice : public vtkEventData
124134 bool Equivalent (const vtkEventData* e) const override
125135 {
126136 const vtkEventDataForDevice* edd = static_cast <const vtkEventDataForDevice*>(e);
127- return this ->Device == edd->Device && this ->Input == edd->Input && this ->Action == edd->Action ;
137+ return (this ->Device == vtkEventDataDevice::Any || edd->Device == vtkEventDataDevice::Any ||
138+ this ->Device == edd->Device ) &&
139+ (this ->Input == vtkEventDataDeviceInput::Any || edd->Input == vtkEventDataDeviceInput::Any ||
140+ this ->Input == edd->Input ) &&
141+ (this ->Action == vtkEventDataAction::Any || edd->Action == vtkEventDataAction::Any ||
142+ this ->Action == edd->Action );
128143 }
129144
130145 vtkEventDataForDevice ()
@@ -146,6 +161,12 @@ class vtkEventDataDevice3D : public vtkEventDataForDevice
146161{
147162public:
148163 vtkTypeMacro (vtkEventDataDevice3D, vtkEventDataForDevice);
164+ static vtkEventDataDevice3D* New ()
165+ {
166+ vtkEventDataDevice3D* ret = new vtkEventDataDevice3D;
167+ ret->InitializeObjectBase ();
168+ return ret;
169+ }
149170
150171 vtkEventDataDevice3D* GetAsEventDataDevice3D () override { return this ; }
151172
@@ -224,48 +245,6 @@ class vtkEventDataDevice3D : public vtkEventDataForDevice
224245 void operator =(const vtkEventDataDevice3D&) = delete ;
225246};
226247
227- // subclass for button event 3d
228- class vtkEventDataButton3D : public vtkEventDataDevice3D
229- {
230- public:
231- vtkTypeMacro (vtkEventDataButton3D, vtkEventDataDevice3D);
232- static vtkEventDataButton3D* New ()
233- {
234- vtkEventDataButton3D* ret = new vtkEventDataButton3D;
235- ret->InitializeObjectBase ();
236- return ret;
237- }
238-
239- protected:
240- vtkEventDataButton3D () { this ->Type = vtkCommand::Button3DEvent; }
241- ~vtkEventDataButton3D () override = default ;
242-
243- private:
244- vtkEventDataButton3D (const vtkEventDataButton3D& c) = delete ;
245- void operator =(const vtkEventDataButton3D&) = delete ;
246- };
247-
248- // subclass for move event 3d
249- class vtkEventDataMove3D : public vtkEventDataDevice3D
250- {
251- public:
252- vtkTypeMacro (vtkEventDataMove3D, vtkEventDataDevice3D);
253- static vtkEventDataMove3D* New ()
254- {
255- vtkEventDataMove3D* ret = new vtkEventDataMove3D;
256- ret->InitializeObjectBase ();
257- return ret;
258- }
259-
260- protected:
261- vtkEventDataMove3D () { this ->Type = vtkCommand::Move3DEvent; }
262- ~vtkEventDataMove3D () override = default ;
263-
264- private:
265- vtkEventDataMove3D (const vtkEventDataMove3D& c) = delete ;
266- void operator =(const vtkEventDataMove3D&) = delete ;
267- };
268-
269248#endif
270249
271250// VTK-HeaderTest-Exclude: vtkEventData.h
0 commit comments