/// <summary>
        /// Overrride Equals
        /// </summary>
        public override bool Equals(object obj)
        {
            if (obj.GetType() != typeof(FaceAnalytics))
            {
                return(false);
            }

            FaceAnalytics castedObj = (FaceAnalytics)obj;

            if (castedObj.BodyId != _bodyId || castedObj.KinectId != _kinectId)
            {
                return(false);
            }

            return(true);
        }
        /// <summary>
        /// Process the new Face Analytics
        /// </summary>
        /// <param name="fa"></param>
        private void OnFaceAnalyticsAvailable(FaceAnalytics fa)
        {
            // Close reader for this body
            _trackers[fa.BodyId].Close();
            _trackers.Remove(fa.BodyId);

            // Compose filename
            string fileName = string.Format("{0}/Face-Tracking-{1}.xml", _analyticsFolder, fa.BodyId);

            // Serialize to string
            string serializedAnalytics = GenericSerializer<FaceAnalytics>.SerializeToString(fa);

            // Convert to byte array
            byte[] rawAnalytics = Encoding.UTF8.GetBytes(serializedAnalytics);

            // Flush to disk
            using (FileStream fs = new FileStream(fileName, FileMode.Create))
            {
                fs.Write(rawAnalytics, 0, rawAnalytics.Length);
            }
        }