Ejemplo n.º 1
0
 public void act(Body bodyIn)
 {
     body = bodyIn;
     ThreadStart act = new ThreadStart (CallToActThread);
     Thread ActThread = new Thread (act);
     ActThread.Start ();
 }
 public void ProcessBodyFrame(Body body)
 {
     var now = DateTime.Now;
     _positions.AddLast(new LinkedListNode<PosInfo>(new PosInfo {x = body[_joint].X, when = now}));
     var overTreshold = OverTreshold(now);
     if (!_previouslyOverTreshold && overTreshold) OnStarted();
     else if (_previouslyOverTreshold && !overTreshold) OnEnded();
     _previouslyOverTreshold = overTreshold;
 }
Ejemplo n.º 3
0
 private void DrawPositions(Body body)
 {
     dotGreen.SetValue(Canvas.LeftProperty, 0.5*(canvas.ActualWidth + canvas.ActualWidth*body.Head.X));
     dotGreen.SetValue(Canvas.TopProperty, 0.5*(canvas.ActualHeight - canvas.ActualHeight*body.Head.Y));
     dotBlue.SetValue(Canvas.LeftProperty, 0.5*(canvas.ActualWidth + canvas.ActualWidth*body.RightHand.X));
     dotBlue.SetValue(Canvas.TopProperty, 0.5*(canvas.ActualHeight - canvas.ActualHeight*body.RightHand.Y));
     dotRed.SetValue(Canvas.LeftProperty, 0.5*(canvas.ActualWidth + canvas.ActualWidth*body.LeftHand.X));
     dotRed.SetValue(Canvas.TopProperty, 0.5*(canvas.ActualHeight - canvas.ActualHeight*body.LeftHand.Y));
 }
 public void ProcessBodyFrame(Body body)
 {
     TimeSpan sinceLastChange = DateTime.Now - _lastChange;
     if (sinceLastChange < ChangeTreshold) return;
     bool handOverHead = HandOverHead(body);
     if (_previouslyOver && !handOverHead) OnEnded();
     else if (!_previouslyOver && handOverHead) OnStarted();
     _previouslyOver = handOverHead;
 }
Ejemplo n.º 5
0
 private void SmoothenBody(Body currentBody)
 {
     if (_smoothBody == null) _smoothBody = currentBody;
     else
     {
         Vector head = _smoothBody.Head;
         head.X = (float) (_smoothBody.Head.X + _dampeningFactor*(currentBody.Head.X - _smoothBody.Head.X));
         head.Y = (float) (_smoothBody.Head.Y + _dampeningFactor*(currentBody.Head.Y - _smoothBody.Head.Y));
         _smoothBody.Head = head;
         Vector left = _smoothBody.LeftHand;
         left.X = (float) (_smoothBody.LeftHand.X + _dampeningFactor*(currentBody.LeftHand.X - _smoothBody.LeftHand.X));
         left.Y = (float) (_smoothBody.LeftHand.Y + _dampeningFactor*(currentBody.LeftHand.Y - _smoothBody.LeftHand.Y));
         _smoothBody.LeftHand = left;
         Vector right = _smoothBody.RightHand;
         right.X = (float) (_smoothBody.RightHand.X + _dampeningFactor*(currentBody.RightHand.X - _smoothBody.RightHand.X));
         right.Y = (float) (_smoothBody.RightHand.Y + _dampeningFactor*(currentBody.RightHand.Y - _smoothBody.RightHand.Y));
         _smoothBody.RightHand = right;
     }
 }
 private bool HandOverHead(Body body)
 {
     return body[_joint].Y > body[JointID.Head].Y;
 }