This is the latest WPILib src, VisionSample2013, cRIO image, ... pulled down from firstforge.wpi.edu.
There might be risks in using the top of tree rather than an official release, but the commit messages do mention fixes for some deadlocks and race conditions.
git-svn-id: https://robotics.mvla.net/svn/frc971/2013/trunk/src@4066 f308d9b7-e957-4cde-b6ac-9a88185e7312
diff --git a/azaleasource/WPILibCProgramming/trunk/WPILib/Skeleton.h b/azaleasource/WPILibCProgramming/trunk/WPILib/Skeleton.h
new file mode 100644
index 0000000..89e9234
--- /dev/null
+++ b/azaleasource/WPILibCProgramming/trunk/WPILib/Skeleton.h
@@ -0,0 +1,81 @@
+/*----------------------------------------------------------------------------*/
+/* Copyright (c) FIRST 2011. All Rights Reserved. */
+/* Open Source Software - may be modified and shared by FRC teams. The code */
+/* must be accompanied by the FIRST BSD license file in $(WIND_BASE)/WPILib. */
+/*----------------------------------------------------------------------------*/
+
+#ifndef __SKELETON_H__
+#define __SKELETON_H__
+
+/**
+ * Represents Skeleton data from a Kinect device connected to the
+ * Driver Station. See Getting Started with Microsoft Kinect for
+ * FRC and the Kinect for Windows SDK API reference for more information
+ */
+class Skeleton
+{
+ friend class Kinect;
+public:
+ typedef enum
+ {
+ HipCenter = 0,
+ Spine = 1,
+ ShoulderCenter = 2,
+ Head = 3,
+ ShoulderLeft = 4,
+ ElbowLeft = 5,
+ WristLeft = 6,
+ HandLeft = 7,
+ ShoulderRight = 8,
+ ElbowRight = 9,
+ WristRight = 10,
+ HandRight = 11,
+ HipLeft = 12,
+ KneeLeft = 13,
+ AnkleLeft = 14,
+ FootLeft = 15,
+ HipRight = 16,
+ KneeRight = 17,
+ AnkleRight = 18,
+ FootRight = 19,
+ JointCount = 20
+ } JointTypes;
+
+ typedef enum {kNotTracked, kInferred, kTracked} JointTrackingState;
+
+ typedef struct
+ {
+ float x;
+ float y;
+ float z;
+ JointTrackingState trackingState;
+ } Joint;
+
+ Joint GetHandRight() { return m_joints[HandRight]; }
+ Joint GetHandLeft() { return m_joints[HandLeft]; }
+ Joint GetWristRight() { return m_joints[WristRight]; }
+ Joint GetWristLeft() { return m_joints[WristLeft]; }
+ Joint GetElbowLeft() { return m_joints[ElbowLeft]; }
+ Joint GetElbowRight() { return m_joints[ElbowRight]; }
+ Joint GetShoulderLeft() { return m_joints[ShoulderLeft]; }
+ Joint GetShoulderRight() { return m_joints[ShoulderRight]; }
+ Joint GetShoulderCenter() { return m_joints[ShoulderCenter]; }
+ Joint GetHead() { return m_joints[Head]; }
+ Joint GetSpine() { return m_joints[Spine]; }
+ Joint GetHipCenter() { return m_joints[HipCenter]; }
+ Joint GetHipRight() { return m_joints[HipRight]; }
+ Joint GetHipLeft() { return m_joints[HipLeft]; }
+ Joint GetKneeLeft() { return m_joints[KneeLeft]; }
+ Joint GetKneeRight() { return m_joints[KneeRight]; }
+ Joint GetAnkleLeft() { return m_joints[AnkleLeft]; }
+ Joint GetAnkleRight() { return m_joints[AnkleRight]; }
+ Joint GetFootLeft() { return m_joints[FootLeft]; }
+ Joint GetFootRight() { return m_joints[FootRight]; }
+ Joint GetJointValue(JointTypes index) { return m_joints[index]; }
+
+private:
+ Joint m_joints[20];
+};
+
+#endif
+