/// <summary> /// Adds a new source rectagle to the back of the timeline /// </summary> /// <param name="r"></param> public void AddSourceRectangle(Rectangle r) { //Check if out array has yet to be filled if (_sourcerectangles[0] == new Rectangle(0, 0, 0, 0) && _sourcerectangles.Count() == 1) { _sourcerectangles[0] = r; return; } int upper = _sourcerectangles.GetUpperBound(0); var copy = new Rectangle[upper + 2]; for (int i = 0; i <= upper; i++) { copy[i] = _sourcerectangles[i]; } copy[copy.GetUpperBound(0)] = r; //Copy over the new array _sourcerectangles = (Rectangle[])copy.Clone(); }