public Frame getCopyFrame() { return(FactoryFrame.createFrame(IdFrame, new List <Person>(Persons))); }
public List <Frame> readData() { Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); List <Frame> frames = new List <Frame>(); string[] dataLines = null; //read lines from data file try { dataLines = File.ReadAllLines(DataFile); } catch (FileNotFoundException e) { Console.Write("Errore file data: "); Console.WriteLine(e.Message); } int i = 0; //counter on data lines // int j = 0; //counter on gt lines while (i < dataLines?.Length) { //first line has to be a frame header in both files Match dataMatch = Regex.Match(dataLines[i], framePattern); if (dataMatch.Success) { int id = Int32.Parse(dataMatch.Groups[1].Value); //frame id int n_people = Int32.Parse(dataMatch.Groups[2].Value); //people inside frame List <Person> people = new List <Person>(); // Frame newFrame = FactoryFrame.createEmptyFrame(id); //create empty frame for (int k = 1; k <= n_people; k++) { Match p = Regex.Match(dataLines[i + k], personPattern); if (p.Success) { int pId = Int32.Parse(p.Groups[1].Value); double x = Double.Parse(p.Groups[2].Value); double y = Double.Parse(p.Groups[3].Value); double theta = Double.Parse(p.Groups[4].Value); people.Add(FactoryPerson.createPerson(pId, x, y, theta, k - 1)); //add the person to the list } } //create the frame frames.Add(FactoryFrame.createFrame(id, people)); //update i i = i + n_people + 1; } else { i++; } } Debug.WriteLine("Parser: Frames created: " + frames.Count + " frames"); return(frames); }