vtkSMVRTravelTrackballExoSplitStyleProxy.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
13 #ifndef vtkSMVRTravelTrackballExoSplitStyleProxy_h
14 #define vtkSMVRTravelTrackballExoSplitStyleProxy_h
15 
16 #include "vtkMatrix4x4.h"
17 #include "vtkNew.h"
18 #include "vtkPVIncubatorCAVEInteractionStylesModule.h" // for export macro
19 #include "vtkSMVRTrackStyleProxy.h"
20 #include "vtkTransform.h"
21 
22 struct vtkVREvent;
23 
24 class VTKPVINCUBATORCAVEINTERACTIONSTYLES_EXPORT vtkSMVRTravelTrackballExoSplitStyleProxy
25  : public vtkSMVRTrackStyleProxy
26 {
27 public:
30  void PrintSelf(ostream& os, vtkIndent indent) override;
31 
32  // Overridden to defer expensive calculations and update vtk objects
33  bool Update() override;
34 
35 protected:
37  ~vtkSMVRTravelTrackballExoSplitStyleProxy() override = default;
38 
39  void HandleButton(const vtkVREvent& event) override;
40  void HandleTracker(const vtkVREvent& event) override;
41 
42 private:
45  void operator=(const vtkSMVRTravelTrackballExoSplitStyleProxy&) = delete;
46 
47  double LastRecordedPosition[3];
48  bool PositionRecorded;
49  bool EnableTranslate;
50  bool EnableRotate;
51 
52  vtkNew<vtkMatrix4x4> TrackerMatrix;
53  vtkNew<vtkMatrix4x4> TransformMatrix;
55  vtkNew<vtkMatrix4x4> ModelMatrix;
56  vtkNew<vtkMatrix4x4> ModelViewMatrix;
57  vtkNew<vtkMatrix4x4> InvViewMatrix;
58 };
59 
60 #endif // vtkSMVRTravelTrackballExoSplitStyleProxy_h
virtual void HandleButton(const vtkVREvent &event)
Transform
an interaction style to control translation and rotation with a stylus
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.