Example #1
0
        public static ISkeleton CreateInMapSkeleton()
        {
            int centerY = 0;
            int neckY = 400;
            var centerOrientation = new Vector4(0, 0, 0, 0);
            var s = new InMapSkeleton{ Valid = true };

            foreach (var joint in CreateArm(Side.LEFT))
            {
                s.Add(joint);
            }

            foreach (var joint in CreateArm(Side.RIGHT))
            {
                s.Add(joint);
            }

            foreach (var joint in CreateLeg(Side.LEFT))
            {
                s.Add(joint);
            }

            foreach (var joint in CreateLeg(Side.RIGHT))
            {
                s.Add(joint);
            }

            s.Add(CreateHead());
            s.Add(new OrientedJoint(JointType.NECK, true) { Point = new Vector3(0, neckY, 0) });
            s.Add(new OrientedJoint(JointType.CENTER, true) { Point = new Vector3(0, centerY, 0), Orientation = centerOrientation });
            s.Root = s.GetJoint(JointType.CENTER);

            return s;
        }
Example #2
0
        public ISkeleton Clone()
        {
            var s = new InMapSkeleton(id, valid, timestamp);
            lock (_joints)
            {
                foreach (var key in _joints.Keys)
                {
                    s._joints.Add(key, _joints[key]);
                }
            }

            return s;
        }
Example #3
0
        private ISkeleton CreateSkeleton(KinectV2::Microsoft.Kinect.Body body)
        {
            var newSkeleton = new InMapSkeleton { ID = (uint) body.TrackingId };

            UpdateSkeleton(body, newSkeleton);

            return newSkeleton;
        }
Example #4
0
        /// <summary>
        /// Creates the skeleton.
        /// </summary>
        /// <returns>The skeleton.</returns>
        /// <param name="initSkeleton">Init skeleton.</param>
	    private ISkeleton CreateSkeleton(KinectV1::Microsoft.Kinect.Skeleton initSkeleton)
	    {
            var s = new InMapSkeleton { ID = (uint)initSkeleton.TrackingId };
	        foreach (var jointMapping in mapping)
	        {
                var joint = new OrientedJoint
                {
                    JointType = jointMapping.Key,
                    Point = ToVec3(initSkeleton.Joints[jointMapping.Value].Position),
                    Orientation = ToVec4(initSkeleton.BoneOrientations[jointMapping.Value].AbsoluteRotation.Quaternion),
                    Valid = initSkeleton.Joints[jointMapping.Value].TrackingState == JointTrackingState.Tracked
                };
                s.UpdateSkeleton(joint.JointType, joint);

            }
            // TODO: iterate over all data in array 
            s.Valid = initSkeleton.TrackingState == SkeletonTrackingState.Tracked;
	        return s;
	    }