// Path: src/main/java/sk/mrtn/pixi/client/Matrix.java
// @JsType(isNative = true, namespace = "PIXI")
// public class Matrix {
// 
//     // PUBLIC STATIC FIELDS
// 
//     // PUBLIC STATIC METHODS
// 
//     @JsConstructor
//     public Matrix(){};
// 
//     // PUBLIC FIELDS
//     @JsProperty
//     public int a;
//     @JsProperty
//     public int b;
//     @JsProperty
//     public int c;
//     @JsProperty
//     public int d;
//     @JsProperty
//     public int tx;
//     @JsProperty
//     public int ty;
// 
//     // PUBLIC METHODS
//     @JsMethod
//     public native Matrix fromArray(int[] array);
// 
//     // UNDOCUMENTED
//     @JsMethod
//     public native Matrix set(int a, int b, int c, int d, int tx, int ty);
//     @JsMethod
//     public native int[] toArray(boolean transpose);
//     @JsMethod
//     public native Point apply(Point pos, Point newPos);
//     @JsMethod
//     public native Point applyInverse(Point pos, Point newPos);
//     @JsMethod
//     public native Matrix translate(double x, double y);
//     @JsMethod
//     public native Matrix scale(double x, double y);
//     @JsMethod
//     public native Matrix rotate(double angle);
//     @JsMethod
//     public native Matrix append(Matrix matrix);
//     // UNDOCUMENTED
//     @JsMethod
//     public native Matrix setTransform(double x, double y, double pivotX, double pivotY, double scaleX, double scaleY, double rotation, double skewX, double skewY);
//     @JsMethod
//     public native Matrix prepend(Matrix matrix);
//     @JsMethod
//     public native Matrix invert();
//     @JsMethod
//     public native Matrix identity();
//     @JsMethod
//     public native Matrix clone();
//     @JsMethod
//     public native Matrix copy(Matrix matrix);
// 
// }


import jsinterop.annotations.JsMethod;
import jsinterop.annotations.JsProperty;
import jsinterop.annotations.JsType;
import sk.mrtn.pixi.client.Matrix;
    public int N;
    @JsProperty
    public int NE;
    @JsProperty
    public int MIRROR_VERTICAL;
    @JsProperty
    public int MIRROR_HORIZONTAL;

    // PUBLIC METHODS
    @JsMethod
    public native int uX(int ind);
    @JsMethod
    public native int uY(int ind);
    @JsMethod
    public native int vX(int ind);
    @JsMethod
    public native int vY(int ind);
    @JsMethod
    public native double inv(double rotation);
    @JsMethod
    public native int add(int rotationSecond, int rotationFirst);
    @JsMethod
    public native int sub(int rotationSecond, int rotationFirst);
    @JsMethod
    public native double rotate180(double rotation);
    @JsMethod
    public native boolean isSwapWidthHeight(double rotation);
    @JsMethod
    public native int byDirection(double dx, double dy);
    @JsMethod
// Path: src/main/java/sk/mrtn/pixi/client/Matrix.java
// @JsType(isNative = true, namespace = "PIXI")
// public class Matrix {
// 
//     // PUBLIC STATIC FIELDS
// 
//     // PUBLIC STATIC METHODS
// 
//     @JsConstructor
//     public Matrix(){};
// 
//     // PUBLIC FIELDS
//     @JsProperty
//     public int a;
//     @JsProperty
//     public int b;
//     @JsProperty
//     public int c;
//     @JsProperty
//     public int d;
//     @JsProperty
//     public int tx;
//     @JsProperty
//     public int ty;
// 
//     // PUBLIC METHODS
//     @JsMethod
//     public native Matrix fromArray(int[] array);
// 
//     // UNDOCUMENTED
//     @JsMethod
//     public native Matrix set(int a, int b, int c, int d, int tx, int ty);
//     @JsMethod
//     public native int[] toArray(boolean transpose);
//     @JsMethod
//     public native Point apply(Point pos, Point newPos);
//     @JsMethod
//     public native Point applyInverse(Point pos, Point newPos);
//     @JsMethod
//     public native Matrix translate(double x, double y);
//     @JsMethod
//     public native Matrix scale(double x, double y);
//     @JsMethod
//     public native Matrix rotate(double angle);
//     @JsMethod
//     public native Matrix append(Matrix matrix);
//     // UNDOCUMENTED
//     @JsMethod
//     public native Matrix setTransform(double x, double y, double pivotX, double pivotY, double scaleX, double scaleY, double rotation, double skewX, double skewY);
//     @JsMethod
//     public native Matrix prepend(Matrix matrix);
//     @JsMethod
//     public native Matrix invert();
//     @JsMethod
//     public native Matrix identity();
//     @JsMethod
//     public native Matrix clone();
//     @JsMethod
//     public native Matrix copy(Matrix matrix);
// 
// }


// Path: src/main/java/sk/mrtn/pixi/client/GroupD8.java
import jsinterop.annotations.JsMethod;
import jsinterop.annotations.JsProperty;
import jsinterop.annotations.JsType;
import sk.mrtn.pixi.client.Matrix;

    public int N;
    @JsProperty
    public int NE;
    @JsProperty
    public int MIRROR_VERTICAL;
    @JsProperty
    public int MIRROR_HORIZONTAL;

    // PUBLIC METHODS
    @JsMethod
    public native int uX(int ind);
    @JsMethod
    public native int uY(int ind);
    @JsMethod
    public native int vX(int ind);
    @JsMethod
    public native int vY(int ind);
    @JsMethod
    public native double inv(double rotation);
    @JsMethod
    public native int add(int rotationSecond, int rotationFirst);
    @JsMethod
    public native int sub(int rotationSecond, int rotationFirst);
    @JsMethod
    public native double rotate180(double rotation);
    @JsMethod
    public native boolean isSwapWidthHeight(double rotation);
    @JsMethod
    public native int byDirection(double dx, double dy);
    @JsMethod
    public native void matrixAppendRotationInv(Matrix matrix, double rotation, double tx, double ty);