VTK
vtkOpenVRControlsHelper.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Visualization Toolkit
4 Module: vtkOpenVRControlsHelper.h
5 
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
24 #ifndef vtkOpenVRControlsHelper_h
25 #define vtkOpenVRControlsHelper_h
26 
27 #include "vtkRenderingOpenVRModule.h" // For export macro
28 #include "vtkProp.h"
29 #include "vtkStdString.h" // needed for vtkStdString iVar.
30 #include "vtkWeakPointer.h" // needed for vtkWeakPointer iVar.
31 #include "vtkEventData.h" // for enums
32 #include "vtkNew.h" // for iVar
33 
34 class vtkActor;
35 class vtkProperty;
36 class vtkPolyData;
37 class vtkPolyDataMapper;
38 class vtkCellArray;
39 class vtkPoints;
40 class vtkTextActor3D;
41 class vtkTransform;
42 
43 class vtkLineSource;
44 class vtkPolyDataMapper;
45 class vtkRenderer;
46 class vtkCallbackCommand;
47 
48 
49 class VTKRENDERINGOPENVR_EXPORT vtkOpenVRControlsHelper : public vtkProp
50 {
51 public:
55  static vtkOpenVRControlsHelper *New();
56 
58 
62  void PrintSelf(ostream& os, vtkIndent indent) override;
64 
65  enum ButtonSides {
66  Back = -1,
67  Front = 1
68  };
69 
70  enum DrawSides {
71  Left = -1,
72  Right = 1
73  };
74 
76 
79  void BuildRepresentation();
80  void UpdateRepresentation();
82 
84 
87  void ReleaseGraphicsResources(vtkWindow*) override;
88  int RenderOpaqueGeometry(vtkViewport*) override;
92 
94 
97  void SetText(vtkStdString str);
99 
100  void SetTooltipInfo(const char* s, int buttonSide, int drawSide, const char *txt)
101  {
102  if (!s || !txt)
103  {
104  return;
105  }
106  this->ComponentName = vtkStdString(s);
107  this->DrawSide = drawSide;
108  this->ButtonSide = buttonSide;
109  this->SetText(vtkStdString(txt));
110  }
111 
112  void SetEnabled(bool enabled);
113  vtkGetMacro(Enabled, bool);
114  vtkBooleanMacro(Enabled, bool);
115 
116  void SetDevice(vtkEventDataDevice val);
117 
118  virtual void SetRenderer(vtkRenderer *ren);
119  virtual vtkRenderer* GetRenderer();
120 
121 protected:
123  ~vtkOpenVRControlsHelper() override;
124 
125 
126  double FrameSize[2];
127 
128  // The text
131 
132  // The line
136 
138 
139  //Tooltip parameters
141  int DrawSide; // Left/Right
142  int ButtonSide; // Front/Back
143 
144  bool Enabled;
145 
146  double ControlPositionLC[3];
147 
148  // The renderer in which this widget is placed
150 
152  unsigned long ObserverTag;
153  static void MoveEvent(vtkObject* object,
154  unsigned long event,
155  void* clientdata,
156  void* calldata);
157 
158  void InitControlPosition();
159 
161  double LastPhysicalTranslation[3];
162  double LastEventPosition[3];
163  double LastEventOrientation[4];
166 
167 private:
169  void operator=(const vtkOpenVRControlsHelper&) = delete;
170 };
171 
172 #endif
vtkPolyDataMapper
map vtkPolyData to graphics primitives
Definition: vtkPolyDataMapper.h:42
vtkPoints
represent and manipulate 3D points
Definition: vtkPoints.h:39
vtkOpenVRControlsHelper::LineSource
vtkLineSource * LineSource
Definition: vtkOpenVRControlsHelper.h:133
vtkStdString.h
vtkOpenVRControlsHelper::ComponentName
vtkStdString ComponentName
Definition: vtkOpenVRControlsHelper.h:140
vtkOpenVRControlsHelper::LineActor
vtkActor * LineActor
Definition: vtkOpenVRControlsHelper.h:135
vtkOpenVRControlsHelper::ButtonSide
int ButtonSide
Definition: vtkOpenVRControlsHelper.h:142
vtkOpenVRControlsHelper::TempTransform
vtkNew< vtkTransform > TempTransform
Definition: vtkOpenVRControlsHelper.h:160
vtkOpenVRControlsHelper::MoveCallbackCommand
vtkCallbackCommand * MoveCallbackCommand
Definition: vtkOpenVRControlsHelper.h:151
vtkTextActor3D
An actor that displays text.
Definition: vtkTextActor3D.h:47
vtkOpenVRControlsHelper::Renderer
vtkWeakPointer< vtkRenderer > Renderer
Definition: vtkOpenVRControlsHelper.h:149
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkOpenVRControlsHelper
Tooltip helper explaining controls Helper class to draw one tooltip per button around the controller.
Definition: vtkOpenVRControlsHelper.h:49
vtkOpenVRControlsHelper::DrawSides
DrawSides
Definition: vtkOpenVRControlsHelper.h:70
vtkProp::RenderOpaqueGeometry
virtual int RenderOpaqueGeometry(vtkViewport *)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
Definition: vtkProp.h:224
vtkOpenVRControlsHelper::ButtonSides
ButtonSides
Definition: vtkOpenVRControlsHelper.h:65
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:59
vtkOpenVRControlsHelper::LabelVisible
bool LabelVisible
Definition: vtkOpenVRControlsHelper.h:165
vtkOpenVRControlsHelper::Enabled
bool Enabled
Definition: vtkOpenVRControlsHelper.h:144
vtkTransform
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:60
vtkProp.h
vtkOpenVRControlsHelper::TextActor
vtkTextActor3D * TextActor
Definition: vtkOpenVRControlsHelper.h:129
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:37
vtkProp::HasTranslucentPolygonalGeometry
virtual vtkTypeBool HasTranslucentPolygonalGeometry()
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
Definition: vtkProp.h:296
vtkOpenVRControlsHelper::Device
vtkEventDataDevice Device
Definition: vtkOpenVRControlsHelper.h:137
vtkProp::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:51
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkCellArray
object to represent cell connectivity
Definition: vtkCellArray.h:50
vtkEventData.h
vtkNew< vtkTransform >
vtkWeakPointer.h
vtkLineSource
create a line defined by two end points
Definition: vtkLineSource.h:42
vtkX3D::enabled
Definition: vtkX3D.h:259
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:47
vtkProp::RenderTranslucentPolygonalGeometry
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *)
Definition: vtkProp.h:226
vtkProp
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:52
vtkOpenVRControlsHelper::SetTooltipInfo
void SetTooltipInfo(const char *s, int buttonSide, int drawSide, const char *txt)
Definition: vtkOpenVRControlsHelper.h:100
vtkEventDataDevice
vtkEventDataDevice
platform-independent event data structures
Definition: vtkEventData.h:25
vtkNew.h
vtkOpenVRControlsHelper::ObserverTag
unsigned long ObserverTag
Definition: vtkOpenVRControlsHelper.h:152
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:63
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
vtkCallbackCommand
supports function callbacks
Definition: vtkCallbackCommand.h:50
vtkOpenVRControlsHelper::Text
vtkStdString Text
Definition: vtkOpenVRControlsHelper.h:130
vtkOpenVRControlsHelper::NeedUpdate
bool NeedUpdate
Definition: vtkOpenVRControlsHelper.h:164
vtkOpenVRControlsHelper::DrawSide
int DrawSide
Definition: vtkOpenVRControlsHelper.h:141
vtkProperty
represent surface properties of a geometric object
Definition: vtkProperty.h:66
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:40
vtkOpenVRControlsHelper::LineMapper
vtkPolyDataMapper * LineMapper
Definition: vtkOpenVRControlsHelper.h:134
vtkProp::ReleaseGraphicsResources
virtual void ReleaseGraphicsResources(vtkWindow *)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Release any graphics resources that are being...
Definition: vtkProp.h:305
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkWeakPointer< vtkRenderer >