Beispiel #1
0
 private void OnJointTrackingCaptured(MovingJoint joint, DateTime timeStamp)
 {
     if (JointTrackingCaptured != null)
     {
         JointTrackingCaptured(joint, timeStamp);
     }
 }
Beispiel #2
0
        private void AlertJoints(MovingJoint joint, DateTime timeStamp)
        {
            IJointFrameParameter parameter = GetJointFrameParameter(joint, timeStamp);
            previousMovingJoint = joint;
            previousTimeStamp = timeStamp;

            Joints jointsToAlert = joints.GetJointsOfType(joint.JointType);
            foreach (Joint jointToAlert in jointsToAlert)
            {
                jointToAlert.JointTrackingFrameCaptured(parameter);
            }
        }
Beispiel #3
0
 public void JointTrackingCaptured(KinectUtilities.JointTracking.MovingJoint joint, DateTime timeStamp)
 {
     if (joint.JointType == KinectUtilities.JointTracking.JointType.ElbowRight)
     {
         if (bendAngleFrameCount % updateFrequency == 0)
         {
             bendAngleFrameCount = 1;
             UpdateJointBendAngle(joint, timeStamp);
         }
         else
         {
             bendAngleFrameCount++;
         }
     }
 }
Beispiel #4
0
        private void TrackSkeletonJoints(Microsoft.Kinect.Skeleton skeleton, DateTime timeStamp)
        {
            // Tracks the MovingJoints in the specified skeleton.
            foreach (JointType jointType in JointUtilities.MovingJoints)
            {
                // RBakerFlag -> Needs to be refactored. Need to fire event.
                JointType[] connectedJoints = JointUtilities.GetConnectedJoints(jointType);
                if (!ShouldTrackJoint(skeleton, jointType, connectedJoints))
                {
                    continue;
                }

                Vertex3   jointPosition           = GetJointPosition(skeleton, jointType);
                Vertex3[] connectedJointPositions = GetJointPositions(skeleton, connectedJoints);

                Vector3 boneA     = new Vector3(connectedJointPositions[0], jointPosition);
                Vector3 boneB     = new Vector3(connectedJointPositions[1], jointPosition);
                double  bendAngle = Vector3Functions.Angle(boneA, boneB);

                MovingJoint movingJoint = new MovingJoint(jointType, jointPosition, bendAngle);
                OnJointTrackingCaptured(movingJoint, timeStamp);
            }
        }
Beispiel #5
0
 private IJointFrameParameter GetJointFrameParameter(MovingJoint joint, DateTime timeStamp)
 {
     // RBakerFlag -> For now, default to this.
     TimeSpan timeSpan = GetTimeSpanSinceLastCapture(timeStamp);
     // AngularVelocityJointFrameParameter parameter = new AngularVelocityJointFrameParameter(joint, timeSpan);
     AngularDisplacementJointFrameParameter parameter = new AngularDisplacementJointFrameParameter(joint, previousMovingJoint, timeSpan);
     return parameter;
 }
Beispiel #6
0
 private void jointController_JointTrackingCaptured(MovingJoint joint, DateTime timeStamp)
 {
     if (frameCount % framesFrequencyFilter == 0)
     {
         frameCount = 1;
         AlertJoints(joint, timeStamp);
     }
     else
     {
         frameCount += 1;
     }
 }
 public AngularVelocityJointFrameParameter(MovingJoint movingJoint, TimeSpan timeSpan)
 {
     this.movingJoint = movingJoint;
     this.timeSpan = timeSpan;
 }
Beispiel #8
0
 public void UpdateJointBendAngle(MovingJoint joint, DateTime timeStamp)
 {
     if (this.InvokeRequired)
     {
         UpdateBendAngleEventHandler d = new UpdateBendAngleEventHandler(UpdateJointBendAngle);
         this.Invoke(d, new object[] { joint, timeStamp });
     }
     else
     {
         //jointTrackingUpdateTextBox.BeginUpdate();
         jointTrackingUpdateTextBox.Text = joint.BendAngle.ToString();
         //jointTrackingUpdateTextBox.EndUpdate();
     }
 }