internal static SelectedRange CreateSelectedRange(VertexLibrary vertices, ObservableCollection <Line> lines, double leftX, double rightX, double topY, double bottomY) { Func <Vertex, bool> conditionVertex = v => v.X >= leftX && v.X <= rightX && v.Y >= bottomY && v.Y <= topY; Vertex[] selectedVertices = vertices.Values.Where(v => conditionVertex(v)).ToArray(); Line[] selectedLines = lines.Where(l => selectedVertices.Any(v => v.X == vertices[l.LeftID].X) && selectedVertices.Any(v => v.X == vertices[l.RightID].X)).ToArray(); return(new SelectedRange(new Box2d(leftX, topY, rightX, bottomY), selectedVertices, selectedLines)); }
internal Track() { PitchVertices = new VertexLibrary(); PitchLines = new ObservableCollection <Line>(); VolumeVertices = new VertexLibrary(); VolumeLines = new ObservableCollection <Line>(); SoundIndices = new ObservableCollection <Area>(); }
public object Clone() { VertexLibrary vertices = new VertexLibrary { lastID = lastID }; foreach (KeyValuePair <int, Vertex> vertex in this) { vertices.Add(vertex.Key, (Vertex)vertex.Value.Clone()); } return(vertices); }