![]() |
3Gear Systems SDK
v0.9.34
|
Classes | |
| class | HandState |
| Structure holding the position, rotational frame and other information relevant to the state of the hand. More... | |
| class | ParseException |
| Exception thrown when parsing a message fails. More... | |
| class | HandTrackingMessage |
| class | BasicMessage |
| class | PinchMessage |
| Messages relating to pressing, releasing, dragging and moving of each hand. More... | |
| class | BimanualPinchMessage |
| Messages relating to simultaneous or individual pinching. More... | |
| class | PointMessage |
| class | PoseMessage |
| class | WelcomeMessage |
| class | UserMessage |
| Message that exposes the user name and skinning information for the user's calibrated hands. More... | |
| class | CalibrationMessage |
| Message that indicates the progress of calibrating the user's hand scale. More... | |
| struct | OpenCVCamera |
| A class representing the intrinsic/extrinsic parameters of the depth camera. More... | |
| class | Vector3 |
| A minimal 3-vector class. More... | |
| class | Quaternion |
| A minimal quaternion class. More... | |
| class | Transform |
| class | Matrix4 |
Typedefs | |
| typedef JointFrameIndex | JointIndex |
| Included for backwards compatibility. | |
| typedef Vector3< float > | Vector3f |
| typedef Vector3< double > | Vector3d |
| typedef Quaternion< float > | Quaternionf |
| typedef Quaternion< double > | Quaterniond |
| typedef Transform< float > | Transformf |
| typedef Transform< double > | Transformd |
| typedef Matrix4< float > | Matrix4f |
| typedef Matrix4< double > | Matrix4d |
Enumerations | |
| enum | JointFrameIndex { ROOT_JOINT = 0, WRIST_JOINT = 1, THUMB_PROXIMAL = 2, THUMB_INTERMEDIATE = 3, THUMB_DISTAL = 4, INDEX_PROXIMAL = 5, INDEX_INTERMEDIATE = 6, INDEX_DISTAL = 7, MIDDLE_PROXIMAL = 8, MIDDLE_INTERMEDIATE = 9, MIDDLE_DISTAL = 10, RING_PROXIMAL = 11, RING_INTERMEDIATE = 12, RING_DISTAL = 13, PINKY_PROXIMAL = 14, PINKY_INTERMEDIATE = 15, PINKY_DISTAL = 16 } |
| Joint frames used for skinning. More... | |
| enum | FingerDOF { THUMB_CMC_AA = 0, THUMB_CMC_FE = 1, THUMB_MCP = 2, THUMB_IP = 3, INDEX_MCP_AA = 4, INDEX_MCP_FE = 5, INDEX_PIP = 6, MIDDLE_MCP_AA = 7, MIDDLE_MCP_FE = 8, MIDDLE_PIP = 9, RING_MCP_AA = 10, RING_MCP_FE = 11, RING_PIP = 12, PINKY_MCP_AA = 13, PINKY_MCP_FE = 14, PINKY_PIP = 15 } |
| Degrees of freedom of the hand model, as reported by the HandTrackingClient::PoseMessage::getFingerDOFs function. More... | |
| enum | Hand { LEFT_HAND = 0, RIGHT_HAND = 1, BOTH_HANDS = 2, INVALID_HAND = 10000 } |
Functions | |
| std::string | lastSocketError () |
| const char * | handToString (Hand hand) |
| Hand | stringToHand (const std::string &str) |
| BasicMessage * | parseBasicMessage (TokenStream &stream, HandTrackingMessage::MessageType messageType) |
| WelcomeMessage * | parseWelcomeMessage (TokenStream &stream, HandTrackingMessage::MessageType messageType) |
| UserMessage * | parseUserMessage (TokenStream &stream, HandTrackingMessage::MessageType messageType) |
| CalibrationMessage * | parseCalibrationMessage (TokenStream &stream, HandTrackingMessage::MessageType messageType) |
| PoseMessage * | parsePoseMessage (TokenStream &stream, HandTrackingMessage::MessageType messageType) |
| PinchMessage * | parsePinchMessage (TokenStream &stream, HandTrackingMessage::MessageType messageType) |
| BimanualPinchMessage * | parseBimanualPinchMessage (TokenStream &stream, HandTrackingMessage::MessageType messageType) |
| PointMessage * | parsePointMessage (TokenStream &stream, HandTrackingMessage::MessageType messageType) |
| template<typename T > | |
| std::ostream & | operator<< (std::ostream &os, const Vector3< T > &rhs) |
| Prints a vector to the output stream in the format "v.x v.y v.z". | |
| template<typename T > | |
| std::ostream & | operator<< (std::ostream &os, const Quaternion< T > &rhs) |
| Prints a quaternion to the output stream in the format "v.x v.y v.z w". | |
| template std::ostream & | operator<< (std::ostream &os, const Vector3< float > &rhs) |
| template std::ostream & | operator<< (std::ostream &os, const Vector3< double > &rhs) |
| template std::ostream & | operator<< (std::ostream &os, const Quaternion< float > &rhs) |
| template std::ostream & | operator<< (std::ostream &os, const Quaternion< double > &rhs) |
| template<typename T > | |
| Vector3< T > | operator* (const T lhs, const Vector3< T > &rhs) |
| Multiplies a vector by a scalar. | |
| template<typename T > | |
| Vector3< T > | operator* (const Vector3< T > &lhs, const T rhs) |
| Multiplies a vector by a scalar. | |
| template<typename T > | |
| Vector3< T > | operator/ (const Vector3< T > &lhs, const T rhs) |
| Divides a vector by a scalar. | |
| template<typename T > | |
| Vector3< T > | operator+ (const Vector3< T > &lhs, const Vector3< T > &rhs) |
| Adds two vectors together. | |
| template<typename T > | |
| Vector3< T > | operator- (const Vector3< T > &lhs, const Vector3< T > &rhs) |
| Subtracts the second vector from the first. | |
| template<typename T > | |
| Quaternion< T > | operator* (const Quaternion< T > &a, const Quaternion< T > &b) |
| Multiplies two quaternions. | |
| template<typename T > | |
| Transform< T > | operator* (const Transform< T > &lhs, const Transform< T > &rhs) |
| template<typename T > | |
| Vector3< T > | operator* (const Transform< T > &lhs, const Vector3< T > &rhs) |
Variables | |
| const int | INVALID_SOCKET = -1 |
| const int | SOCKET_ERROR = -1 |
| const size_t | QVGA_WIDTH = 320 |
| const size_t | QVGA_HEIGHT = 240 |
| const double | KINECT_FOCAL_LENGTH = 575.815753 |
The HandTrackingClient has been namespaced to avoid conflicts with other libraries.
Degrees of freedom of the hand model, as reported by the HandTrackingClient::PoseMessage::getFingerDOFs function.
Each of these is a rotation in radians that measures how far the corresponding finger is bent from its rest pose. For flexion/extension joints, positive angles indicate flexion while negative angles indicate extension.
We recommend using these joint angles for detecting gestures of the form "finger X is bending." If you need to know the global position/orientation of the hand, you'll need to use the joint frames returned by HandTrackingClient::PoseMessage::getJointFrames instead.
For more details on the hand model, consult the hand model docs.
Most events (like click events) only apply to one hand at a time, but simultaneous click and release events will have the BOTH_HANDS identifier set.
Joint frames used for skinning.
These are the frames returned by PoseMessage::getJointFrames, and used for skinning. We recommend using these if you need to locate points in 3D space or define 3D frames; if you want to recognize gestures of the form "finger X is bending" we recommend using the FingerDOF instead.
The most stable frame is the one defined by the metacarpals (here, the WRIST_JOINT). If you need a 3D frame for something, we recommend using this one.
For more details on the hand model, consult the hand model docs.
| const char * HandTrackingClient::handToString | ( | Hand | hand | ) |
Returns a string representation for the Hand enum. Used for serializing and deserializing from the network.
| Hand HandTrackingClient::stringToHand | ( | const std::string & | str | ) |
Given a string ("left" or "right"), returns the correct Hand. Used for serializing and deserializing from the network.
1.8.3.1