AlphaTab.Rendering.Staves.BarLayoutingInfo.Finish C# (CSharp) Method

Finish() public method

public Finish ( ) : void
return void
        public void Finish()
        {
            CalculateSpringConstants();
        }

Usage Example

Beispiel #1
0
        public AddBarsToStaveGroupResult AddBars(Track[] tracks, int barIndex)
        {
            if (tracks.Length == 0)
            {
                return(null);
            }

            var result    = new AddBarsToStaveGroupResult();
            var score     = tracks[0].Score;
            var masterBar = score.MasterBars[barIndex];

            MasterBars.Add(masterBar);

            Helpers.BuildHelpers(tracks, barIndex);

            if (!_accoladeSpacingCalculated && Index == 0)
            {
                _accoladeSpacingCalculated = true;
                var canvas = Layout.Renderer.Canvas;
                var res    = Layout.Renderer.RenderingResources.EffectFont;
                canvas.Font = res;
                for (var i = 0; i < tracks.Length; i++)
                {
                    AccoladeSpacing = Math.Max(AccoladeSpacing, canvas.MeasureText(tracks[i].ShortName));
                }
                AccoladeSpacing += (2 * AccoladeLabelSpacing);
                Width           += AccoladeSpacing;
            }

            // add renderers
            var maxSizes = new BarLayoutingInfo();

            for (int i = 0, j = Staves.Count; i < j; i++)
            {
                var g = Staves[i];
                for (int k = 0, l = g.Staves.Count; k < l; k++)
                {
                    var s = g.Staves[k];
                    s.AddBar(g.Track.Staves[s.ModelStaff.Index].Bars[barIndex]);
                    s.BarRenderers[s.BarRenderers.Count - 1].RegisterLayoutingInfo(maxSizes);
                    if (s.BarRenderers[s.BarRenderers.Count - 1].IsLinkedToPrevious)
                    {
                        result.IsLinkedToPrevious = true;
                    }
                }
            }

            maxSizes.Finish();

            // ensure same widths of new renderer
            var realWidth = 0f;

            for (int i = 0, j = _allStaves.Count; i < j; i++)
            {
                var s = _allStaves[i];
                s.BarRenderers[s.BarRenderers.Count - 1].ApplyLayoutingInfo();
                if (s.BarRenderers[s.BarRenderers.Count - 1].Width > realWidth)
                {
                    realWidth = s.BarRenderers[s.BarRenderers.Count - 1].Width;
                }
            }

            Width       += realWidth;
            result.Width = realWidth;

            return(result);
        }
All Usage Examples Of AlphaTab.Rendering.Staves.BarLayoutingInfo::Finish