|
H3D API
2.4.1
|
RotationalSpringEffect is a localized haptic effect where the haptics device is rotated towards a certain axis of rotation in a spring like manner i.e. More...
#include <H3D/RotationalSpringEffect.h>

Public Member Functions | |
| RotationalSpringEffect (Inst< SFVec3f > _desiredAxis=0, Inst< MFVec3f > _torque=0, Inst< SFFloat > _springConstant=0, Inst< SFBool > _enabled=0, Inst< MFInt32 > _deviceIndex=0, Inst< SFNode > _metadata=0, Inst< SFFloat > _damping=0) | |
| Constructor. | |
| virtual void | traverseSG (TraverseInfo &ti) |
| Adds the effect if within startDistance and removes it when going outside escapeDistance. More... | |
Public Member Functions inherited from H3D::H3DForceEffect | |
| H3DForceEffect (Inst< SFNode > _metadata=0, Inst< MFInt32 > _deviceIndex=0) | |
| Constructor. | |
Public Member Functions inherited from H3D::X3DChildNode | |
| X3DChildNode (Inst< SFNode > _metadata=0) | |
| Constructor. | |
Public Member Functions inherited from H3D::X3DNode | |
| X3DNode (Inst< SFNode > _metadata=0) | |
| Constructor. | |
| X3DMetadataObject * | getMetadataByName (const string &_name) |
| Given a name, the first X3DMetadataObject in the metadata field that matches that name is returned. More... | |
Public Member Functions inherited from H3D::Node | |
| Node () | |
| Constructor. | |
| virtual Node * | clone (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. | |
| X3DPrototypeInstance * | getProtoInstanceParent () |
| 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 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 string | defaultXMLContainerField () |
| Returns the default xml containerField attribute value. More... | |
| virtual Field * | getField (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< SFVec3f > | desiredAxis |
| The desired axis of the spring, that is the axis towards which the torque should be directed. More... | |
| H3DUniquePtr< MFVec3f > | torque |
| The torque applied by the spring to the haptics device since the last scenegraph update. More... | |
| H3DUniquePtr< SFFloat > | springConstant |
| The spring constant of the spring. More... | |
| H3DUniquePtr< SFBool > | enabled |
| The enabled field should be set to true when the force effect should be enabled and active. More... | |
| H3DUniquePtr< SFFloat > | damping |
| The damping constant to use in the torque calculation. More... | |
| AutoRefVector< HAPI::HapticRotationalSpring > | haptic_rotational_spring |
| Internal haptic spring instance. | |
Public Attributes inherited from H3D::H3DForceEffect | |
| H3DUniquePtr< MFInt32 > | deviceIndex |
| A list of indices that tells which haptics devices to render the force on. More... | |
Public Attributes inherited from H3D::X3DNode | |
| H3DUniquePtr< SFNode > | metadata |
| Meta data about the node. More... | |
Static Public Attributes | |
| static H3DNodeDatabase | database |
| The H3DNodeDatabase for this node. | |
Static Public Attributes inherited from H3D::H3DForceEffect | |
| static H3DNodeDatabase | database |
| The H3DNodeDatabase for this node. | |
Static Public Attributes inherited from H3D::X3DNode | |
| static H3DNodeDatabase | database |
| The H3DNodeDatabase for this node. | |
Additional Inherited Members | |
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. | |
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 Node * | getClonedInstance (Node *original, bool deepCopy, DeepCopyMap &deepCopyMap) |
| A helper function for nodes that implement clone() More... | |
RotationalSpringEffect is a localized haptic effect where the haptics device is rotated towards a certain axis of rotation in a spring like manner i.e.
the torque is proportional to the the angle between the desired axis and the rotated default axis ( 0, 0, 1 ). The default axis is rotated by the haptics device orientation. deviceIndex decides on which haptics device this effect should be on. The force generated will be
Examples:
|
virtual |
Adds the effect if within startDistance and removes it when going outside escapeDistance.
| ti | The TraverseInfo object containing information about the traversal. |
Reimplemented from H3D::Node.
References H3D::TraverseInfo::addForceEffect(), damping, desiredAxis, H3D::H3DForceEffect::deviceIndex, enabled, H3D::TraverseInfo::getAccForwardMatrix(), H3D::TraverseInfo::getHapticsDevices(), haptic_rotational_spring, H3D::TraverseInfo::hapticsEnabled(), H3DUtil::AutoRefVector< class >::resize(), H3DUtil::AutoRefVector< class >::set(), H3DUtil::AutoRefVector< class >::size(), springConstant, and torque.
| H3DUniquePtr< SFFloat > H3D::RotationalSpringEffect::damping |
The damping constant to use in the torque calculation.
NOTE: Currently not used at all.
Access type: inputOutput
Default value: 0
Referenced by RotationalSpringEffect(), and traverseSG().
| H3DUniquePtr< SFVec3f > H3D::RotationalSpringEffect::desiredAxis |
The desired axis of the spring, that is the axis towards which the torque should be directed.
Access type: inputOutput
Default value: Vec3f( 0, 0, 1 )
Referenced by RotationalSpringEffect(), and traverseSG().
| H3DUniquePtr< SFBool > H3D::RotationalSpringEffect::enabled |
The enabled field should be set to true when the force effect should be enabled and active.
Access type: inputOutput
Default value: TRUE
Referenced by RotationalSpringEffect(), and traverseSG().
| H3DUniquePtr< SFFloat > H3D::RotationalSpringEffect::springConstant |
The spring constant of the spring.
torque = spring_constant * base_torque Where base torque is the vector part of a quaternion created from the rotation difference between the current defaul device axis and the desired axis.
Access type: inputOutput
Default value: 100
Referenced by RotationalSpringEffect(), and traverseSG().
| H3DUniquePtr< MFVec3f > H3D::RotationalSpringEffect::torque |
The torque applied by the spring to the haptics device since the last scenegraph update.
Access type: outputOnly
Default value: Vec3f( 0, 0, 0 )
Referenced by traverseSG().