![]() |
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.