예제 #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))));
                }
            }
        }
예제 #2
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);
					}
					
				}
				
			}
		}
예제 #3
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);
                }
            }
        }
예제 #4
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;
                }
                }
            }
        }