コード例 #1
0
        private void BodyFrameReader_FramedArrived(object sender, BodyFrameArrivedEventArgs e)
        {
            var reference = e.FrameReference.AcquireFrame();

            using (BodyFrame frame = e.FrameReference.AcquireFrame())
            {
                if (frame != null)
                {
                    canvas.Children.Clear();

                    _bodies = new Body[frame.BodyFrameSource.BodyCount];

                    frame.GetAndRefreshBodyData(_bodies);
                    IList <Body> trackedBodies = new List <Body>();

                    foreach (var body in _bodies)
                    {
                        if (body != null)
                        {
                            if (body.IsTracked)
                            {
                                trackedBodies.Add(body);
                                // Draw skeleton.
                                if (_displayBody)
                                {
                                    canvas.DrawSkeleton(body);
                                }
                            }
                        }
                    }

                    if (trackedBodies.Count > 0)
                    {
                        var bodyEventModel = new BodyEventModel(trackedBodies);

                        wsClient.SendData(BodySerializer.SerializeBodies(bodyEventModel));
                    }
                }
            }
        }
コード例 #2
0
        public static string SerializeBodies(BodyEventModel bodyEvent)
        {
            Value jsonValue = new Value {
                Bodies = new List <JSONBody>()
            };

            foreach (var body in bodyEvent.Bodies)
            {
                JSONBody jsonBody = new JSONBody
                {
                    ID     = body.TrackingId.ToString(),
                    Joints = new List <JSONJoint>()
                };

                foreach (var bodyJoint in body.Joints)
                {
                    Joint joint = bodyJoint.Value;

                    jsonBody.Joints.Add(new JSONJoint
                    {
                        Name = joint.JointType.ToString().ToLower(),
                        X    = joint.Position.X,
                        Y    = joint.Position.Y,
                        Z    = joint.Position.Z
                    });
                }

                jsonValue.Bodies.Add(jsonBody);
            }

            JSONEvent jsonEvent = new JSONEvent {
                Id = bodyEvent.Id, Event = bodyEvent.Event, Ts = bodyEvent.Timestamp, Value = jsonValue
            };

            return(Serialize(jsonEvent));
        }