public virtual void DoLayout()
{
Helpers = Staff.StaveGroup.Helpers.Helpers[Bar.Staff.Track.Index][Bar.Staff.Index][Bar.Index];
for (int i = 0; i < Bar.Voices.Count; i++)
{
var voice = Bar.Voices[i];
var c = new VoiceContainerGlyph(0, 0, voice);
c.Renderer = this;
_voiceContainers[Bar.Voices[i].Index] = c;
}
CreatePreBeatGlyphs();
CreateBeatGlyphs();
CreatePostBeatGlyphs();
var postBeatStart = 0f;
foreach (var voice in _voiceContainers)
{
var c = _voiceContainers[voice];
c.X = BeatGlyphsStart;
c.DoLayout();
var x = c.X + c.Width;
if (postBeatStart < x)
{
postBeatStart = x;
}
}
_postBeatGlyphs.X = postBeatStart;
Width = _postBeatGlyphs.X + _postBeatGlyphs.Width;
}