Ejemplo n.º 1
0
        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))));
                }
            }
        }
Ejemplo n.º 2
0
 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;
                }
                }
            }
        }
Ejemplo n.º 4
0
        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();
            }
        }
Ejemplo n.º 5
0
		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);
					}
					
				}
				
			}
		}
Ejemplo n.º 6
0
        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);
                }
            }
        }
Ejemplo n.º 7
0
        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();
            }
        }
Ejemplo n.º 8
0
        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();
                        }
                    }
                }
            }
        }