public void AddScorePartwise(ScorePartwiseMusicXML scorePartXML) { if (scorePartXML == null) { throw new NullReferenceException("null scorePart object"); //! temp } IsBlank = false; partwise = scorePartXML; PagesCollection = new ObservableCollection <UIElement>(); PartProperties pp = ViewModelLocator.Instance.Main.PartsProperties[scorePartXML.Part[0].Id]; bool autoLayoutSupport = ViewModelLocator.Instance.Main.CurrentScoreProperties.AutoLayoutSupportByScore; //autoLayoutSupport = false; if (autoLayoutSupport) { foreach (var pages in pp.PartSysemsInPages) { AddPageToCollection(scorePartXML); } } else { advancedLayout = new AdvancedMeasureLayout(partwise); PagesCollection = advancedLayout.PagesCollection; } }
private void SetDefaultDistances(ScorePartwiseMusicXML score) { var layout = ViewModel.ViewModelLocator.Instance.Main.CurrentLayout; _defaultSystemDistance = 2.5 * layout.PageProperties.StaffHeight.MMToTenths(); _defaultTopSystemDistance = 3 * layout.PageProperties.StaffHeight.MMToTenths(); _defaultStaffDistance = 1.7 * layout.PageProperties.StaffHeight.MMToTenths(); if (score.Defaults != null) { if (score.Defaults.StaffLayout != null) { if (score.Defaults.StaffLayout.Count != 0) { _defaultStaffDistance = score.Defaults.StaffLayout[0].StaffDistance; } } if (score.Defaults.SystemLayout != null) { if (score.Defaults.SystemLayout.SystemDistanceSpecified) { _defaultSystemDistance = score.Defaults.SystemLayout.SystemDistance; } if (score.Defaults.SystemLayout.TopSystemDistanceSpecified) { _defaultTopSystemDistance = score.Defaults.SystemLayout.TopSystemDistance; } } } }
internal void GenerateMeasureSegments(ScorePartwiseMusicXML scoreFile, bool allParts = true, List <string> partIDs = null) { if (!allParts) { if (partIDs != null) { InitPartIDs(partIDs); } else { Log.LoggIt.Log("List of part ID's was empty. Generated Measure Segments for all parts instead"); InitPartIDs(scoreFile.Part.Select(x => x.Id).ToList()); } } else { InitPartIDs(scoreFile.Part.Select(x => x.Id).ToList()); } foreach (var part in scoreFile.Part) { int stavesCount = part.GetStavesCount(); foreach (var measure in part.Measure) { MeasureSegmentController measureSegmentController = new MeasureSegmentController(measure, part.Id, stavesCount); AddMeasureSegmentController(measureSegmentController, part.Id); } } }
private void SetMainFields(ScorePartwiseMusicXML score, string partIdValue) { _partId = partIdValue; _currentPart = score.Part.FirstOrDefault(i => i.Id == _partId); _partIndex = score.Part.FindIndex(i => i.Id == _partId); FindPartSystems(score); _numberOfStaves = score.Part[_partIndex].GetStavesCount(); }
public ScoreProperties(ScorePartwiseMusicXML score) { _score = score; AutoLayoutSupportByScore = _score.LayoutInsideScore; Id = _score.ID; if (score != null) { InitScoreProperties(); } }
public ScorePartwiseBuilder() { score = new ScorePartwiseMusicXML { Partlist = new PartListMusicXML { ScoreParts = new List <ScorePartMusicXML>() }, Part = new List <ScorePartwisePartMusicXML>() }; }
private void AddPageToCollection(ScorePartwiseMusicXML sp) //default page { id = sp.ID; int index = pageCollection.Count; PageViewModel pvm = new PageViewModel(sp, index); PagesCollection.Add(new PageView { DataContext = pvm }); }
public PageViewModel(ScorePartwiseMusicXML scorePartwise, int index) { pageIndex = index; newPage = new PageDrawingSystem(scorePartwise, pageIndex); Point dimensions = ViewModelLocator.Instance.Main.CurrentPageLayout.PageDimensions.GetPageDimensionsInPx(); PageWidth = dimensions.X; PageHeight = dimensions.Y; PageCanvas.Add(newPage.PageCanvas); }
public PartProperties(ScorePartwiseMusicXML score, string partId) { SetMainFields(score, partId); SetDefaultDistances(score); List <ScorePartwisePartMeasureMusicXML> measuresInPart = score.Part[_partIndex].Measure; GetLayoutInfo(measuresInPart); SetSystemMeasureRanges(); SetPartHeight(); GenerateDivisionChanges(); }
private void InitParts(ScorePartwiseMusicXML score) { if (score.Part != null) { _partProperties = new Dictionary <string, PartProperties>(); foreach (var part in score.Part) { _partProperties.Add(part.Id, new PartProperties(score, part.Id)); } } }
//! --------------------- !test ------------------- public PageDrawingSystem(ScorePartwiseMusicXML score, int pageIndex) { _pageIndex = pageIndex; _score = score; _pageLayout = ViewModelLocator.Instance.Main.CurrentLayout; _pageDimensions = _pageLayout.PageProperties.PageDimensions.Dimensions; PageCanvas = new Canvas { Width = _pageDimensions.Width, Height = _pageDimensions.Height }; GenerateAndDraw(); }
/// <summary> /// Finds Largest measure width of passed measureNumber among all parts of Score /// </summary> /// <param name="score"></param> /// <param name="measureNumber"></param> /// <returns>Largest Measure width among all parts</returns> public static double GetLargestWidth(this ScorePartwiseMusicXML score, string measureNumber) { double result = score.Part[0].GetMeasureUsingId(measureNumber).Width; foreach (var part in score.Part) { double width = part.GetMeasureUsingId(measureNumber).Width; if (width > result) { result = width; } } return(result); }
public PagesControllerViewModel(ScorePartwiseMusicXML score) { partwise = score; PagesCollection = new ObservableCollection <UIElement>(); AddPageCommand = new RelayCommand(AddAdvancedEmptyPage); var cMenu = new ContextMenu(); var item = new MenuItem() { Header = "Add New Page", Command = AddPageCommand }; cMenu.Items.Add(item); ContextMenu = cMenu; measureSegmentContainer = new MeasureSegmentContainer(); measureSegmentContainer.GenerateMeasureSegments(score); }
/// <summary> /// Find and set largest measure width among all parts /// </summary> /// <param name="score"></param> public static void SetLargestMeasureWidth(this ScorePartwiseMusicXML score) { foreach (var measure in score.Part[0].Measure) { string id = measure.Number; var maxWidth = score.GetLargestWidth(id); if (maxWidth.Equals4DigitPrecision(0.0)) { maxWidth = 120; } foreach (var part in score.Part) { var m = part.GetMeasureUsingId(id); m.CalculatedWidth = maxWidth; } } }
public void AddScore(ScorePartwiseMusicXML score) { //! Layout init before scoreProperties LayoutGeneral layout = new LayoutGeneral(score); CurrentLayoutProperties = layout; _scoreLayoutContainer.Add(score.ID, layout); ScoreProperties scoreProperties = new ScoreProperties(score); _scorePropertiesContainer.Add(score.ID, scoreProperties); SelectScore(score.ID); if (AutoLayoutSupported) { CurrentScoreProperties.AddAttributes(); } }
public AdvancedMeasureLayout(ScorePartwiseMusicXML score) { _scoreFile = score; GenerateMeasureSegments(); FindOptimalMeasureWidths(); }
public LayoutGeneral(ScorePartwiseMusicXML score) { pageProperties = score != null? new PageProperties(score.Defaults): null; layoutStyle = new Layout(score); }
public Layout(ScorePartwiseMusicXML score) : this() { }
private void FindPartSystems(ScorePartwiseMusicXML score) { _partSysemsInPages = score.Part[_partIndex].TryGetLinesPerPage(); }
private void InitTimeSignatures(ScorePartwiseMusicXML score) { _timeSignatures = new TimeSignatures(score); }