Example #1
0
        /// <summary>
        /// Converts the Recording to a json formatted string.
        /// </summary>
        /// <returns>Json formatted String.</returns>
        public string ToJSON()
        {
            StringBuilder sb = new StringBuilder("{");

            sb.AppendFormat("\"Name\": \"{0}\", ", FormattingUtil.JavaScriptStringEncode(RecordingName));
            sb.AppendFormat("\"Duration\": {0}, ", GetDuration());
            sb.AppendFormat("\"Metadata\": {0}, ", FormattingUtil.ToJSON(metadata));

            sb.Append("\"CustomEvents\": [");
            for (int i = 0; i < capturedCustomEvents.Length; i++)
            {
                sb.Append(capturedCustomEvents[i].ToJSON());
                if (i < capturedCustomEvents.Length - 1)
                {
                    sb.Append(",");
                }
            }

            sb.Append("], \"Subjects\": [");
            for (int i = 0; i < subjectRecordings.Length; i++)
            {
                sb.Append(subjectRecordings[i].ToJSON());
                if (i < subjectRecordings.Length - 1)
                {
                    sb.Append(",");
                }
            }
            sb.Append("] }");

            return(sb.ToString());
        }
Example #2
0
 /// <summary>
 /// Builds a string that represents a single row in a csv file that contains this object's data.
 /// </summary>
 /// <returns>A row of csv data as a string.</returns>
 public override string ToCSV()
 {
     return(string.Format(
                "{0}, {1}, {2}",
                Time,
                FormattingUtil.StringToCSVCell(Name),
                FormattingUtil.StringToCSVCell(Contents)
                ));
 }
Example #3
0
 /// <summary>
 /// Builds a JSON string that represents the CustomEventCapture object.
 /// </summary>
 /// <returns>A JSON string.</returns>
 public override string ToJSON()
 {
     return(string.Format(
                "{{ \"Time\": {0}, \"Name\": \"{1}\", \"Contents\": \"{2}\" }}",
                Time,
                FormattingUtil.JavaScriptStringEncode(Name),
                FormattingUtil.JavaScriptStringEncode(Contents)
                ));
 }
        /// <summary>
        /// Converts the Subject Recording to a json formatted string.
        /// </summary>
        /// <returns>Json formatted String.</returns>
        public string ToJSON()
        {
            StringBuilder sb = new StringBuilder("{ ");

            sb.AppendFormat("\"ID\": {0}, ", subjectID);
            sb.AppendFormat("\"Name\": \"{0}\", ", FormattingUtil.JavaScriptStringEncode(subjectName));
            sb.AppendFormat("\"Metadata\": {0}, ", FormattingUtil.ToJSON(metadata));
            sb.AppendFormat("\"Duration\": {0}, ", GetDuration());

            sb.Append(" \"LifeCycleEvents\": [");
            for (int i = 0; i < capturedLifeCycleEvents.Length; i++)
            {
                sb.Append(capturedLifeCycleEvents[i].ToJSON());
                if (i < capturedLifeCycleEvents.Length - 1)
                {
                    sb.Append(",");
                }
            }
            sb.Append("], ");

            sb.Append(" \"CustomEvents\": [");
            for (int i = 0; i < capturedCustomSubjectEvents.Length; i++)
            {
                sb.Append(capturedCustomSubjectEvents[i].ToJSON());
                if (i < capturedCustomSubjectEvents.Length - 1)
                {
                    sb.Append(",");
                }
            }
            sb.Append("], ");


            sb.Append(" \"Positions\": [");
            for (int i = 0; i < capturedPositions.Length; i++)
            {
                sb.Append(capturedPositions[i].ToJSON());
                if (i < capturedPositions.Length - 1)
                {
                    sb.Append(",");
                }
            }
            sb.Append("], ");

            sb.Append(" \"Rotations\": [");
            for (int i = 0; i < capturedRotations.Length; i++)
            {
                sb.Append(capturedRotations[i].ToJSON());
                if (i < capturedRotations.Length - 1)
                {
                    sb.Append(",");
                }
            }
            sb.Append("] }");

            return(sb.ToString());
        }
Example #5
0
        public EdgeTableVisualization GenerateEdgeTableVisualization([NotNull] EdgeData data)
        {
            var options = Settings.Current.VisualizationOptions;

            var backgroundBrush = new SolidColorBrush(options.BackgroundColor);

            var visual = new DrawingVisual();

            using (DrawingContext drawingContext = visual.RenderOpen())
            {
                // Draw background
                drawingContext.DrawRectangle(backgroundBrush, null, new Rect(0, 0, data.Size.Width, data.Size.Height));

                // Draw grid
                if (options.DrawGrid)
                {
                    DrawingUtil.DrawGrid(drawingContext, options.GridPen, data.Size.Width, data.Size.Height);
                }

                // Draw values
                foreach (var idx in data.Bounds.EnumerateEdge())
                {
                    var formattedText = new FormattedText(FormattingUtil.FormatShort(data[idx]),
                                                          CultureInfo.InvariantCulture, FlowDirection.LeftToRight,
                                                          options.TextTypeface, options.TextEmSize, options.ForegroundBrush)
                    {
                        TextAlignment = TextAlignment.Center
                    };
                    drawingContext.DrawText(formattedText,
                                            new Point(idx.J + 0.5f, idx.I + 0.5f - formattedText.Height / 2f));
                }
            }

            var image = new DrawingImage(visual.Drawing);

            image.Freeze();
            return(new EdgeTableVisualization(image, data));
        }
Example #6
0
        private void ExportSingle(string dir, Recording recording)
        {
            StringBuilder subjects = new StringBuilder("ID, Name\n");

            foreach (var rec in recording.SubjectRecordings)
            {
                subjects.AppendFormat(
                    "{0}, {1}\n",
                    rec.SubjectID,
                    FormattingUtil.StringToCSVCell(rec.SubjectName)
                    );
            }

            StringBuilder customEvents = new StringBuilder("SubjectID, Time, Name, Contents\n");

            foreach (var rec in recording.SubjectRecordings)
            {
                foreach (var e in rec.CapturedCustomEvents)
                {
                    customEvents.AppendFormat(
                        "{0}, {1}\n",
                        rec.SubjectID,
                        e.ToCSV()
                        );
                }
            }
            foreach (var e in recording.CapturedCustomEvents)
            {
                customEvents.AppendFormat(
                    "{0}, {1}\n",
                    -1,
                    e.ToCSV()
                    );
            }

            StringBuilder positionData = new StringBuilder("SubjectID, Time, X, Y, Z\n");

            foreach (var rec in recording.SubjectRecordings)
            {
                foreach (var e in rec.CapturedPositions)
                {
                    positionData.AppendFormat(
                        "{0}, {1}\n",
                        rec.SubjectID,
                        e.ToCSV()
                        );
                }
            }

            StringBuilder rotationData = new StringBuilder("SubjectID, Time, X, Y, Z\n");

            foreach (var rec in recording.SubjectRecordings)
            {
                foreach (var e in rec.CapturedRotations)
                {
                    rotationData.AppendFormat(
                        "{0}, {1}\n",
                        rec.SubjectID,
                        e.ToCSV()
                        );
                }
            }

            StringBuilder lifecycleData = new StringBuilder("SubjectID, Time, Event\n");

            foreach (var rec in recording.SubjectRecordings)
            {
                foreach (var e in rec.CapturedLifeCycleEvents)
                {
                    lifecycleData.AppendFormat(
                        "{0}, {1}\n",
                        rec.SubjectID,
                        e.ToCSV()
                        );
                }
            }

            StringBuilder subjectMetaData = new StringBuilder("SubjectID, Key, Value\n");

            foreach (var rec in recording.SubjectRecordings)
            {
                foreach (var e in rec.Metadata)
                {
                    subjectMetaData.AppendFormat(
                        "{0}, {1}, {2}\n",
                        rec.SubjectID,
                        FormattingUtil.StringToCSVCell(e.Key),
                        FormattingUtil.StringToCSVCell(e.Value)
                        );
                }
            }
            foreach (var e in recording.Metadata)
            {
                subjectMetaData.AppendFormat(
                    "{0}, {1}, {2}\n",
                    -1,
                    FormattingUtil.StringToCSVCell(e.Key),
                    FormattingUtil.StringToCSVCell(e.Value)
                    );
            }

            File.WriteAllText(Path.Combine(dir, "Subjects.csv"), subjects.ToString());
            File.WriteAllText(Path.Combine(dir, "SubjectMetaData.csv"), subjectMetaData.ToString());
            File.WriteAllText(Path.Combine(dir, "CustomEvents.csv"), customEvents.ToString());
            File.WriteAllText(Path.Combine(dir, "PositionData.csv"), positionData.ToString());
            File.WriteAllText(Path.Combine(dir, "RotationData.csv"), rotationData.ToString());
            File.WriteAllText(Path.Combine(dir, "LifeCycleEvents.csv"), lifecycleData.ToString());
            EditorUtility.RevealInFinder(dir);
        }