vtkSMVRTravelGrabEgoStyleProxy.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-FileCopyrightText: Copyright (c) Sandia Corporation
3 // SPDX-License-Identifier: BSD-3-Clause
14 #ifndef vtkSMVRTravelGrabEgoStyleProxy_h
15 #define vtkSMVRTravelGrabEgoStyleProxy_h
16 
17 #include "vtkNew.h"
18 #include "vtkPVIncubatorCAVEInteractionStylesModule.h" // for export macro
20 
21 class vtkCamera;
22 class vtkMatrix4x4;
26 struct vtkVREvent;
27 
28 class VTKPVINCUBATORCAVEINTERACTIONSTYLES_EXPORT vtkSMVRTravelGrabEgoStyleProxy
30 {
31 public:
34  void PrintSelf(ostream& os, vtkIndent indent) override;
35  int GetControlledPropertySize() override { return 16; }
36 
37  // Overridden to defer expensive calculations and update vtk objects
38  bool Update() override;
39 
40 protected:
42  ~vtkSMVRTravelGrabEgoStyleProxy() override = default;
43 
44  void HandleButton(const vtkVREvent& event) override;
45  void HandleTracker(const vtkVREvent& event) override;
46 
47 private:
49  void operator=(const vtkSMVRTravelGrabEgoStyleProxy&) = delete;
50 
51  // mirrors the button assigned the "Navigate World" role and indicates
52  // whether we're in the middel of a navigation operation
53  bool EnableNavigate;
54 
55  // Have we captured the initial state when the button was first pressed?
56  bool IsInitialRecorded;
57 
58  vtkNew<vtkMatrix4x4> SavedPropertyMatrix;
59  vtkNew<vtkMatrix4x4> SavedInverseWandMatrix;
60  vtkNew<vtkMatrix4x4> TransformMatrix;
61  vtkNew<vtkMatrix4x4> TrackerMatrix;
62 };
63 
64 #endif // vtkSMVRTravelGrabEgoStyleProxy_h
the base class for all interactor styles
virtual void HandleButton(const vtkVREvent &event)
an interaction style to control a matrix
property representing a vector of integers
implementation for View that includes render window and renderers.
property representing a vector of doubles
virtual void HandleTracker(const vtkVREvent &event)
void PrintSelf(ostream &os, vtkIndent indent) override
static vtkSMVRInteractorStyleProxy * New()
virtual bool Update()
Update() called to update all the remote vtkObjects and perhaps even to render.