// Path: src/main/java/sk/mrtn/pixi/client/Point.java
// @JsType(isNative = true, namespace = "PIXI")
// public class Point {
// 
//     @JsConstructor
//     public Point(double x, double y){};
// 
//     // PUBLIC FIELDS
//     @JsProperty
//     public double x;
//     @JsProperty
//     public double y;
// 
//     // PUBLIC METHODS
//     @JsMethod
//     public native Point clone();
//     @JsMethod
//     public native Point copy(Point point);
//     @JsMethod
//     public native boolean equals(Point point);
//     @JsMethod
//     public native void set(double x, double y);
// 
//     @JsOverlay
//     public final String toString() {
//         return "Point {x: "+x+", y: "+y+"}";
//     }
// 
//     @JsOverlay
//     public final String asString() {
//         return "Point {x: "+x+", y: "+y+"}";
//     }
// }


import jsinterop.annotations.JsMethod;
import jsinterop.annotations.JsProperty;
import jsinterop.annotations.JsType;
import sk.mrtn.pixi.client.Point;
package sk.mrtn.pixi.client.particles;


/**
 * Created by klaun on 25/04/16.
 */

@JsType(isNative = true, namespace = "PIXI.particles")
public class ParticleUtils {


    // PUBLIC FIELDS
    @JsProperty
    public double DEG_TO_RADS;
    @JsProperty
    public boolean useAPI3;

    // PUBLIC METHODS

    /**
     * Rotates a point by a given angle.
     * @param angle
     * @param point
     */
    @JsMethod
    public native void rotatePoint(double angle, Point point);

    /**
     * Combines separate color components (0-255) into a single uint color.
     * @param red
     * @param green
     * @param blue
     * @return
     */
    @JsMethod
    public native int combineRGBComponents(int red, int green, int blue);

    /**
     * Reduces the point to a length of 1.
     * @param point
     * @return
     */
    @JsMethod
    public native void normalize(Point point);

    /**
     * Multiplies the x and y values of this point by point value.
     * @param point
     * @param value
     * @return
     */
    @JsMethod
// Path: src/main/java/sk/mrtn/pixi/client/Point.java
// @JsType(isNative = true, namespace = "PIXI")
// public class Point {
// 
//     @JsConstructor
//     public Point(double x, double y){};
// 
//     // PUBLIC FIELDS
//     @JsProperty
//     public double x;
//     @JsProperty
//     public double y;
// 
//     // PUBLIC METHODS
//     @JsMethod
//     public native Point clone();
//     @JsMethod
//     public native Point copy(Point point);
//     @JsMethod
//     public native boolean equals(Point point);
//     @JsMethod
//     public native void set(double x, double y);
// 
//     @JsOverlay
//     public final String toString() {
//         return "Point {x: "+x+", y: "+y+"}";
//     }
// 
//     @JsOverlay
//     public final String asString() {
//         return "Point {x: "+x+", y: "+y+"}";
//     }
// }


// Path: src/main/java/sk/mrtn/pixi/client/particles/ParticleUtils.java
import jsinterop.annotations.JsMethod;
import jsinterop.annotations.JsProperty;
import jsinterop.annotations.JsType;
import sk.mrtn.pixi.client.Point;

package sk.mrtn.pixi.client.particles;


/**
 * Created by klaun on 25/04/16.
 */

@JsType(isNative = true, namespace = "PIXI.particles")
public class ParticleUtils {


    // PUBLIC FIELDS
    @JsProperty
    public double DEG_TO_RADS;
    @JsProperty
    public boolean useAPI3;

    // PUBLIC METHODS

    /**
     * Rotates a point by a given angle.
     * @param angle
     * @param point
     */
    @JsMethod
    public native void rotatePoint(double angle, Point point);

    /**
     * Combines separate color components (0-255) into a single uint color.
     * @param red
     * @param green
     * @param blue
     * @return
     */
    @JsMethod
    public native int combineRGBComponents(int red, int green, int blue);

    /**
     * Reduces the point to a length of 1.
     * @param point
     * @return
     */
    @JsMethod
    public native void normalize(Point point);

    /**
     * Multiplies the x and y values of this point by point value.
     * @param point
     * @param value
     * @return
     */
    @JsMethod
    public native void scaleBy(Point point, double value);