Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        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);
                }
            }
        }