H3D API
2.4.1
|
A KeySensor node generates events when the user presses keys on the keyboard. More...
#include <H3D/KeySensor.h>
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. | |
![]() | |
X3DKeyDeviceSensorNode (Inst< SFBool > _enabled=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isActive=0) | |
Constructor. | |
~X3DKeyDeviceSensorNode () | |
Destructor. | |
![]() | |
X3DSensorNode (Inst< SFBool > _enabled=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isActive=0) | |
Constructor. | |
![]() | |
X3DChildNode (Inst< SFNode > _metadata=0) | |
Constructor. | |
![]() | |
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... | |
![]() | |
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 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 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< SFInt32 > | actionKeyPress |
The actionKeyPress fields contains an integer that specifies which action key was the last one to be pressed. More... | |
H3DUniquePtr< SFInt32 > | actionKeyRelease |
The actionKeyRelease fields contains an integer that specifies which action key was the last one to be released. More... | |
H3DUniquePtr< SFBool > | altKey |
Generates events when alt key is used. More... | |
H3DUniquePtr< SFBool > | controlKey |
Generates events when control key is used. More... | |
H3DUniquePtr< SFBool > | shiftKey |
Generates events when shift key is used. More... | |
H3DUniquePtr< SFString > | keyPress |
The keyPress field events are generated as keys which produce characters are pressed. More... | |
H3DUniquePtr< SFString > | keyRelease |
The keyRelease field events are generated as keys which produce characters are released. More... | |
![]() | |
H3DUniquePtr< SFBool > | enabled |
If enabled is true the sensor node is enabled otherwise it is disabled and will not generate any output. More... | |
H3DUniquePtr< SFBool > | isActive |
A sensor is active when some special conditions are fulfilled and it will then generate extra output. More... | |
![]() | |
H3DUniquePtr< SFNode > | metadata |
Meta data about the node. More... | |
Static Public Attributes | |
static H3DNodeDatabase | database |
The H3DNodeDatabase for this node. | |
![]() | |
static H3DNodeDatabase | database |
The H3DNodeDatabase for this node. | |
![]() | |
static H3DNodeDatabase | database |
The H3DNodeDatabase for this node. | |
Additional Inherited Members | |
![]() | |
typedef std::map< Node *, Node * > | DeepCopyMap |
A map type used during a deep copy clone() to map from original nodes to cloned nodes. | |
![]() | |
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 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. | |
![]() | |
void | cloneFieldValue (Field &_from, Field &_to, bool deepCopy, DeepCopyMap &deepCopyMap) |
A helper function for the clone() method. More... | |
![]() | |
static Node * | getClonedInstance (Node *original, bool deepCopy, DeepCopyMap &deepCopyMap) |
A helper function for nodes that implement clone() More... | |
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-F12 | 1-12 |
HOME | 13 |
END | 14 |
PGUP | 15 |
PGDN | 16 |
UP | 17 |
DOWN | 18 |
LEFT | 19 |
RIGHT | 20 |
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:
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().
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().
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().
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().
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().
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().
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().