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
19 #include "vtkSMVRTrackStyleProxy.h"
20 
21 class vtkCamera;
22 class vtkMatrix4x4;
26 struct vtkVREvent;
27 
28 class VTKPVINCUBATORCAVEINTERACTIONSTYLES_EXPORT vtkSMVRTravelGrabEgoStyleProxy
29  : public vtkSMVRTrackStyleProxy
30 {
31 public:
34  void PrintSelf(ostream& os, vtkIndent indent) override;
35 
36  // Overridden to defer expensive calculations and update vtk objects
37  bool Update() override;
38 
39 protected:
41  ~vtkSMVRTravelGrabEgoStyleProxy() override = default;
42 
43  void HandleButton(const vtkVREvent& event) override;
44  void HandleTracker(const vtkVREvent& event) override;
45 
46 private:
48  void operator=(const vtkSMVRTravelGrabEgoStyleProxy&) = delete;
49 
50  // mirrors the button assigned the "Navigate World" role and indicates
51  // whether we're in the middel of a navigation operation
52  bool EnableNavigate;
53 
54  // Have we captured the initial state when the button was first pressed?
55  bool IsInitialRecorded;
56 
57  vtkNew<vtkMatrix4x4> SavedPropertyMatrix;
58  vtkNew<vtkMatrix4x4> SavedInverseWandMatrix;
59  vtkNew<vtkMatrix4x4> TransformMatrix;
60  vtkNew<vtkMatrix4x4> TrackerMatrix;
61 };
62 
63 #endif // vtkSMVRTravelGrabEgoStyleProxy_h
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
void PrintSelf(ostream &os, vtkIndent indent) override
void HandleTracker(const vtkVREvent &event) override
interactor style for head tracking
static vtkSMVRTrackStyleProxy * New()
bool Update() override
Update() called to update all the remote vtkObjects and perhaps even to render.