VTK
vtkOpenVRModel.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Visualization Toolkit
4 
5 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
6 All rights reserved.
7 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
8 
9 This software is distributed WITHOUT ANY WARRANTY; without even
10 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11 PURPOSE. See the above copyright notice for more information.
12 
13 =========================================================================*/
23 #ifndef vtkOpenVRModel_h
24 #define vtkOpenVRModel_h
25 
26 #include "vtkRenderingOpenVRModule.h" // For export macro
27 #include "vtkObject.h"
28 #include "vtkOpenGLHelper.h" // ivar
29 #include "vtkNew.h" // for ivar
30 #include <openvr.h> // for ivars
31 
33 class vtkRenderWindow;
35 class vtkTextureObject;
36 class vtkMatrix4x4;
37 class vtkOpenVRRay;
38 
39 class VTKRENDERINGOPENVR_EXPORT vtkOpenVRModel : public vtkObject
40 {
41 public:
42  static vtkOpenVRModel *New();
43  vtkTypeMacro(vtkOpenVRModel, vtkObject);
44  void PrintSelf(ostream& os, vtkIndent indent) override;
45 
46  bool Build(vtkOpenVRRenderWindow *win);
47  void Render(vtkOpenVRRenderWindow *win,
48  const vr::TrackedDevicePose_t &pose);
49 
50  const std::string & GetName() const {
51  return this->ModelName;
52  }
53  void SetName(const std::string & modelName) {
54  this->ModelName = modelName;
55  };
56 
57  // show the model
58  void SetVisibility(bool v) {
59  this->Visibility = v;
60  };
61  bool GetVisibility() {
62  return this->Visibility;
63  };
64 
65  //Set Ray parameters
66  void SetShowRay(bool v);
67  void SetRayLength(double length);
68 
69  void ReleaseGraphicsResources(vtkRenderWindow *win);
70 
71  // the tracked device this model represents if any
72  vr::TrackedDeviceIndex_t TrackedDevice;
73 
74  vr::RenderModel_t *RawModel;
75 
76 protected:
78  ~vtkOpenVRModel() override;
79 
81 
82  bool Visibility;
83  bool Loaded;
85 
86  vr::RenderModel_TextureMap_t *RawTexture;
91 
92  //Controller ray
94 
95 private:
96  vtkOpenVRModel(const vtkOpenVRModel&) = delete;
97  void operator=(const vtkOpenVRModel&) = delete;
98 };
99 
100 #endif
vtkOpenVRModel::GetName
const std::string & GetName() const
Definition: vtkOpenVRModel.h:50
vtkOpenVRModel::TrackedDevice
vr::TrackedDeviceIndex_t TrackedDevice
Definition: vtkOpenVRModel.h:72
vtkOpenVRModel::SetName
void SetName(const std::string &modelName)
Definition: vtkOpenVRModel.h:53
vtkOpenVRModel::RawTexture
vr::RenderModel_TextureMap_t * RawTexture
Definition: vtkOpenVRModel.h:86
vtkOpenVRModel::Visibility
bool Visibility
Definition: vtkOpenVRModel.h:82
vtkOpenVRModel::PoseMatrix
vtkNew< vtkMatrix4x4 > PoseMatrix
Definition: vtkOpenVRModel.h:90
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkOpenGLHelper.h
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:59
vtkX3D::length
Definition: vtkX3D.h:393
vtkOpenVRModel::TextureObject
vtkNew< vtkTextureObject > TextureObject
Definition: vtkOpenVRModel.h:89
vtkOpenVRModel::ModelHelper
vtkOpenGLHelper ModelHelper
Definition: vtkOpenVRModel.h:87
vtkOpenVRModel
OpenVR device model.
Definition: vtkOpenVRModel.h:39
vtkOpenVRModel::Ray
vtkNew< vtkOpenVRRay > Ray
Definition: vtkOpenVRModel.h:93
vtkOpenGLHelper
Definition: vtkOpenGLHelper.h:30
vtkOpenVRModel::FailedToLoad
bool FailedToLoad
Definition: vtkOpenVRModel.h:84
vtkOpenVRModel::ModelVBO
vtkOpenGLVertexBufferObject * ModelVBO
Definition: vtkOpenVRModel.h:88
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkTextureObject
abstracts an OpenGL texture object.
Definition: vtkTextureObject.h:44
vtkOpenVRRenderWindow
OpenVR rendering window.
Definition: vtkOpenVRRenderWindow.h:73
vtkMatrix4x4
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:41
vtkOpenGLVertexBufferObject
Definition: vtkOpenGLVertexBufferObject.h:38
vtkNew< vtkTextureObject >
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkOpenVRModel::SetVisibility
void SetVisibility(bool v)
Definition: vtkOpenVRModel.h:58
vtkObject.h
vtkX3D::string
Definition: vtkX3D.h:490
vtkNew.h
vtkOpenVRModel::GetVisibility
bool GetVisibility()
Definition: vtkOpenVRModel.h:61
vtkOpenVRModel::Loaded
bool Loaded
Definition: vtkOpenVRModel.h:83
vtkRenderWindow
create a window for renderers to draw into
Definition: vtkRenderWindow.h:87
vtkOpenVRModel::RawModel
vr::RenderModel_t * RawModel
Definition: vtkOpenVRModel.h:74
vtkOpenVRModel::ModelName
std::string ModelName
Definition: vtkOpenVRModel.h:80