private void UpdatePointsOfType(PhonemeType type) { var points = PointsOfType(type); var projectPoints = ProjectLine.PointsOfType(type, virtuals: false); var phonemes = ProjectLine.Recline.PhonemesOfType(type); for (int i = 0; i < points.Count; i++) { var point = points[i]; var wasEnabled = point.IsEnabled; point.IsEnabled = i < projectPoints.Count; if (point.IsEnabled) { var position = Settings.RealToViewX(projectPoints[i]); point.Position = position; point.Update(PointIsLeft(type, i), phonemes[i / 2].Alias); } else { point.Position = -1; } if (IsEnabled != wasEnabled) { point.FireChanged(); } } }
private void ResetPointsOfType(PhonemeType type) { ProjectLine.PointsOfType(type, false).Clear(); ProjectLine.ZonesOfType(type).Clear(); PointsOfType(type).Clear(); ZonesOfType(type).Clear(); FirePointsChanged(); }
private void BuildZones(ObservableCollection <WavZoneViewModel> zones, PhonemeType type) { if (ProjectLine == null) { return; } var points = ProjectLine.PointsOfType(type); zones.Clear(); var kindaWitdh = Width > 0 ? Width : 2000; for (int i = 0; i + 1 < points.Count; i += 2) { var pIn = Settings.RealToViewX(points[i]); var pOut = Settings.RealToViewX(points[i + 1]); zones.Add(new WavZoneViewModel(type, pIn, pOut, kindaWitdh, (int)Height)); } return; }