public virtual void createNoteGlyph(global::alphatab.model.Note n) { unchecked { global::alphatab.rendering.ScoreBarRenderer sr = default(global::alphatab.rendering.ScoreBarRenderer); sr = ((global::alphatab.rendering.ScoreBarRenderer)(this.renderer)); global::alphatab.rendering.Glyph noteHeadGlyph = this.createNoteHeadGlyph(n); int line = sr.getNoteLine(n); noteHeadGlyph.y = sr.getScoreY(line, new global::haxe.lang.Null <int>(-1, true)); this.noteHeads.addNoteGlyph(noteHeadGlyph, n, line); if ((n.isStaccato && !(this.noteHeads.beatEffects.exists("Staccato")))) { this.noteHeads.beatEffects.@set("Staccato", new global::alphatab.rendering.glyphs.CircleGlyph(new global::haxe.lang.Null <int>(0, true), new global::haxe.lang.Null <int>(0, true), ((double)(1.5)))); } if (((n.accentuated == global::alphatab.model.AccentuationType.Normal) && !(this.noteHeads.beatEffects.exists("Accent")))) { this.noteHeads.beatEffects.@set("Accent", new global::alphatab.rendering.glyphs.AccentuationGlyph(new global::haxe.lang.Null <int>(0, true), new global::haxe.lang.Null <int>(0, true), ((global::alphatab.model.AccentuationType)(global::alphatab.model.AccentuationType.Normal)))); } if (((n.accentuated == global::alphatab.model.AccentuationType.Heavy) && !(this.noteHeads.beatEffects.exists("HAccent")))) { this.noteHeads.beatEffects.@set("HAccent", new global::alphatab.rendering.glyphs.AccentuationGlyph(new global::haxe.lang.Null <int>(0, true), new global::haxe.lang.Null <int>(0, true), ((global::alphatab.model.AccentuationType)(global::alphatab.model.AccentuationType.Heavy)))); } } }
public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas) { unchecked { global::alphatab.rendering.ScoreBarRenderer scoreRenderer = ((global::alphatab.rendering.ScoreBarRenderer) (this.renderer) ); int effectY = default(int); if (( this.beamingHelper.getDirection() == global::alphatab.rendering.utils.BeamDirection.Up )) { effectY = scoreRenderer.getScoreY(((int) (global::haxe.lang.Runtime.getField_f(this.maxNote, "line", 1202919412, true)) ), new global::haxe.lang.Null<int>(13, true)); } else { effectY = scoreRenderer.getScoreY(((int) (global::haxe.lang.Runtime.getField_f(this.minNote, "line", 1202919412, true)) ), new global::haxe.lang.Null<int>(-9, true)); } int effectSpacing = default(int); if (( this.beamingHelper.getDirection() == global::alphatab.rendering.utils.BeamDirection.Up )) { effectSpacing = ((int) (( 7 * this.renderer.stave.staveGroup.layout.renderer.settings.scale )) ); } else { effectSpacing = ((int) (( -7 * this.renderer.stave.staveGroup.layout.renderer.settings.scale )) ); } { object __temp_iterator448 = this.beatEffects.iterator(); while (((bool) (global::haxe.lang.Runtime.callField(__temp_iterator448, "hasNext", 407283053, default(global::haxe.root.Array))) )) { global::alphatab.rendering.Glyph g = ((global::alphatab.rendering.Glyph) (global::haxe.lang.Runtime.callField(__temp_iterator448, "next", 1224901875, default(global::haxe.root.Array))) ); g.y = effectY; g.x = ( this.width / 2 ); g.paint(( cx + this.x ), ( cy + this.y ), canvas); effectY += effectSpacing; } } canvas.setColor(this.renderer.stave.staveGroup.layout.renderer.renderingResources.staveLineColor); int linePadding = ((int) (( 3 * this.renderer.stave.staveGroup.layout.renderer.settings.scale )) ); if (this.hasTopOverflow()) { int l = -1; while (( global::haxe.lang.Runtime.compare(l, ((int) (global::haxe.lang.Runtime.getField_f(this.minNote, "line", 1202919412, true)) )) >= 0 )) { int lY = ( ( cy + this.y ) + scoreRenderer.getScoreY(( l + 1 ), new global::haxe.lang.Null<int>(-1, true)) ); canvas.beginPath(); canvas.moveTo(((double) (( ( cx + this.x ) - linePadding )) ), ((double) (lY) )); canvas.lineTo(((double) (( ( ( cx + this.x ) + this.width ) + linePadding )) ), ((double) (lY) )); canvas.stroke(); l -= 2; } } if (this.hasBottomOverflow()) { int l1 = 11; while (( global::haxe.lang.Runtime.compare(l1, ((int) (global::haxe.lang.Runtime.getField_f(this.maxNote, "line", 1202919412, true)) )) <= 0 )) { int lY1 = ( ( cy + this.y ) + scoreRenderer.getScoreY(( l1 + 1 ), new global::haxe.lang.Null<int>(-1, true)) ); canvas.beginPath(); canvas.moveTo(((double) (( ( cx + this.x ) - linePadding )) ), ((double) (lY1) )); canvas.lineTo(((double) (( ( ( cx + this.x ) + this.width ) + linePadding )) ), ((double) (lY1) )); canvas.stroke(); l1 += 2; } } if (( this._tremoloPicking != default(global::alphatab.rendering.Glyph) )) { this._tremoloPicking.paint(( cx + this.x ), ( cy + this.y ), canvas); } { int _g = 0; global::haxe.root.Array<object> _g1 = this._infos; while (( _g < _g1.length )) { object g1 = _g1[_g]; ++ _g; ((global::alphatab.rendering.Glyph) (global::haxe.lang.Runtime.getField(g1, "glyph", 369425836, true)) ).renderer = this.renderer; ((global::alphatab.rendering.Glyph) (global::haxe.lang.Runtime.getField(g1, "glyph", 369425836, true)) ).paint(( cx + this.x ), ( cy + this.y ), canvas); } } } }
public override void doLayout() { unchecked { global::haxe.root.Array <object> _g = new global::haxe.root.Array <object>(new object[] { this }); if (!(this.container.beat.isEmpty)) { if (!(this.container.beat.isRest())) { this.noteHeads = new global::alphatab.rendering.glyphs.ScoreNoteChordGlyph(((global::haxe.lang.Null <int>)(default(global::haxe.lang.Null <int>))), ((global::haxe.lang.Null <int>)(default(global::haxe.lang.Null <int>)))); this.noteHeads.beat = this.container.beat; this.noteHeads.beamingHelper = this.beamingHelper; this.noteLoop(new global::alphatab.rendering.glyphs.ScoreBeatGlyph_doLayout_80__Fun(((global::haxe.root.Array <object>)(global::haxe.root.Array <object> .__hx_cast <object>(((global::haxe.root.Array)(_g))))))); this.addGlyph(this.noteHeads); { int _g1 = 0; int _g2 = this.container.beat.dots; while ((_g1 < _g2)) { int i = _g1++; global::haxe.root.Array <object> @group = new global::haxe.root.Array <object>(new object[] { new global::alphatab.rendering.glyphs.GlyphGroup(((global::haxe.lang.Null <int>)(default(global::haxe.lang.Null <int>))), ((global::haxe.lang.Null <int>)(default(global::haxe.lang.Null <int>))), ((global::haxe.root.Array <object>)(global::haxe.root.Array <object> .__hx_cast <object>(((global::haxe.root.Array)(default(global::haxe.root.Array <object>))))))) }); this.noteLoop(new global::alphatab.rendering.glyphs.ScoreBeatGlyph_doLayout_91__Fun(((global::haxe.root.Array <object>)(global::haxe.root.Array <object> .__hx_cast <object>(((global::haxe.root.Array)(_g))))), ((global::haxe.root.Array <object>)(global::haxe.root.Array <object> .__hx_cast <object>(((global::haxe.root.Array)(@group))))))); this.addGlyph(((global::alphatab.rendering.glyphs.GlyphGroup)(@group[0]))); } } } else { int line = 0; int offset = 0; { global::alphatab.model.Duration _g3 = this.container.beat.duration; switch (global::haxe.root.Type.enumIndex(_g3)) { case 0: { line = 4; break; } case 1: { line = 5; break; } case 2: { line = 7; offset = -2; break; } case 3: { line = 8; break; } case 4: { line = 8; break; } case 5: { line = 8; break; } case 6: { line = 8; break; } } } global::alphatab.rendering.ScoreBarRenderer sr = default(global::alphatab.rendering.ScoreBarRenderer); sr = ((global::alphatab.rendering.ScoreBarRenderer)(this.renderer)); int y = sr.getScoreY(line, new global::haxe.lang.Null <int>(offset, true)); this.addGlyph(new global::alphatab.rendering.glyphs.RestGlyph(new global::haxe.lang.Null <int>(0, true), new global::haxe.lang.Null <int>(y, true), ((global::alphatab.model.Duration)(this.container.beat.duration)))); } } base.doLayout(); if ((this.noteHeads != default(global::alphatab.rendering.glyphs.ScoreNoteChordGlyph))) { this.noteHeads.updateBeamingHelper(this.x); } } }
public virtual void createBeatDot(global::alphatab.model.Note n, global::alphatab.rendering.glyphs.GlyphGroup @group) { unchecked { global::alphatab.rendering.ScoreBarRenderer sr = default(global::alphatab.rendering.ScoreBarRenderer); sr = ((global::alphatab.rendering.ScoreBarRenderer)(this.renderer)); @group.addGlyph(new global::alphatab.rendering.glyphs.CircleGlyph(new global::haxe.lang.Null <int>(0, true), new global::haxe.lang.Null <int>(sr.getScoreY(sr.getNoteLine(n), new global::haxe.lang.Null <int>(((int)((2 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))), true)), true), ((double)((1.5 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))))); } }
public virtual void createAccidentalGlyph(global::alphatab.model.Note n, global::alphatab.rendering.glyphs.AccidentalGroupGlyph accidentals) { unchecked { global::alphatab.rendering.ScoreBarRenderer sr = default(global::alphatab.rendering.ScoreBarRenderer); sr = ((global::alphatab.rendering.ScoreBarRenderer)(this.renderer)); int noteLine = sr.getNoteLine(n); global::alphatab.model.AccidentalType accidental = sr.accidentalHelper.applyAccidental(n, noteLine); bool isGrace = (this.container.beat.graceType != global::alphatab.model.GraceType.None); switch (global::haxe.root.Type.enumIndex(accidental)) { case 2: { accidentals.addGlyph(new global::alphatab.rendering.glyphs.SharpGlyph(new global::haxe.lang.Null <int>(0, true), new global::haxe.lang.Null <int>(sr.getScoreY(noteLine, default(global::haxe.lang.Null <int>)), true), new global::haxe.lang.Null <bool>(isGrace, true))); break; } case 3: { accidentals.addGlyph(new global::alphatab.rendering.glyphs.FlatGlyph(new global::haxe.lang.Null <int>(0, true), new global::haxe.lang.Null <int>(sr.getScoreY(noteLine, default(global::haxe.lang.Null <int>)), true), new global::haxe.lang.Null <bool>(isGrace, true))); break; } case 1: { accidentals.addGlyph(new global::alphatab.rendering.glyphs.NaturalizeGlyph(new global::haxe.lang.Null <int>(0, true), new global::haxe.lang.Null <int>(sr.getScoreY((noteLine + 1), default(global::haxe.lang.Null <int>)), true), new global::haxe.lang.Null <bool>(isGrace, true))); break; } default: { { } break; } } } }