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:
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 
82 
84 
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 
117 
118  virtual void SetRenderer(vtkRenderer *ren);
120 
121 protected:
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 
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:43
vtkPoints
represent and manipulate 3D points
Definition: vtkPoints.h:40
vtkOpenVRControlsHelper::LineSource
vtkLineSource * LineSource
Definition: vtkOpenVRControlsHelper.h:133
vtkOpenVRControlsHelper::HasTranslucentPolygonalGeometry
vtkTypeBool HasTranslucentPolygonalGeometry() override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
vtkStdString.h
vtkOpenVRControlsHelper::BuildRepresentation
void BuildRepresentation()
Methods to interface with the vtkOpenVRPanelWidget.
vtkOpenVRControlsHelper::SetRenderer
virtual void SetRenderer(vtkRenderer *ren)
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:48
vtkOpenVRControlsHelper::Renderer
vtkWeakPointer< vtkRenderer > Renderer
Definition: vtkOpenVRControlsHelper.h:149
vtkOpenVRControlsHelper
Tooltip helper explaining controls Helper class to draw one tooltip per button around the controller.
Definition: vtkOpenVRControlsHelper.h:50
vtkOpenVRControlsHelper::DrawSides
DrawSides
Definition: vtkOpenVRControlsHelper.h:70
vtkOpenVRControlsHelper::ButtonSides
ButtonSides
Definition: vtkOpenVRControlsHelper.h:65
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:60
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:61
vtkProp.h
vtkOpenVRControlsHelper::TextActor
vtkTextActor3D * TextActor
Definition: vtkOpenVRControlsHelper.h:129
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:38
vtkOpenVRControlsHelper::MoveEvent
static void MoveEvent(vtkObject *object, unsigned long event, void *clientdata, void *calldata)
vtkOpenVRControlsHelper::vtkOpenVRControlsHelper
vtkOpenVRControlsHelper()
vtkOpenVRControlsHelper::Device
vtkEventDataDevice Device
Definition: vtkOpenVRControlsHelper.h:137
vtkOpenVRControlsHelper::~vtkOpenVRControlsHelper
~vtkOpenVRControlsHelper() override
vtkOpenVRControlsHelper::UpdateRepresentation
void UpdateRepresentation()
vtkOpenVRControlsHelper::SetEnabled
void SetEnabled(bool enabled)
vtkOpenVRControlsHelper::GetRenderer
virtual vtkRenderer * GetRenderer()
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:52
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkCellArray
object to represent cell connectivity
Definition: vtkCellArray.h:51
vtkOpenVRControlsHelper::SetText
void SetText(vtkStdString str)
Set Tooltip text (used by TextActor)
vtkEventData.h
vtkOpenVRControlsHelper::New
static vtkOpenVRControlsHelper * New()
Instantiate the class.
vtkNew< vtkTransform >
vtkOpenVRControlsHelper::RenderOpaqueGeometry
int RenderOpaqueGeometry(vtkViewport *) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
vtkWeakPointer.h
vtkOpenVRControlsHelper::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkLineSource
create a line defined by two end points
Definition: vtkLineSource.h:43
vtkX3D::enabled
@ enabled
Definition: vtkX3D.h:259
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:48
vtkProp
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:53
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
vtkOpenVRControlsHelper::SetDevice
void SetDevice(vtkEventDataDevice val)
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:86
vtkCallbackCommand
supports function callbacks
Definition: vtkCallbackCommand.h:51
vtkOpenVRControlsHelper::Text
vtkStdString Text
Definition: vtkOpenVRControlsHelper.h:130
vtkOpenVRControlsHelper::NeedUpdate
bool NeedUpdate
Definition: vtkOpenVRControlsHelper.h:164
vtkOpenVRControlsHelper::DrawSide
int DrawSide
Definition: vtkOpenVRControlsHelper.h:141
vtkOpenVRControlsHelper::InitControlPosition
void InitControlPosition()
vtkProperty
represent surface properties of a geometric object
Definition: vtkProperty.h:67
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:41
vtkOpenVRControlsHelper::LineMapper
vtkPolyDataMapper * LineMapper
Definition: vtkOpenVRControlsHelper.h:134
vtkOpenVRControlsHelper::RenderTranslucentPolygonalGeometry
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkWeakPointer< vtkRenderer >
vtkOpenVRControlsHelper::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *) override
Methods supporting the rendering process.