/// <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()); }
/// <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) )); }
/// <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()); }
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)); }
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); }