H3D API  2.4.1
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
H3D::KeySensor Class Reference

A KeySensor node generates events when the user presses keys on the keyboard. More...

#include <H3D/KeySensor.h>

Inheritance diagram for H3D::KeySensor:
Inheritance graph

Public Member Functions

 KeySensor (Inst< SFBool > _enabled=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isActive=0, Inst< SFInt32 > _actionKeyPress=0, Inst< SFInt32 > _actionKeyRelease=0, Inst< SFBool > _altKey=0, Inst< SFBool > _controlKey=0, Inst< SFBool > _shiftKey=0, Inst< SFString > _keyPress=0, Inst< SFString > _keyRelease=0)
 Constructor.
 
virtual void keyboardDown (int key, bool special_key)
 Function called when key is pressed.
 
virtual void keyboardUp (int key, bool special_key)
 Function called when key is released.
 
- Public Member Functions inherited from H3D::X3DKeyDeviceSensorNode
 X3DKeyDeviceSensorNode (Inst< SFBool > _enabled=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isActive=0)
 Constructor.
 
 ~X3DKeyDeviceSensorNode ()
 Destructor.
 
- Public Member Functions inherited from H3D::X3DSensorNode
 X3DSensorNode (Inst< SFBool > _enabled=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isActive=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.
 
X3DMetadataObjectgetMetadataByName (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 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 string defaultXMLContainerField ()
 Returns the default xml containerField attribute value. 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< SFInt32actionKeyPress
 The actionKeyPress fields contains an integer that specifies which action key was the last one to be pressed. More...
 
H3DUniquePtr< SFInt32actionKeyRelease
 The actionKeyRelease fields contains an integer that specifies which action key was the last one to be released. More...
 
H3DUniquePtr< SFBoolaltKey
 Generates events when alt key is used. More...
 
H3DUniquePtr< SFBoolcontrolKey
 Generates events when control key is used. More...
 
H3DUniquePtr< SFBoolshiftKey
 Generates events when shift key is used. More...
 
H3DUniquePtr< SFStringkeyPress
 The keyPress field events are generated as keys which produce characters are pressed. More...
 
H3DUniquePtr< SFStringkeyRelease
 The keyRelease field events are generated as keys which produce characters are released. More...
 
- Public Attributes inherited from H3D::X3DSensorNode
H3DUniquePtr< SFBoolenabled
 If enabled is true the sensor node is enabled otherwise it is disabled and will not generate any output. More...
 
H3DUniquePtr< SFBoolisActive
 A sensor is active when some special conditions are fulfilled and it will then generate extra output. More...
 
- Public Attributes inherited from H3D::X3DNode
H3DUniquePtr< SFNodemetadata
 Meta data about the node. More...
 

Static Public Attributes

static H3DNodeDatabase database
 The H3DNodeDatabase for this node.
 
- Static Public Attributes inherited from H3D::X3DSensorNode
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::X3DKeyDeviceSensorNode
static void keyboardDownCallback (unsigned char key)
 Call this function from a window whenever the window get a character event.
 
static void keyboardSpecialDownCallback (int key)
 Call this function from a window whenever the window get a key event.
 
static void keyboardUpCallback (unsigned char key)
 Call this function from a window whenever the window get a character event.
 
static void keyboardSpecialUpCallback (int key)
 Call this function from a window whenever the window get a key event.
 
- 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

A KeySensor node generates events when the user presses keys on the keyboard.

A KeySensor node can be enabled or disabled by sending it an enabled event with a value of TRUE or FALSE. If the KeySensor node is disabled, it does not track keyboard input or send events.

keyPress and keyRelease events are generated as keys which produce characters are pressed and released on the keyboard. The value of these events is a string of length 1 containing the single UTF-8 character associated with the key pressed. The set of UTF-8 characters that can be generated will vary between different keyboards and different implementations.

actionKeyPress and actionKeyRelease events are generated as 'action' keys are pressed and released on the keyboard. The value of these events are:

F1-F121-12
HOME13
END14
PGUP15
PGDN16
UP17
DOWN18
LEFT19
RIGHT20

The following is unimplemented in H3DAPI for applications using GLUT with H3DAPI on non Windows systems (for example H3DLoad) since it is not supported by glut to get an event when a shift, control or alt key is pressed. shiftKey, controlKey, and altKey events are generated as the shift, alt and control keys on the keyboard are pressed and released. Their value is TRUE when the key is pressed and FALSE when the key is released.

When a key is pressed, the KeySensor sends an isActive event with value TRUE. Once the key is released, the KeySensor sends an isActive event with value FALSE.

The KeySensor is not affected by its position in the transformation hierarchy.

Examples:

Member Data Documentation

◆ actionKeyPress

H3DUniquePtr< SFInt32> H3D::KeySensor::actionKeyPress

The actionKeyPress fields contains an integer that specifies which action key was the last one to be pressed.

Info on the values can be found in the detailed description.

Access type: outputOnly

Referenced by keyboardDown(), and KeySensor().

◆ actionKeyRelease

H3DUniquePtr< SFInt32> H3D::KeySensor::actionKeyRelease

The actionKeyRelease fields contains an integer that specifies which action key was the last one to be released.

Info on the values can be found in the detailed description.

Access type: outputOnly

Referenced by keyboardUp(), and KeySensor().

◆ altKey

H3DUniquePtr< SFBool> H3D::KeySensor::altKey

Generates events when alt key is used.

True if the alt key is pressed, false when released. The altKey field is not supported at this time by H3DAPI when using GLUT on non-Windows systems.

Access type: outputOnly

Referenced by keyboardDown(), keyboardUp(), and KeySensor().

◆ controlKey

H3DUniquePtr< SFBool> H3D::KeySensor::controlKey

Generates events when control key is used.

True if the control key is pressed, false when released. The controlKey field is not supported at this time by H3DAPI when using GLUT on non-Windows systems.

Access type: outputOnly

Referenced by keyboardDown(), keyboardUp(), and KeySensor().

◆ keyPress

H3DUniquePtr< SFString> H3D::KeySensor::keyPress

The keyPress field events are generated as keys which produce characters are pressed.

The field contains a string of length 1 with the single UTF-8 character associated with the latest key that was pressed.

Access type: outputOnly

Referenced by keyboardDown().

◆ keyRelease

H3DUniquePtr< SFString> H3D::KeySensor::keyRelease

The keyRelease field events are generated as keys which produce characters are released.

The field contains a string of length 1 with the single UTF-8 character associated with the latest key that was released.

Access type: outputOnly

Referenced by keyboardUp().

◆ shiftKey

H3DUniquePtr< SFBool> H3D::KeySensor::shiftKey

Generates events when shift key is used.

True if the shift key is pressed, false when released. The shiftKey field is not supported at this time by H3DAPI when using GLUT on non-Windows systems.

Access type: outputOnly

Referenced by keyboardDown(), keyboardUp(), and KeySensor().


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