private DrumSequence DeleteFromIndex(int firstIndex) { DrumSequence newCopy = sequence.Clone(); newCopy.keys.RemoveRange(firstIndex, numElements); newCopy.coords.RemoveRange(firstIndex, numElements); return(newCopy); }
private DrumSequence GenerateAtIndex(int firstIndex) { //Treating these as immutable gives us quick access to Undo functionality which we probably want //List<DrumSequence.DrumKey> newKeys = new List<DrumSequence.DrumKey>(sequence.keys.Count); //List<Vector3> newCoords = new List<Vector3>(sequence.coords.Count); //newKeys = (List<DrumSequence.DrumKey>)sequence.keys.Select(_ => sequence.Clone().keys); //newCoords = (List<Vector3>)sequence.coords.Select(_ => sequence.Clone().coords); DrumSequence newCopy = sequence.Clone(); for (int i = 0; i < numElements; i++) { Vector3 coordinate = startCoord + (spacing * i); newCopy.keys.Insert(firstIndex + i, key); newCopy.coords.Insert(firstIndex + i, coordinate); } return(newCopy); }