protected override void CreateTies(Note n) { var renderer = (TabBarRenderer)Renderer; if (n.IsTieOrigin && renderer.ShowTiedNotes) { var tie = new TabTieGlyph(n, n.TieDestination, false); Ties.Add(tie); } if (n.IsTieDestination && renderer.ShowTiedNotes) { var tie = new TabTieGlyph(n.TieOrigin, n, false, true); Ties.Add(tie); } else if (n.IsHammerPullOrigin) { // only create tie for very first origin of "group" if (n.HammerPullOrigin == null) { // tie with end note Note destination = n.HammerPullDestination; while (destination.HammerPullDestination != null) { destination = destination.HammerPullDestination; } var tie = new TabTieGlyph(n, destination, false); Ties.Add(tie); } } else if (n.IsHammerPullDestination) { // only create tie for last destination of "group" // NOTE: HOPOs over more than 2 staffs does not work with this mechanism, but this sounds unrealistic if (n.HammerPullDestination == null) { Note origin = n.HammerPullOrigin; while (origin.HammerPullOrigin != null) { origin = origin.HammerPullOrigin; } var tie = new TabTieGlyph(origin, n, false, true); Ties.Add(tie); } } else if (n.SlideType == SlideType.Legato) { var tie = new TabTieGlyph(n, n.SlideTarget, true, false); Ties.Add(tie); } if (n.SlideType != SlideType.None) { var l = new TabSlideLineGlyph(n.SlideType, n, this); Ties.Add(l); } }
protected override void CreateTies(Note n) { if (n.IsHammerPullOrigin) { var tie = new TabTieGlyph(n, n.HammerPullDestination, this); Ties.Add(tie); } else if (n.SlideType == SlideType.Legato) { var tie = new TabTieGlyph(n, n.SlideTarget, this); Ties.Add(tie); } if (n.SlideType != SlideType.None) { var l = new TabSlideLineGlyph(n.SlideType, n, this); Ties.Add(l); } }
protected override void CreateTies(Note n) { if (!n.IsVisible) { return; } var renderer = (TabBarRenderer)Renderer; if (n.IsTieOrigin && renderer.ShowTiedNotes && n.TieDestination.IsVisible) { var tie = new TabTieGlyph(n, n.TieDestination, false); Ties.Add(tie); } if (n.IsTieDestination && renderer.ShowTiedNotes) { var tie = new TabTieGlyph(n.TieOrigin, n, false, true); Ties.Add(tie); } if (n.SlurOrigin != null) { var tie = new TabSlurGlyph(n); Ties.Add(tie); } if (n.SlideType != SlideType.None) { var l = new TabSlideLineGlyph(n.SlideType, n, this); Ties.Add(l); } if (n.HasBend) { if (_bend == null) { _bend = new TabBendGlyph(n.Beat); _bend.Renderer = Renderer; Ties.Add(_bend); } _bend.AddBends(n); } }