public void MoveTo(Measure measure, ScoreRendererSettings rendererSettings) { var measureIndex = measure.Staff.Measures.IndexOf(measure); var previousMeasure = measureIndex < 1 ? null : measure.Staff.Measures[measureIndex - 1]; if (rendererSettings.RenderingMode != ScoreRenderingModes.Panorama && previousMeasure != null && previousMeasure.System != measure.System) { CursorPositionX = 0; //Issue #40 - jeśli takt był w innym systemie, to wyzeruj karetkę } else { CursorPositionX = previousMeasure?.BarlineLocationX ?? 0; } CurrentStaff = measure.Staff; CurrentSystem = measure.System; var firstNoteOrRest = measure.Elements.OfType <NoteOrRest>().FirstOrDefault(); if (firstNoteOrRest != null) { CurrentClef = measure.Staff.Peek <Clef>(firstNoteOrRest, Model.PeekStrategies.PeekType.PreviousElement); CurrentClef.TextBlockLocation = new Primitives.Point(CursorPositionX, CurrentLinePositions[4] - (CurrentClef.Line - 1) * rendererSettings.LineSpacing); CurrentKey = measure.Staff.Peek <Key>(firstNoteOrRest, Model.PeekStrategies.PeekType.PreviousElement); } }
public void MoveToContent(Measure measure, ScoreRendererSettings rendererSettings) { var firstElement = measure.Elements.FirstOrDefault(); if (firstElement is PrintSuggestion || firstElement is NoteOrRest) { CursorPositionX = measure.FirstNoteInMeasureXPosition; } }
public BoundingBox GetSMuFLBoundingBoxPx(ISMuFLFontMetadata metadata, ScoreRendererSettings settings) { var bbox = GetSMuFLBoundingBox(metadata); return(new BoundingBox { BBoxNe = new double[] { bbox.BBoxNe[0] * settings.LineSpacing, bbox.BBoxNe[1] * settings.LineSpacing }, BBoxSw = new double[] { bbox.BBoxSw[0] * settings.LineSpacing, bbox.BBoxSw[1] * settings.LineSpacing } }); }
private double CalculateStaffLineWidth(Staff staff, StaffSystem system, ScoreRendererSettings settings) { var lastMeasureInSystem = staff.Measures.LastOrDefault(m => m.System == system); var endPositionX = lastMeasureInSystem?.BarlineLocationX ?? system.Width; if (endPositionX == 0) { endPositionX = system.Width; } if (settings.RenderingMode != ScoreRenderingModes.Panorama) { endPositionX = ExtendXPositionForMemoElements(endPositionX, lastMeasureInSystem, staff, system); } return(endPositionX); }