asm vector module

by path411

HTML

<div id="write"></div>

JavaScript

function Vector2Module(stdlib) {
        "use asm";
        
        function divide(a, b) {
            a = +a;
            b = +b;
            if(b == 0) {
                return +0;
            }
            else {
                return +(a/b);
            }
        }
        
        function RotateX(x1, y1, x2, y2, a) {
            x1 = +x1;
            y1 = +y1;
            x2 = +x2;
            y2 = +y2;
            a = +a;
            return +((x1-x2) * stdlib.cos(a) - (y1-y2) * stdlib.sin(a)) + x2;
        }
        function RotateY(x1, y1, x2, y2, a) {
            x1 = +x1;
            y1 = +y1;
            x2 = +x2;
            y2 = +y2;
            a = +a;
            return +((y1-y2) * stdlib.cos(a) + (x1-x2) * stdlib.sin(a)) + y2;
        }
        function GetLength(x, y) {
            x = +x;
            y = +y;
            return +stdlib.sqrt(x*x + y*y);
        }
        function GetDistanceTo(x1, y1, x2, y2) {
            x1 = +x1;
            y1 = +y1;
            x2 = +x2;
            y2 = +y2;
            return +stdlib.sqrt(stdlib.abs((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)));
        }
        function GetNormalizedX(x, y) {
            x = +x;
            y = +y;
            return +(divide(x, GetLength(x, y)));
        }
        function GetNormalizedY(x, y) {
            x = +x;
            y= +y;
            return +(divide(y, GetLength(x, y)));
        }
        
        return {
            "RotateX": RotateX,
            "RotateY": RotateY,
            "GetLength": GetLength,
            "GetDistanceTo": GetDistanceTo,
            "GetNormalizedX": GetNormalizedX,
            "GetNormalizedY": GetNormalizedY
        }
        
    }

    var v2module = new Vector2Module(Math);
   

    var Vector2asm = {
       
        'AddVector': function(v, va) {
            v.X += va.X;
            v.Y += va.Y;
            return v;
        },
        'SubtractVector': function(v, va) {
            v.X -= va.X;
            v.Y -= va.Y;
 ...