using System.Diagnostics;
using System.Threading.Tasks;
public async Task WriteLimbDataAsText()
Debug.Log(new string('-', 80));
Debug.Log("Writing Data as Text -------");
Debug.Log(new string('-', 80));
var sw = new Stopwatch();
m_data = writer.mocapData;
var headers = m_data.data_header.l_names; // Headers: ONLY ONE OCCURRENCE
var data = m_data.data; // Data: PER FRAME OCCURRENCE
var sequence_lengths = m_data.originalSequenceLengths;
Debug.Log(sequence_lengths.Count);
var d_count = data.Count;
// 0 -- CREATE MAIN STRINGBUILDERs ---------
var sb = new StringBuilder(); // for data
var l_sb = new StringBuilder(); // for data labels
// 1 -- WRITE HEADERS ---------------------
var h_sb = new StringBuilder();
h_sb.Append("Sequence_ID,");
for (int i = 0; i < headers.Length; i++)
h_sb.Append(headers[i] + "_Xpos,");
h_sb.Append(headers[i] + "_Ypos,");
h_sb.Append(headers[i] + "_Zpos,");
h_sb.Append(headers[i] + "_Xrot,");
h_sb.Append(headers[i] + "_Yrot,");
h_sb.Append(headers[i] + "_Zrot,");
h_sb.Append(headers[i] + "_Xdir,");
h_sb.Append(headers[i] + "_Ydir,");
h_sb.Append(headers[i] + "_Zdir,");
sb.AppendLine(h_sb.ToString());
l_sb.AppendLine("Sequence_ID,Labels");
var step = window_length - window_overlap;
Debug.Log($"The step is {step} frames");
await Task.Run(async () =>
for (int j = 0; j < sequence_lengths.Count; j++)
// The length of the current sequence
//var currentSequenceFrames = new_lengths.Length;
Debug.Log($"--------- SEQUENCE {j} - {sequence_lengths[j]} FRAMES ----------------");
while (window_index < sequence_lengths[j] - window_length)
Debug.Log($">>> JUMP TO {window_index}");
Debug.Log($">>> >>> local: {window_index} | global: {window_start_index + window_index}");
// Grabbing values by full window length
for (i = window_index; i < window_index + window_length; i++)
var index = window_start_index + i;
//Debug.Log($">>> >>> local: {i} | global: {index}");
// Simulate a small delay to mimic processing
Debug.Log($">>> >>> local: {i} | global: {window_start_index + i}");
window_start_index += sequence_lengths[j];
Debug.Log($"--------- END OF SEQUENCE {j} - GLOBAL INDEX JUMPED TO {window_start_index} ----------------");
Debug.Log($"Writing Data as Text completed in {sw.ElapsedMilliseconds} ms");