package stu.tnt.gdx.graphics.graphics2d;
import stu.tnt.Updateable;
import stu.tnt.gdx.utils.Updater;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.utils.Pool.Poolable;
/**
* A backend of all sprite make them become easy to manage
*
* @FileName: SpriteBackend.java
* @CreateOn: Sep 23, 2012 - 2:49:59 PM
* @Author: TrungNT
*/
public interface SpriteBackend extends Poolable, Boundable, Updateable {
// =================================================
// setter
public void setBounds(float x, float y, float width, float height);
public void setSize(float width, float height);
public void setPosition(float x, float y);
public void setX(float x);
public void setY(float y);
public void translate(float xAmount, float yAmount);
public void translateX(float xAmount);
public void translateY(float yAmount);
public void setOrigin(float originX, float originY);
public void setRotation(float degree);
public void rotate(float degree);
public void setScale(float scaleXY);
public void setScale(float scaleX, float scaleY);
public void scale(float amount);
public void setColor(float r, float g, float b, float a);
public void setColor(Color color);
// =================================================
// getter
public float[] getVertices();
public float getX();
public float getCenterX();
public float getY();
public float getCenterY();
public float getWidth();
public float getHeight();
public float getOriginX();
public float getOriginY();
public float getRotation();
public float getScaleX();
public float getScaleY();
// =================================================
// processor
public void postUpdater(Updater updater);
public void noUpdater();
public int sizeUpdater();
public void removeUpdater(Updater updater);
public void draw(Batch batch);
public void draw(Batch batch, float alpha);
}