private BodyPart ExtractData(IJoint joint)
 {
     var rotation = joint.Orientation;
     var worldCoordinate = joint.Point;
     var part = new BodyPart
     {
         Id = joint.JointType.ToInt(),
         Position = worldCoordinate,
         Rotation = rotation,
         Length = Creator.GetDefaultBoneLength(joint.JointType),
         Velocity = new Vector3(),
         Acceleration = new Vector3(),
         AngularVelocity = new Vector3(),
         AngularAcceleration = new Vector3()
     };
     return part;
 }
 /// <summary>
 /// Lefts the hand.
 /// </summary>
 /// <returns>The hand.</returns>
 /// <param name="hand">Frame.</param>
 /// <param name="jt"></param>
 private static IEnumerable<BodyPart> CreateHand(Hand hand, JointType jt)
 {
     var palmNormal = hand.PalmNormal;
     var handPosition = hand.PalmPosition;
     var handPart = new BodyPart
     {
         Id = jt.ToInt(),
         Rotation = new Vector4(palmNormal.x, palmNormal.y, palmNormal.z, 0),
         Position = new Vector3(handPosition.x, handPosition.y, handPosition.z),
         Velocity = new Vector3(hand.PalmVelocity.x, hand.PalmVelocity.y, hand.PalmVelocity.z)
     };
     // TODO: should we add the hand palm to the list?
     var parts = new List<BodyPart> {  };
     parts.AddRange(
         hand.Fingers.Select(
             finger => CreateFinger(finger, FingerType2JointType(finger.Type, JointType.HAND_LEFT == jt ? 1 : -1))
         ).SelectMany(x => x)
     );
     return parts;
 }
	    public void AddCollider(BodyPart part)
	    {
            BodyParts.Add(part);
	    }