Ejemplo n.º 1
0
 public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas)
 {
     unchecked
     {
         int size = ((int)((6 * this.renderer.stave.staveGroup.layout.renderer.settings.scale)));
         canvas.beginPath();
         canvas.moveTo(((double)((cx + this.x))), ((double)((cy + this.y))));
         canvas.quadraticCurveTo(((double)(((cx + this.x) + (this.width / 2)))), ((double)((cy + this.y))), ((double)(((cx + this.x) + this.width))), ((double)(((cy + this.y) - size))));
         canvas.moveTo(((double)((cx + this.x))), ((double)((cy + this.y))));
         canvas.quadraticCurveTo(((double)(((cx + this.x) + (this.width / 2)))), ((double)((cy + this.y))), ((double)(((cx + this.x) + this.width))), ((double)(((cy + this.y) + size))));
         canvas.stroke();
     }
 }
Ejemplo n.º 2
0
        public static void paintTie(global::alphatab.platform.ICanvas canvas, double scale, double x1, double y1, double x2, double y2, global::haxe.lang.Null <bool> down)
        {
            unchecked
            {
                bool __temp_down200 = ((global::haxe.lang.Runtime.eq((down).toDynamic(), (default(global::haxe.lang.Null <bool>)).toDynamic())) ? (((bool)(false))) : (down.@value));
                if ((x2 > x1))
                {
                    double t = x1;
                    x1 = x2;
                    x2 = t;
                    t  = y1;
                    y1 = y2;
                    y2 = t;
                }

                double offset         = (15 * scale);
                double size           = (4 * scale);
                double normalVector_x = (y2 - y1);
                double normalVector_y = (x2 - x1);
                double length         = global::System.Math.Sqrt(((double)(((normalVector_x * normalVector_x) + (normalVector_y * normalVector_y)))));
                if (__temp_down200)
                {
                    normalVector_x *= ((double)(-1));
                }
                else
                {
                    normalVector_y *= ((double)(-1));
                }

                normalVector_x /= length;
                normalVector_y /= length;
                double center_x = (((x2 + x1)) / 2);
                double center_y = (((y2 + y1)) / 2);
                double cp1_x    = (center_x + (offset * normalVector_x));
                double cp1_y    = (center_y + (offset * normalVector_y));
                double cp2_x    = (center_x + (((offset - size)) * normalVector_x));
                double cp2_y    = (center_y + (((offset - size)) * normalVector_y));
                canvas.beginPath();
                canvas.moveTo(x1, y1);
                canvas.quadraticCurveTo(cp1_x, cp1_y, x2, y2);
                canvas.quadraticCurveTo(cp2_x, cp2_y, x1, y1);
                canvas.closePath();
            }
        }
Ejemplo n.º 3
0
        public virtual void parseCommand(int cx, int cy, global::alphatab.platform.ICanvas canvas, global::alphatab.rendering.glyphs.SvgCommand cmd)
        {
            unchecked
            {
                bool canContinue = default(bool);
                int  i           = default(int);
                {
                    string _g = cmd.cmd;
                    switch (_g)
                    {
                    case "M":
                    {
                        this._currentX = (cx + (cmd.numbers[0] * this._xScale));
                        this._currentY = (cy + (cmd.numbers[1] * this._yScale));
                        canvas.moveTo(this._currentX, this._currentY);
                        break;
                    }


                    case "m":
                    {
                        this._currentX += (cmd.numbers[0] * this._xScale);
                        this._currentY += (cmd.numbers[1] * this._yScale);
                        canvas.moveTo(this._currentX, this._currentY);
                        break;
                    }


                    case "Z":
                    case "z":
                    {
                        canvas.closePath();
                        break;
                    }


                    case "L":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            this._currentX = (cx + (cmd.numbers[i++] * this._xScale));
                            this._currentY = (cy + (cmd.numbers[i++] * this._yScale));
                            canvas.lineTo(this._currentX, this._currentY);
                        }

                        break;
                    }


                    case "l":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            this._currentX += (cmd.numbers[i++] * this._xScale);
                            this._currentY += (cmd.numbers[i++] * this._yScale);
                            canvas.lineTo(this._currentX, this._currentY);
                        }

                        break;
                    }


                    case "V":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            this._currentY = (cy + (cmd.numbers[i++] * this._yScale));
                            canvas.lineTo(this._currentX, this._currentY);
                        }

                        break;
                    }


                    case "v":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            this._currentY += (cmd.numbers[i++] * this._yScale);
                            canvas.lineTo(this._currentX, this._currentY);
                        }

                        break;
                    }


                    case "H":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            this._currentX = (cx + (cmd.numbers[i++] * this._xScale));
                            canvas.lineTo(this._currentX, this._currentY);
                        }

                        break;
                    }


                    case "h":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            this._currentX += (cmd.numbers[i++] * this._xScale);
                            canvas.lineTo(this._currentX, this._currentY);
                        }

                        break;
                    }


                    case "C":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x1 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y1 = (cy + (cmd.numbers[i++] * this._yScale));
                            double x2 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y2 = (cy + (cmd.numbers[i++] * this._yScale));
                            double x3 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y3 = (cy + (cmd.numbers[i++] * this._yScale));
                            this._lastControlX = x2;
                            this._lastControlY = y2;
                            this._currentX     = x3;
                            this._currentY     = y3;
                            canvas.bezierCurveTo(x1, y1, x2, y2, x3, y3);
                        }

                        break;
                    }


                    case "c":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x11 = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y11 = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            double x21 = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y21 = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            double x31 = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y31 = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            this._lastControlX = x21;
                            this._lastControlY = y21;
                            this._currentX     = x31;
                            this._currentY     = y31;
                            canvas.bezierCurveTo(x11, y11, x21, y21, x31, y31);
                        }

                        break;
                    }


                    case "S":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x12 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y12 = (cy + (cmd.numbers[i++] * this._yScale));
                            canContinue = (((string.Equals(this._lastCmd, "c") || string.Equals(this._lastCmd, "C")) || string.Equals(this._lastCmd, "S")) || string.Equals(this._lastCmd, "s"));
                            double x22 = default(double);
                            if (canContinue)
                            {
                                x22 = (this._currentX + ((this._currentX - this._lastControlX)));
                            }
                            else
                            {
                                x22 = this._currentX;
                            }

                            double y22 = default(double);
                            if (canContinue)
                            {
                                y22 = (this._currentY + ((this._currentY - this._lastControlY)));
                            }
                            else
                            {
                                y22 = this._currentY;
                            }

                            double x32 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y32 = (cy + (cmd.numbers[i++] * this._yScale));
                            this._lastControlX = x22;
                            this._lastControlY = y22;
                            this._currentX     = x32;
                            this._currentY     = y32;
                            canvas.bezierCurveTo(x12, y12, x22, y22, x32, y32);
                        }

                        break;
                    }


                    case "s":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x13 = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y13 = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            canContinue = (((string.Equals(this._lastCmd, "c") || string.Equals(this._lastCmd, "C")) || string.Equals(this._lastCmd, "S")) || string.Equals(this._lastCmd, "s"));
                            double x23 = default(double);
                            if (canContinue)
                            {
                                x23 = (this._currentX + ((this._currentX - this._lastControlX)));
                            }
                            else
                            {
                                x23 = this._currentX;
                            }

                            double y23 = default(double);
                            if (canContinue)
                            {
                                y23 = (this._currentY + ((this._currentY - this._lastControlY)));
                            }
                            else
                            {
                                y23 = this._currentY;
                            }

                            double x33 = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y33 = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            this._lastControlX = x23;
                            this._lastControlY = y23;
                            this._currentX     = x33;
                            this._currentY     = y33;
                            canvas.bezierCurveTo(x13, y13, x23, y23, x33, y33);
                        }

                        break;
                    }


                    case "Q":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x14 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y14 = (cy + (cmd.numbers[i++] * this._yScale));
                            double x24 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y24 = (cy + (cmd.numbers[i++] * this._yScale));
                            this._lastControlX = x14;
                            this._lastControlY = y14;
                            this._currentX     = x24;
                            this._currentY     = y24;
                            canvas.quadraticCurveTo(x14, y14, x24, y24);
                        }

                        break;
                    }


                    case "q":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x15 = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y15 = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            double x25 = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y25 = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            this._lastControlX = x15;
                            this._lastControlY = y15;
                            this._currentX     = x25;
                            this._currentY     = y25;
                            canvas.quadraticCurveTo(x15, y15, x25, y25);
                        }

                        break;
                    }


                    case "T":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x16 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y16 = (cy + (cmd.numbers[i++] * this._yScale));
                            canContinue = (((string.Equals(this._lastCmd, "q") || string.Equals(this._lastCmd, "Q")) || string.Equals(this._lastCmd, "t")) || string.Equals(this._lastCmd, "T"));
                            double cpx = default(double);
                            if (canContinue)
                            {
                                cpx = (this._currentX + ((this._currentX - this._lastControlX)));
                            }
                            else
                            {
                                cpx = this._currentX;
                            }

                            double cpy = default(double);
                            if (canContinue)
                            {
                                cpy = (this._currentY + ((this._currentY - this._lastControlY)));
                            }
                            else
                            {
                                cpy = this._currentY;
                            }

                            this._currentX     = x16;
                            this._currentY     = y16;
                            this._lastControlX = cpx;
                            this._lastControlY = cpy;
                            canvas.quadraticCurveTo(cpx, cpy, x16, y16);
                        }

                        break;
                    }


                    case "t":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x17  = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y17  = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            double cpx1 = (this._currentX + ((this._currentX - this._lastControlX)));
                            double cpy1 = (this._currentY + ((this._currentY - this._lastControlY)));
                            canContinue = (((string.Equals(this._lastCmd, "q") || string.Equals(this._lastCmd, "Q")) || string.Equals(this._lastCmd, "t")) || string.Equals(this._lastCmd, "T"));
                            double cpx2 = default(double);
                            if (canContinue)
                            {
                                cpx2 = (this._currentX + ((this._currentX - this._lastControlX)));
                            }
                            else
                            {
                                cpx2 = this._currentX;
                            }

                            double cpy2 = default(double);
                            if (canContinue)
                            {
                                cpy2 = (this._currentY + ((this._currentY - this._lastControlY)));
                            }
                            else
                            {
                                cpy2 = this._currentY;
                            }

                            this._lastControlX = cpx2;
                            this._lastControlY = cpy2;
                            canvas.quadraticCurveTo(cpx2, cpy2, x17, y17);
                        }

                        break;
                    }
                    }
                }

                this._lastCmd = cmd.cmd;
            }
        }