package com.ptrprograms.asteroidbelttv.Utils;
/**
* Created by PaulTR on 7/20/14.
*/
public class Utils {
public static float secondsToFrameDelta(float seconds) {
return seconds * Constants.FRAME_RATE;
}
public static float millisToFrameDelta(long milliseconds) {
return secondsToFrameDelta( (float) milliseconds / 1000.0f );
}
public static float vector2DLength(float x, float y) {
return (float) Math.sqrt(vector2DLengthSquared(x, y));
}
public static float vector2DLengthSquared(float x, float y) {
return x * x + y * y;
}
public static boolean isInYPlane( float position, float size ) {
return Constants.MAP_BOTTOM_COORDINATE - size < position && position < Constants.MAP_TOP_COORDINATE + size;
}
public static boolean isOffScreenAboveTop( float position, float size ) {
return position > Constants.MAP_TOP_COORDINATE + size;
}
public static boolean isOffScreenBelowBottom( float position, float size ) {
return position < Constants.MAP_BOTTOM_COORDINATE - size;
}
public static boolean isInXPlane( float position, float size ) {
return Constants.MAP_LEFT_COORDINATE - size < position && position < Constants.MAP_RIGHT_COORDINATE + size;
}
public static boolean isOffScreenToRight( float position, float size ) {
return position > Constants.MAP_RIGHT_COORDINATE;
}
public static boolean isOffScreenToLeft( float position, float size ) {
return position < Constants.MAP_LEFT_COORDINATE;
}
public static class Color {
public static final Color WHITE = new Color(1.0f, 1.0f, 1.0f);
public static final Color RED = new Color( 1.0f, 0.0f, 0.0f );
private static final int RED_SHIFT = 0;
private static final int GREEN_SHIFT = 8;
private static final int BLUE_SHIFT = 16;
private static final int ALPHA_SHIFT = 24;
private int mABGR;
public Color() {}
public Color(float red, float green, float blue) {
mABGR = packNormalizedRGBAToABGR(red, green, blue, 1.0f);
}
public int getPackedABGR() {
return mABGR;
}
private static int normalizedColorToInt(float normalizedColor) {
return (int) (255.0f * normalizedColor);
}
private static int packNormalizedRGBAToABGR(float red, float green, float blue,
float alpha) {
return packABGR(
normalizedColorToInt(red),
normalizedColorToInt(green),
normalizedColorToInt(blue),
normalizedColorToInt(alpha));
}
private static int packABGR(int red, int green, int blue, int alpha) {
return ( red << RED_SHIFT )
| ( green << GREEN_SHIFT )
| ( blue << BLUE_SHIFT )
| ( alpha << ALPHA_SHIFT );
}
public void set(float red, float green, float blue, float alpha) {
mABGR = packNormalizedRGBAToABGR(red, green, blue, alpha);
}
public void set(Color other) {
this.mABGR = other.mABGR;
}
}
}