/// <summary> /// Handles the passed body /// </summary> /// <param name="b">Body object instance</param> /// <pre>b.isTracked == true && b.trackingId == trackingId</pre> /// <returns></returns> public override bool HandleBody(Body b) { var result = true; _serializedBody = "[BEGIN_BODY]\n"; foreach (var j in b.Joints) { if (j.Value.TrackingState != TrackingState.Tracked) { result = false; } _serializedBody += j.Key + ":"; _serializedBody += KinectMathAdapter.Point3DFromCameraSpacePoint(j.Value.Position) + "\n"; } _serializedBody += "[END_BODY]"; if (!result) { return(false); } OnValueComputed(_serializedBody); ResetOnValueComputedEvent(); return(true); }
private void _reader_FrameArrived(object sender, BodyFrameArrivedEventArgs e) { using (var frame = e.FrameReference.AcquireFrame()) { var fp = KinectMathAdapter.Plane3DFromVector4(frame.FloorClipPlane); OnFloorPlaneAvailable(fp); var bodies = new Body[frame.BodyCount]; frame.GetAndRefreshBodyData(bodies); foreach (var body in bodies) { if (!body.IsTracked) { continue; } BodyDataAvailable?.BeginInvoke(body, EndAsyncEvent, null); } } }