public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas) { unchecked { if (((this._endNote == default(global::alphatab.model.Note)) || (this._startNote.beat.index != this._endNote.beat.index))) { return; } global::alphatab.rendering.ScoreBarRenderer r = ((global::alphatab.rendering.ScoreBarRenderer)(this.renderer)); global::alphatab.rendering.glyphs.BeatContainerGlyph parent = ((global::alphatab.rendering.glyphs.BeatContainerGlyph)(this._parent)); int startX = (cx + r.getNoteX(this._startNote, default(global::haxe.lang.Null <bool>))); int endX = default(int); if ((this._endNote == default(global::alphatab.model.Note))) { endX = (((cx + parent.x) + parent.postNotes.x) + parent.postNotes.width); } else { endX = (cx + r.getNoteX(this._endNote, new global::haxe.lang.Null <bool>(false, true))); } double startY = ((cy + r.getNoteY(this._startNote)) + 4.5); double endY = default(double); if ((this._endNote == default(global::alphatab.model.Note))) { endY = startY; } else { endY = ((cy + r.getNoteY(this._endNote)) + 4.5); } global::alphatab.rendering.glyphs.TieGlyph.paintTie(canvas, this.renderer.stave.staveGroup.layout.renderer.settings.scale, ((double)(startX)), startY, ((double)(endX)), endY, new global::haxe.lang.Null <bool>((r.getBeatDirection(this._startNote.beat) == global::alphatab.rendering.utils.BeamDirection.Down), true)); canvas.setColor(this.renderer.stave.staveGroup.layout.renderer.renderingResources.mainGlyphColor); canvas.fill(); } }
public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas) { unchecked { global::alphatab.rendering.ScoreBarRenderer r = ((global::alphatab.rendering.ScoreBarRenderer)(this.renderer)); int sizeX = ((int)((12 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))); int offsetX = ((int)(this.renderer.stave.staveGroup.layout.renderer.settings.scale)); int startX = default(int); int startY = default(int); int endX = default(int); int endY = default(int); { global::alphatab.model.SlideType _g = this._type; switch (global::haxe.root.Type.enumIndex(_g)) { case 1: case 2: { startX = ((cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(true, true))) + offsetX); startY = ((cy + r.getNoteY(this._startNote)) + 4); if ((this._startNote.slideTarget != default(global::alphatab.model.Note))) { endX = ((cx + r.getNoteX(this._startNote.slideTarget, new global::haxe.lang.Null <bool>(false, true))) - offsetX); endY = ((cy + r.getNoteY(this._startNote.slideTarget)) + 4); } else { endX = (((cx + this._parent.x) + this._parent.postNotes.x) + this._parent.postNotes.width); endY = startY; } break; } case 3: { endX = ((cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(false, true))) - offsetX); endY = ((cy + r.getNoteY(this._startNote)) + 4); startX = (endX - sizeX); startY = ((cy + r.getNoteY(this._startNote)) + 9); break; } case 4: { endX = ((cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(false, true))) - offsetX); endY = ((cy + r.getNoteY(this._startNote)) + 4); startX = (endX - sizeX); startY = (cy + r.getNoteY(this._startNote)); break; } case 5: { startX = ((cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(true, true))) + offsetX); startY = ((cy + r.getNoteY(this._startNote)) + 4); endX = (startX + sizeX); endY = (cy + r.getNoteY(this._startNote)); break; } case 6: { startX = ((cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(true, true))) + offsetX); startY = ((cy + r.getNoteY(this._startNote)) + 4); endX = (startX + sizeX); endY = ((cy + r.getNoteY(this._startNote)) + 9); break; } default: { return; } } } canvas.setColor(this.renderer.stave.staveGroup.layout.renderer.renderingResources.mainGlyphColor); canvas.beginPath(); canvas.moveTo(((double)(startX)), ((double)(startY))); canvas.lineTo(((double)(endX)), ((double)(endY))); canvas.stroke(); } }
public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas) { unchecked { global::alphatab.rendering.ScoreBarRenderer scoreBarRenderer = ((global::alphatab.rendering.ScoreBarRenderer)(this.renderer)); double lineSize = (9 * scoreBarRenderer.stave.staveGroup.layout.renderer.settings.scale); global::alphatab.rendering.RenderingResources res = this.renderer.stave.staveGroup.layout.renderer.renderingResources; int startY = default(int); int __temp_stmt597 = default(int); { double x = (scoreBarRenderer.getNoteY(this._beat.maxNote()) - (lineSize / 2)); __temp_stmt597 = ((int)(x)); } startY = ((cy + this.y) + __temp_stmt597); double endY = (((cy + this.y) + scoreBarRenderer.getNoteY(this._beat.minNote())) + lineSize); int arrowX = ((int)(((cx + this.x) + (((double)(this.width)) / 2)))); double arrowSize = (8 * this.renderer.stave.staveGroup.layout.renderer.settings.scale); canvas.setColor(res.mainGlyphColor); if ((this._beat.brushType != global::alphatab.model.BrushType.None)) { if (((this._beat.brushType == global::alphatab.model.BrushType.ArpeggioUp) || (this._beat.brushType == global::alphatab.model.BrushType.ArpeggioDown))) { int size = ((int)((15 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))); int steps = default(int); { double v = (global::System.Math.Abs(((double)((endY - startY)))) / size); { double x1 = global::System.Math.Floor(((double)(v))); steps = ((int)(x1)); } } { int _g = 0; while ((_g < ((int)(steps)))) { int i = _g++; global::alphatab.rendering.glyphs.SvgGlyph arrow = new global::alphatab.rendering.glyphs.SvgGlyph(new global::haxe.lang.Null <int>(((int)((3 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))), true), new global::haxe.lang.Null <int>(0, true), ((global::alphatab.rendering.glyphs.LazySvg)(global::alphatab.rendering.glyphs.MusicFont.WaveVertical)), ((double)(1)), ((double)(1))); arrow.renderer = this.renderer; arrow.doLayout(); arrow.paint((cx + this.x), (startY + (i * size)), canvas); } } } if ((this._beat.brushType == global::alphatab.model.BrushType.ArpeggioUp)) { canvas.beginPath(); canvas.moveTo(((double)(arrowX)), endY); canvas.lineTo(((double)(((int)((arrowX + (arrowSize / 2)))))), ((double)(((int)((endY - arrowSize)))))); canvas.lineTo(((double)(((int)((arrowX - (arrowSize / 2)))))), ((double)(((int)((endY - arrowSize)))))); canvas.closePath(); canvas.fill(); } else { if ((this._beat.brushType == global::alphatab.model.BrushType.ArpeggioDown)) { canvas.beginPath(); canvas.moveTo(((double)(arrowX)), ((double)(startY))); canvas.lineTo(((double)(((int)((arrowX + (arrowSize / 2)))))), ((double)(((int)((startY + arrowSize)))))); canvas.lineTo(((double)(((int)((arrowX - (arrowSize / 2)))))), ((double)(((int)((startY + arrowSize)))))); canvas.closePath(); canvas.fill(); } } } } }