H3D API  2.4.1
SpaceWareHapticsDevice.h
Go to the documentation of this file.
1 // Copyright 2004-2019, SenseGraphics AB
3 //
4 // This file is part of H3D API.
5 //
6 // H3D API is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 2 of the License, or
9 // (at your option) any later version.
10 //
11 // H3D API is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License
17 // along with H3D API; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // A commercial license is also available. Please contact us at
21 // www.sensegraphics.com for more information.
22 //
23 //
27 //
29 #ifndef __SPACEWAREHAPTICSDEVICE_H__
30 #define __SPACEWAREHAPTICSDEVICE_H__
31 
32 #include "H3D/SpaceWareSensor.h"
34 
35 namespace H3D {
36 
49  class H3DAPI_API SpaceWareHapticsDevice: public H3DFakeHapticsDevice {
50  public:
55  class SetMainButton: public TypedField< GetValueSafeField< SFBool >,
56  Types< SFInt32 > > {
57  virtual void update();
58  };
59 
62  Inst< SFVec3f > _devicePosition = 0,
63  Inst< SFRotation > _deviceOrientation = 0,
64  Inst< TrackerPosition > _trackerPosition = 0,
65  Inst< TrackerOrientation > _trackerOrientation = 0,
66  Inst< SFMatrix4f > _positionCalibration = 0,
67  Inst< SFRotation > _orientationCalibration = 0,
68  Inst< SFVec3f > _proxyPosition = 0,
69  Inst< WeightedProxy > _weightedProxyPosition = 0,
70  Inst< SFFloat > _proxyWeighting = 0,
71  Inst< SFBool > _mainButton = 0,
72  Inst< SFBool > _secondaryButton = 0,
73  Inst< SFInt32 > _buttons = 0,
74  Inst< SFVec3f > _force = 0,
75  Inst< SFVec3f > _torque = 0,
76  Inst< SFInt32 > _inputDOF = 0,
77  Inst< SFInt32 > _outputDOF = 0,
78  Inst< SFInt32 > _hapticsRate = 0,
79  Inst< SFInt32 > _desiredHapticsRate = 0,
80  Inst< SFNode > _stylus = 0,
81  Inst< SFHapticsRendererNode > _hapticsRenderer = 0,
82  Inst< MFVec3f > _proxyPositions = 0,
83  Inst< SFBool > _followViewpoint = 0,
84  Inst< GetValueSafeField< SFVec3f > > _set_devicePosition = 0,
85  Inst< GetValueSafeField< SFRotation > > _set_deviceOrientation = 0,
86  Inst< SetMainButton > _set_mainButton = 0,
87  Inst< SFFloat > _posSensitivity = 0,
88  Inst< SFFloat > _ornSensitivity = 0);
89 
92  virtual void updateDeviceValues() {
94  }
95 
98 
106  H3DUniquePtr< SFFloat > posSensitivity;
107 
115  H3DUniquePtr< SFFloat > ornSensitivity;
116 
117  protected:
120  };
121 }
122 
123 #endif
Header file for H3DFakeHapticsDevice.
Header file for SpaceWareSensor.
A field which ensure that getValue and only getValue can be called within haptic thread with thread s...
Definition: H3DFakeHapticsDevice.h:83
<>
Definition: H3DFakeHapticsDevice.h:47
virtual void updateDeviceValues()
This function is used to transfer device values, such as position, button status etc from the realtim...
Definition: H3DFakeHapticsDevice.cpp:158
SetMainButton is set to true if any of the buttons on the SpaceWare device is pressed.
Definition: SpaceWareHapticsDevice.h:56
A fake haptics device where the position and orientation is controlled via a SpaceWare device such as...
Definition: SpaceWareHapticsDevice.h:49
virtual void updateDeviceValues()
updateDeviceValues is specialized to update the values of the SpaceWareSensor.
Definition: SpaceWareHapticsDevice.h:92
static H3DNodeDatabase database
Node database entry.
Definition: SpaceWareHapticsDevice.h:97
H3DUniquePtr< SFFloat > posSensitivity
posSensitivity defines how fast the movement of the haptics device should be when using the SpaceWare...
Definition: SpaceWareHapticsDevice.h:106
H3DUniquePtr< SFFloat > ornSensitivity
ornSensitivity defines how fast the orientation of the haptics device should move when using the Spac...
Definition: SpaceWareHapticsDevice.h:115
AutoRef< SpaceWareSensor > spaceware_sensor
The SpaceWareSensor node used to control the haptics device.
Definition: SpaceWareHapticsDevice.h:119
A template modifier class for adding type checking on the routes to any Field class.
Definition: TypedField.h:84
H3D API namespace.
Definition: Anchor.h:38
The H3DNodeDatabase contains a mapping between a name of a Node and the constructor for the Node with...
Definition: H3DNodeDatabase.h:194