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; }
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; }
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; }