package rajawali.lights; import rajawali.ATransformable3D; import rajawali.math.Number3D; public abstract class ALight extends ATransformable3D { public static final int DIRECTIONAL_LIGHT = 0; public static final int POINT_LIGHT = 1; public static final int SPOT_LIGHT = 2; protected float[] mColor = new float[] { 1.0f, 1.0f, 1.0f }; protected float[] mPositionArray = new float[3]; protected float[] mDirectionArray = new float[3]; protected float mPower = .5f; private int mLightType; protected boolean mUseObjectTransform; public ALight(int lightType) { super(); mLightType = lightType; } public void setColor(final float r, final float g, final float b) { mColor[0] = r; mColor[1] = g; mColor[2] = b; } public void setColor(int color) { mColor[0] = ((color >> 16) & 0xFF) / 255f; mColor[1] = ((color >> 8) & 0xFF) / 255f; mColor[2] = (color & 0xFF) / 255f; } public void setColor(Number3D color) { mColor[0] = color.x; mColor[1] = color.y; mColor[2] = color.z; } public float[] getColor() { return mColor; } public void setPower(float power) { mPower = power; } public float getPower() { return mPower; } public boolean shouldUseObjectTransform() { return mUseObjectTransform; } public void shouldUseObjectTransform(boolean useObjectTransform) { this.mUseObjectTransform = useObjectTransform; } public int getLightType() { return mLightType; } public void setLightType(int lightType) { this.mLightType = lightType; } public float[] getPositionArray() { mPositionArray[0] = mPosition.x; mPositionArray[1] = mPosition.y; mPositionArray[2] = mPosition.z; return mPositionArray; } }