H3D API  2.4.1
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | List of all members
H3D::H3DHapticsDevice Class Reference

Base class for all haptic devices. More...

#include <H3D/H3DHapticsDevice.h>

Inheritance diagram for H3D::H3DHapticsDevice:
Inheritance graph

Classes

class  SetEnabled
 SetEnabled specializes SFBool to go into reset mode when a true event is received. More...
 
class  SFHapticsRendererNode
 SFHapticsRendererNode extends TypedSFNode< H3DHapticsRendererNode > in order to change the haptics renderer for the used HAPIHapticsDevice when changing H3DHapticsRendererNode. More...
 
class  TrackerAngularVelocity
 The TrackerAngularVelocity field updates itself from the deviceAngularVelocity and orientationCalibration fields. More...
 
class  TrackerOrientation
 The TrackerOrientation field updates itself from the deviceOrientation and orientationCalibration fields. More...
 
class  TrackerPosition
 The TrackerPosition field updates itself from the devicePosition and positionCalibration fields. More...
 
class  TrackerVelocity
 The TrackerVelocity field updates itself from the deviceVelocity and positionCalibration fields. More...
 
class  WeightedProxy
 The WeightedProxy field updates to be a value between the proxy position and tracker position depending on the value of a weighting factor. More...
 

Public Types

typedef SFMatrix4f PosCalibration
 
typedef SFRotation OrnCalibration
 
- Public Types inherited from H3D::Node
typedef std::map< Node *, Node * > DeepCopyMap
 A map type used during a deep copy clone() to map from original nodes to cloned nodes.
 

Public Member Functions

 H3DHapticsDevice (Inst< SFVec3f > _devicePosition=0, Inst< SFRotation > _deviceOrientation=0, Inst< TrackerPosition > _trackerPosition=0, Inst< TrackerOrientation > _trackerOrientation=0, Inst< SFMatrix4f > _positionCalibration=0, Inst< SFRotation > _orientationCalibration=0, Inst< SFVec3f > _proxyPosition=0, Inst< WeightedProxy > _weightedProxyPosition=0, Inst< SFFloat > _proxyWeighting=0, Inst< SFBool > _mainButton=0, Inst< SFBool > _secondaryButton=0, Inst< SFInt32 > _buttons=0, Inst< SFVec3f > _force=0, Inst< SFVec3f > _torque=0, Inst< SFInt32 > _inputDOF=0, Inst< SFInt32 > _outputDOF=0, Inst< SFInt32 > _hapticsRate=0, Inst< SFInt32 > _desiredHapticsRate=0, Inst< SFNode > _stylus=0, Inst< SFHapticsRendererNode > _hapticsRenderer=0, Inst< MFVec3f > _proxyPositions=0, Inst< SFBool > _followViewpoint=0, Inst< SFVec3f > _deviceVelocity=0, Inst< TrackerVelocity > _trackerVelocity=0, Inst< SFString > _profiledResult=0, Inst< SFVec3f > _deviceAngularVelocity=0, Inst< TrackerAngularVelocity > _trackerAngularVelocity=0)
 Constructor.
 
virtual ~H3DHapticsDevice ()
 Destuctor.
 
Vec3f getPreviousProxyPosition (unsigned int layer=0)
 Get the proxy position from the previous loop for a certain layer. More...
 
const vector< Vec3f > & getPreviousProxyPositions ()
 Get all previous proxy positions.
 
virtual string defaultXMLContainerField ()
 Returns the default xml containerField attribute value. More...
 
HAPI::HAPIHapticsDevice * getHAPIDevice ()
 Get the HAPIHapticsDevice that is encapsulated by this node.
 
virtual ErrorCode initDevice ()
 Does all the initialization needed for the device before starting to use it.
 
virtual ErrorCode releaseDevice ()
 Perform cleanup and let go of all device resources that are allocated. More...
 
virtual ErrorCode enableDevice ()
 Enable the device. Positions can be read and force can be sent.
 
virtual ErrorCode disableDevice ()
 Temporarily disable the device. More...
 
H3DUtil::PeriodicThreadBasegetThread ()
 Get the thread that is used to run this haptics device.
 
virtual void postInit ()
 This function is called for all devices in a DeviceInfo node for which the initDevice has been called. More...
 
virtual void updateDeviceValues ()
 This function is used to transfer device values, such as position, button status etc from the realtime loop to the fields of H3DHapticsDevice, and possible vice versa.
 
virtual void preRender ()
 This function is called at the start of each scenegraph loop before any calls to other HapticDevice functions and can be used to perform any necessary operation that are needed for the other calls to function properly.
 
virtual void postRender ()
 This function is called at the end of each scenegraph loop after all calls to other HapticDevice functions and can be used to perform any necessary operation that are needed.
 
virtual void renderShapes (const HapticShapeVector &shapes, unsigned int layer=0)
 Perform haptic rendering for the given HapticShape instances. More...
 
virtual void renderStylus ()
 Render the stylus of the device wint OpenGL.
 
virtual void renderEffects (const HapticEffectVector &effects)
 Perform haptic rendering for the given HAPIForceEffect instances. More...
 
- Public Member Functions inherited from H3D::Node
 Node ()
 Constructor.
 
virtual Nodeclone (bool deepCopy=true, DeepCopyMap *deepCopyMap=NULL)
 Returns a new instance of this node type with the same state as this one. More...
 
virtual ~Node ()
 Destructor.
 
X3DPrototypeInstancegetProtoInstanceParent ()
 If this node is the root node in the proto body of a X3DPrototypeInstance then this will return that node. More...
 
void setProtoInstanceParent (X3DPrototypeInstance *p)
 Set the X3DPrototypeInstance this node is the the root node if applicaple.
 
virtual void render ()
 the render() function is used for the depth-first rendering traversal of the scene-graph. More...
 
virtual void traverseSG (TraverseInfo &ti)
 traverseSG is called once per scenegraph loop on the scene in order to traverse the scenegraph. More...
 
virtual bool lineIntersect (const Vec3f &from, const Vec3f &to, LineIntersectResult &result)
 Detect intersection between a line segment and the Node. More...
 
virtual void closestPoint (const Vec3f &p, NodeIntersectResult &result)
 Find closest point on Node to p. More...
 
virtual bool movingSphereIntersect (H3DFloat radius, const Vec3f &from, const Vec3f &to, NodeIntersectResult &result)
 Detect collision between a moving sphere and the Node. More...
 
virtual FieldgetField (const string &_name) const
 return a pointer to the field specified by name within this instance
 
int addDestructCallback (void(*func)(Node *, void *), void *args)
 Add a callback function to be run on destruction of node. More...
 
int removeDestructCallback (void(*func)(Node *, void *), void *args)
 Add a callback function to be run on destruction of node. More...
 

Public Attributes

H3DUniquePtr< SFVec3fdevicePosition
 The position of the device given in the coordinate system of the device. More...
 
H3DUniquePtr< SFRotationdeviceOrientation
 The orientation of the device given in the coordinate system of the device. More...
 
H3DUniquePtr< TrackerPositiontrackerPosition
 The position of the device in the world coordinates of the API. More...
 
H3DUniquePtr< TrackerOrientationtrackerOrientation
 The orientation of the device in the world coordinates of the API. More...
 
H3DUniquePtr< SFMatrix4fpositionCalibration
 The calibration matrix between devicePosition and trackerPosition. More...
 
H3DUniquePtr< SFMatrix4fadjustedPositionCalibration
 The calibration matrix between devicePosition and trackerPosition adjusted with the movement of the viewpoint.
 
H3DUniquePtr< SFRotationorientationCalibration
 The calibration rotation between deviceOrientation and trackerOrientation. More...
 
H3DUniquePtr< SFRotationadjustedOrnCalibration
 The calibration rotation between deviceOrientation and trackerOrientation adjusted with the movement of the viewpoint.
 
H3DUniquePtr< SFVec3fproxyPosition
 The position of the proxy used in the haptic rendering(layer 0). More...
 
H3DUniquePtr< WeightedProxyweightedProxyPosition
 A weighted position between proxyPosition and trackerPosition. More...
 
H3DUniquePtr< SFFloatproxyWeighting
 The weighting between proxyPosition and trackerPosition when calculating weightedProxyPosition. More...
 
H3DUniquePtr< SFBoolmainButton
 The state of the main button(button 0). More...
 
H3DUniquePtr< SFBoolsecondaryButton
 The state of the secondary button (button 1). More...
 
H3DUniquePtr< SFInt32buttons
 The state of all buttons. More...
 
H3DUniquePtr< SFVec3fforce
 The approximation of the force that has been rendered during the last scenegraph loop. More...
 
H3DUniquePtr< SFVec3ftorque
 The approximation of the torque that has been rendered during the last scenegraph loop. More...
 
H3DUniquePtr< SFInt32inputDOF
 The degrees of freedom supported as input. More...
 
H3DUniquePtr< SFInt32outputDOF
 The degrees of freedom supported as output, i.e. More...
 
H3DUniquePtr< SFInt32hapticsRate
 The update rate of the servoloop of the H3DHapticsDevice. More...
 
H3DUniquePtr< SFInt32desiredHapticsRate
 The desired update rate of the servoloop of the H3DHapticsDevice. More...
 
H3DUniquePtr< SFTimehapticsLoopTime
 The time spent in the last haptics loop(in seconds) A value of -1 means that no haptics loop has been completed yet. More...
 
H3DUniquePtr< SFNodestylus
 The Node used as the visual representation of the stylus. More...
 
H3DUniquePtr< SFBoolinitialized
 true if the device is initialized and ready for calls to updateDeviceValues() and renderObjects(). More...
 
H3DUniquePtr< SFHapticsRendererNodehapticsRenderer
 Specifies the haptics rendering algorithm to use to generate forces from geometric shapes. More...
 
H3DUniquePtr< MFVec3fproxyPositions
 The positions of the proxies for each layer used in haptic rendering(layer 0). More...
 
H3DUniquePtr< SetEnabledset_enabled
 Enable/disable the device. More...
 
H3DUniquePtr< SFBoolenabled
 true if the device is enabled, e.g. More...
 
H3DUniquePtr< SFBoolfollowViewpoint
 true if the device should follow the viewpoint. More...
 
H3DUniquePtr< SFVec3fdeviceVelocity
 The velocity of the device in the coordinate system of the device. More...
 
H3DUniquePtr< TrackerVelocitytrackerVelocity
 The velocity of the device in the world coordinates of the API. More...
 
H3DUniquePtr< SFFloatforceLimit
 The maximum force(in N) we want the device to render. More...
 
H3DUniquePtr< SFFloatforceScale
 Set the scaling of the output force. More...
 
H3DUniquePtr< SFBooldeadmansSwitch
 This is an alternative operational safety mode. More...
 
H3DUniquePtr< SFFloattorqueLimit
 The maximum torque(in Nm) we want the device to render. More...
 
H3DUniquePtr< SFVec3fdeviceAngularVelocity
 The angular velocity of the device in the coordinate system of the device. More...
 
H3DUniquePtr< TrackerAngularVelocitytrackerAngularVelocity
 The angular velocity of the device in the world coordinates of the API. More...
 

Static Public Attributes

static H3DNodeDatabase database
 Node database entry.
 

Protected Attributes

TimeStamp last_effect_change
 The time for the last call to the renderEffects function.
 

Additional Inherited Members

- Static Public Member Functions inherited from H3D::Node
static unsigned int nrNodesAlive ()
 Returns the nr of nodes currently alive, i.e. nodes created but not destructed.
 
static int nrNodesCreated ()
 Returns the number of nodes created in total since the start of the program.
 
- Protected Member Functions inherited from H3D::Node
void cloneFieldValue (Field &_from, Field &_to, bool deepCopy, DeepCopyMap &deepCopyMap)
 A helper function for the clone() method. More...
 
- Static Protected Member Functions inherited from H3D::Node
static NodegetClonedInstance (Node *original, bool deepCopy, DeepCopyMap &deepCopyMap)
 A helper function for nodes that implement clone() More...
 

Detailed Description

Base class for all haptic devices.

It contains information about the haptics device, e.g. the position and orientation of the device, the forces being rendered and supported degrees of freedom. It also contains functions for rendering HapticObject instances on the device. Subclasses should override renderObjects() to render the objects on the H3DHapticsDevice.

Internal routes:

Member Typedef Documentation

◆ OrnCalibration

Deprecated:
Deprecated and will be removed in the future.

◆ PosCalibration

Deprecated:
Deprecated and will be removed in the future.

Member Function Documentation

◆ defaultXMLContainerField()

virtual string H3D::H3DHapticsDevice::defaultXMLContainerField ( )
inlinevirtual

Returns the default xml containerField attribute value.

For this node it is "device".

Reimplemented from H3D::Node.

◆ disableDevice()

H3DHapticsDevice::ErrorCode H3DHapticsDevice::disableDevice ( )
virtual

Temporarily disable the device.

Forces sent will be ignored and positions and orientation will stay the same as previous values.

References enabled.

Referenced by releaseDevice().

◆ getPreviousProxyPosition()

Vec3f H3D::H3DHapticsDevice::getPreviousProxyPosition ( unsigned int  layer = 0)
inline

Get the proxy position from the previous loop for a certain layer.

The caller of the function has to be certain that the layer existed in the previous loop.

Parameters
layerThe layer to get the proxy position for, default is 0.

Referenced by H3D::MagneticGeometryEffect::traverseSG().

◆ postInit()

virtual void H3D::H3DHapticsDevice::postInit ( )
inlinevirtual

This function is called for all devices in a DeviceInfo node for which the initDevice has been called.

It is not called until all initDevice calls have been completed for all devices in the DeviceInfo. This function can be used for functionality that require all devices to be initialized.

Reimplemented in H3D::PhantomDevice.

◆ releaseDevice()

H3DHapticsDevice::ErrorCode H3DHapticsDevice::releaseDevice ( )
virtual

Perform cleanup and let go of all device resources that are allocated.

After a call to this function no haptic rendering can be performed on the device until the initDevice() function has been called again.

Reimplemented in H3D::PlaybackDevice, H3D::PhantomDevice, H3D::ForceDimensionDevice, and H3D::ClutchedDevice.

References disableDevice(), and initialized.

Referenced by H3D::ClutchedDevice::releaseDevice(), H3D::ForceDimensionDevice::releaseDevice(), H3D::PhantomDevice::releaseDevice(), H3D::PlaybackDevice::releaseDevice(), H3D::DeviceInfo::removeFromStack(), and H3D::DeviceInfo::toStackTop().

◆ renderEffects()

void H3DHapticsDevice::renderEffects ( const HapticEffectVector effects)
virtual

Perform haptic rendering for the given HAPIForceEffect instances.

HAPIForceEffect objects that are to be be rendered haptically must be rendered with this function each scenegraph loop.

Parameters
effectsThe HAPIForceEffects to render.

References H3D::GlobalSettings::getActive(), H3D::GlobalSettings::getOptionNode(), H3D::HapticsOptions::interpolateForceEffects, and last_effect_change.

Referenced by H3D::Scene::idle().

◆ renderShapes()

void H3DHapticsDevice::renderShapes ( const HapticShapeVector shapes,
unsigned int  layer = 0 
)
virtual

Perform haptic rendering for the given HapticShape instances.

HapticShape objects that are to be be rendered haptically must be rendered with this function each scenegraph loop.

Parameters
shapesThe haptic shapes to render.
layerThe haptic layer to render them in.

Reimplemented in H3D::ClutchedDevice.

Referenced by H3D::Scene::idle(), and H3D::ClutchedDevice::renderShapes().

Member Data Documentation

◆ buttons

H3DUniquePtr< SFInt32 > H3D::H3DHapticsDevice::buttons

The state of all buttons.

Bit 0 is button 0, bit 1 is button 1,.. A 1 in the bit position indicates that the button is pressed. Use mainButton and secondaryButton fields for quick access to button 0 and 1

Access type: outputOnly

Referenced by H3DHapticsDevice(), and updateDeviceValues().

◆ deadmansSwitch

H3DUniquePtr< SFBool > H3D::H3DHapticsDevice::deadmansSwitch

This is an alternative operational safety mode.

When enabled the mainButton assumes the function of a dead man's switch. Force are only rendered, if the button is pressed/hold down, otherwise the forceLimit and torqueLimit are automatically set to 0.

Access type: inputOutput
Default value: false

Referenced by H3DHapticsDevice(), and updateDeviceValues().

◆ desiredHapticsRate

H3DUniquePtr< SFInt32 > H3D::H3DHapticsDevice::desiredHapticsRate

The desired update rate of the servoloop of the H3DHapticsDevice.

This only give a hint to the system of what update rate of the haptics loop is desired. A value of -1 indicates that the loop should be run as fast as possible. The system will try to match the frequency as close as possible but the actual frequency is dependent on the frequency of the timer on the system. E.g on a Windows system the multimedia timers are used for synchronization. When run at its highest frequence this will have a clock cycle of 0.976 ms. This means that the highest frequency we can get is

  1. Since we only can get an event from the timer once for each ms, the possible frequences are 1024/x, where x is the number of milliseconds to run each loop in the thread, i.e. 1024, 512, 342, 256, 205 and so on. Some haptics devices uses other synchronization means than the RTC timer though and in those cases they might have different possible frequencies. The acual haptics rate can be found in the hapticsRate field. Access type: initializeOnly
    Default value: 1024

Referenced by H3DHapticsDevice(), initDevice(), and H3D::PhantomDevice::PhantomDevice().

◆ deviceAngularVelocity

H3DUniquePtr< SFVec3f > H3D::H3DHapticsDevice::deviceAngularVelocity

The angular velocity of the device in the coordinate system of the device.

Currently only implemented for ForceDimension device.

Access type: outputOnly

Referenced by H3DHapticsDevice(), and updateDeviceValues().

◆ deviceOrientation

H3DUniquePtr< SFRotation > H3D::H3DHapticsDevice::deviceOrientation

The orientation of the device given in the coordinate system of the device.

Only applicable if the device supports orientation as input.

Access type: outputOnly

Referenced by H3DHapticsDevice(), and updateDeviceValues().

◆ devicePosition

H3DUniquePtr< SFVec3f > H3D::H3DHapticsDevice::devicePosition

The position of the device given in the coordinate system of the device.

Access type: outputOnly

Referenced by H3DHapticsDevice(), H3D::HapticDeviceNavigation::HapticDeviceNavigation(), and updateDeviceValues().

◆ deviceVelocity

H3DUniquePtr< SFVec3f > H3D::H3DHapticsDevice::deviceVelocity

The velocity of the device in the coordinate system of the device.

Access type: outputOnly

Referenced by H3DHapticsDevice(), and updateDeviceValues().

◆ enabled

H3DUniquePtr< SFBool > H3D::H3DHapticsDevice::enabled

true if the device is enabled, e.g.

positions and forces are updated and sent

Access type: outputOnly
Default value: false

Referenced by disableDevice(), enableDevice(), and H3DHapticsDevice().

◆ followViewpoint

H3DUniquePtr< SFBool > H3D::H3DHapticsDevice::followViewpoint

◆ force

H3DUniquePtr< SFVec3f > H3D::H3DHapticsDevice::force

The approximation of the force that has been rendered during the last scenegraph loop.

Access type: outputOnly

Referenced by updateDeviceValues().

◆ forceLimit

H3DUniquePtr< SFFloat > H3D::H3DHapticsDevice::forceLimit

The maximum force(in N) we want the device to render.

Any forces larger than the specified value will be clamped the the forceLimit length. A negative value means no limit.

Access type: inputOutput
Default value: -1

Referenced by H3DHapticsDevice(), and updateDeviceValues().

◆ forceScale

H3DUniquePtr< SFFloat > H3D::H3DHapticsDevice::forceScale

Set the scaling of the output force.

The forces generated will be multiplied by the value.

Access type: inputOutput
Default value: 1

Referenced by H3DHapticsDevice(), and updateDeviceValues().

◆ hapticsLoopTime

H3DUniquePtr< SFTime > H3D::H3DHapticsDevice::hapticsLoopTime

The time spent in the last haptics loop(in seconds) A value of -1 means that no haptics loop has been completed yet.

Access type: outputOnly
Default value: -1

Referenced by H3DHapticsDevice(), and updateDeviceValues().

◆ hapticsRate

H3DUniquePtr< SFInt32 > H3D::H3DHapticsDevice::hapticsRate

The update rate of the servoloop of the H3DHapticsDevice.

Access type: outputOnly

Referenced by H3DHapticsDevice(), and updateDeviceValues().

◆ hapticsRenderer

H3DUniquePtr< SFHapticsRendererNode > H3D::H3DHapticsDevice::hapticsRenderer

Specifies the haptics rendering algorithm to use to generate forces from geometric shapes.

Access type: inputOutput

Referenced by H3D::LayeredRenderer::MFHapticsRendererNode::onAdd(), H3D::LayeredRenderer::MFHapticsRendererNode::onRemove(), and H3D::Sphere::traverseSG().

◆ initialized

H3DUniquePtr< SFBool > H3D::H3DHapticsDevice::initialized

true if the device is initialized and ready for calls to updateDeviceValues() and renderObjects().

If not initDevice() will have to be called in order to initialize it before calling those functions.

Access type: outputOnly
Default value: false

Referenced by H3DHapticsDevice(), H3D::Scene::idle(), initDevice(), H3D::DeviceInfo::initialize(), releaseDevice(), renderStylus(), and H3D::DeviceInfo::toStackTop().

◆ inputDOF

H3DUniquePtr< SFInt32 > H3D::H3DHapticsDevice::inputDOF

◆ mainButton

H3DUniquePtr< SFBool > H3D::H3DHapticsDevice::mainButton

The state of the main button(button 0).

true means that the button is pressed.

Access type: outputOnly

Referenced by H3DHapticsDevice(), H3D::HapticDeviceNavigation::HapticDeviceNavigation(), and updateDeviceValues().

◆ orientationCalibration

H3DUniquePtr< SFRotation > H3D::H3DHapticsDevice::orientationCalibration

The calibration rotation between deviceOrientation and trackerOrientation.

Access type: inputOutput
Default value: Rotation( 1, 0, 0, 0 )

Referenced by H3DHapticsDevice(), and updateDeviceValues().

◆ outputDOF

H3DUniquePtr< SFInt32 > H3D::H3DHapticsDevice::outputDOF

The degrees of freedom supported as output, i.e.

forces and torques.

Access type: outputOnly

Referenced by H3D::H3DFakeHapticsDevice::H3DFakeHapticsDevice(), H3DHapticsDevice(), and H3D::PhantomDevice::initDevice().

◆ positionCalibration

H3DUniquePtr< SFMatrix4f > H3D::H3DHapticsDevice::positionCalibration

The calibration matrix between devicePosition and trackerPosition.

Access type: inputOutput
Default value: Unit matrix

Referenced by H3DHapticsDevice(), and updateDeviceValues().

◆ proxyPosition

H3DUniquePtr< SFVec3f > H3D::H3DHapticsDevice::proxyPosition

The position of the proxy used in the haptic rendering(layer 0).

Access type: outputOnly

Referenced by H3DHapticsDevice(), H3D::MagneticGeometryEffect::traverseSG(), and updateDeviceValues().

◆ proxyPositions

H3DUniquePtr< MFVec3f > H3D::H3DHapticsDevice::proxyPositions

The positions of the proxies for each layer used in haptic rendering(layer 0).

Access type: outputOnly

Referenced by updateDeviceValues().

◆ proxyWeighting

H3DUniquePtr< SFFloat > H3D::H3DHapticsDevice::proxyWeighting

The weighting between proxyPosition and trackerPosition when calculating weightedProxyPosition.

The value should be between 0 and 1, with 1 meaning that the weightedProxyPosition is the proxyPosition and 0 that it is the trackerPosition.

Access type: inputOutput
Default value: 0.95

Referenced by H3DHapticsDevice().

◆ secondaryButton

H3DUniquePtr< SFBool > H3D::H3DHapticsDevice::secondaryButton

The state of the secondary button (button 1).

true means that the button is pressed.

Access type: outputOnly

Referenced by H3DHapticsDevice(), and updateDeviceValues().

◆ set_enabled

H3DUniquePtr< SetEnabled > H3D::H3DHapticsDevice::set_enabled

Enable/disable the device.

A disabled device does not update its positions and does not generate any forces.

Access type: inputOnly
Default value: false

Referenced by H3DHapticsDevice().

◆ stylus

H3DUniquePtr< SFNode > H3D::H3DHapticsDevice::stylus

The Node used as the visual representation of the stylus.

Access type: inputOutput

Referenced by H3D::H3DWindowNode::calculateFarAndNearPlane(), H3D::Scene::idle(), H3D::ClutchedDevice::initialize(), and renderStylus().

◆ torque

H3DUniquePtr< SFVec3f > H3D::H3DHapticsDevice::torque

The approximation of the torque that has been rendered during the last scenegraph loop.

Access type: outputOnly

Referenced by updateDeviceValues().

◆ torqueLimit

H3DUniquePtr< SFFloat > H3D::H3DHapticsDevice::torqueLimit

The maximum torque(in Nm) we want the device to render.

Any torques larger than the specified value will be clamped the the torqueLimit length. A negative value means no limit.

Access type: inputOutput
Default value: -1

Referenced by H3DHapticsDevice(), and updateDeviceValues().

◆ trackerAngularVelocity

H3DUniquePtr< TrackerAngularVelocity > H3D::H3DHapticsDevice::trackerAngularVelocity

The angular velocity of the device in the world coordinates of the API.

device. Currently only implemented for ForceDimension device.

Access type: outputOnly

Referenced by H3DHapticsDevice().

◆ trackerOrientation

H3DUniquePtr< TrackerOrientation > H3D::H3DHapticsDevice::trackerOrientation

The orientation of the device in the world coordinates of the API.

Access type: outputOnly

Referenced by H3D::H3DWindowNode::calculateFarAndNearPlane(), H3DHapticsDevice(), H3D::Scene::idle(), and renderStylus().

◆ trackerPosition

H3DUniquePtr< TrackerPosition > H3D::H3DHapticsDevice::trackerPosition

The position of the device in the world coordinates of the API.

Access type: outputOnly

Referenced by H3D::ClipPlane::enableHapticsState(), H3DHapticsDevice(), H3D::MagneticGeometryEffect::traverseSG(), H3D::SpringEffect::traverseSG(), and updateDeviceValues().

◆ trackerVelocity

H3DUniquePtr< TrackerVelocity > H3D::H3DHapticsDevice::trackerVelocity

The velocity of the device in the world coordinates of the API.

device.

Access type: outputOnly

Referenced by H3DHapticsDevice().

◆ weightedProxyPosition

H3DUniquePtr< WeightedProxy > H3D::H3DHapticsDevice::weightedProxyPosition

A weighted position between proxyPosition and trackerPosition.

The weighting factor is the proxyWeighting field. By default this is the field that is used to display the stylus graphically.

Access type: outputOnly

Referenced by H3D::H3DWindowNode::calculateFarAndNearPlane(), H3DHapticsDevice(), H3D::Scene::idle(), and renderStylus().


The documentation for this class was generated from the following files: