|
|
|
package mightypork.rogue.textures;
|
|
|
|
|
|
|
|
import mightypork.utils.math.coord.Coord;
|
|
|
|
import mightypork.utils.math.coord.Rect;
|
|
|
|
|
|
|
|
import org.newdawn.slick.opengl.Texture;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Texture Quad (describing a part of a texture)
|
|
|
|
*
|
|
|
|
* @author MightyPork
|
|
|
|
*/
|
|
|
|
public class TxQuad {
|
|
|
|
|
|
|
|
/** The texture */
|
|
|
|
public Texture tx;
|
|
|
|
/** Coords in texture (pixels) */
|
|
|
|
public Rect uvs;
|
|
|
|
/** Quad size */
|
|
|
|
public Coord size;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Create TxQuad from left top coord and rect size
|
|
|
|
*
|
|
|
|
* @param tx
|
|
|
|
* texture
|
|
|
|
* @param x1
|
|
|
|
* left top X
|
|
|
|
* @param y1
|
|
|
|
* left top Y
|
|
|
|
* @param width
|
|
|
|
* area width
|
|
|
|
* @param height
|
|
|
|
* area height
|
|
|
|
* @return new TxQuad
|
|
|
|
*/
|
|
|
|
public static TxQuad fromSize(Texture tx, int x1, int y1, int width, int height)
|
|
|
|
{
|
|
|
|
return new TxQuad(tx, x1, y1, x1 + width, y1 + height);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param tx
|
|
|
|
* Texture
|
|
|
|
* @param uvs
|
|
|
|
* Rect of texturwe UVs (pixels - from left top)
|
|
|
|
*/
|
|
|
|
public TxQuad(Texture tx, Rect uvs) {
|
|
|
|
this.tx = tx;
|
|
|
|
this.uvs = uvs.copy();
|
|
|
|
this.size = uvs.getSize();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Make of coords
|
|
|
|
*
|
|
|
|
* @param tx
|
|
|
|
* texture
|
|
|
|
* @param x1
|
|
|
|
* x1
|
|
|
|
* @param y1
|
|
|
|
* y1
|
|
|
|
* @param x2
|
|
|
|
* x2
|
|
|
|
* @param y2
|
|
|
|
* y2
|
|
|
|
*/
|
|
|
|
public TxQuad(Texture tx, int x1, int y1, int x2, int y2) {
|
|
|
|
this.tx = tx;
|
|
|
|
this.uvs = new Rect(x1, y1, x2, y2);
|
|
|
|
this.size = uvs.getSize();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public TxQuad copy()
|
|
|
|
{
|
|
|
|
return new TxQuad(tx, uvs);
|
|
|
|
}
|
|
|
|
}
|