|
|
@ -77,6 +77,21 @@ public class Quad extends Mesh { |
|
|
|
updateGeometry(width, height, flipCoords); |
|
|
|
updateGeometry(width, height, flipCoords); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Create a quad with the given width and height. The quad |
|
|
|
|
|
|
|
* is always created in the XY plane. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* @param width The X extent or width |
|
|
|
|
|
|
|
* @param height The Y extent or width |
|
|
|
|
|
|
|
* @param flipCoords If true, the texture coordinates will be flipped |
|
|
|
|
|
|
|
* along the Y axis. |
|
|
|
|
|
|
|
* @param originAtCenter If true then the origin of the quad will be at the center |
|
|
|
|
|
|
|
* of the quad, rather than at one corner. |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
public Quad(float width, float height, boolean flipCoords, boolean originAtCenter){ |
|
|
|
|
|
|
|
updateGeometry(width, height, flipCoords, originAtCenter); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public float getHeight() { |
|
|
|
public float getHeight() { |
|
|
|
return height; |
|
|
|
return height; |
|
|
|
} |
|
|
|
} |
|
|
@ -88,16 +103,29 @@ public class Quad extends Mesh { |
|
|
|
public void updateGeometry(float width, float height){ |
|
|
|
public void updateGeometry(float width, float height){ |
|
|
|
updateGeometry(width, height, false); |
|
|
|
updateGeometry(width, height, false); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void updateGeometry(float width, float height, boolean flipCoords) { |
|
|
|
public void updateGeometry(float width, float height, boolean flipCoords) { |
|
|
|
|
|
|
|
updateGeometry(width, height, flipCoords, false); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void updateGeometry(float width, float height, boolean flipCoords, boolean originAtCenter) { |
|
|
|
this.width = width; |
|
|
|
this.width = width; |
|
|
|
this.height = height; |
|
|
|
this.height = height; |
|
|
|
setBuffer(Type.Position, 3, new float[]{0, 0, 0, |
|
|
|
if (originAtCenter) { |
|
|
|
width, 0, 0, |
|
|
|
float halfWidth = width*0.5f; |
|
|
|
width, height, 0, |
|
|
|
float halfHeight = height*0.5f; |
|
|
|
0, height, 0 |
|
|
|
setBuffer(Type.Position, 3, new float[]{-halfWidth, -halfHeight, 0, |
|
|
|
}); |
|
|
|
halfWidth, -halfHeight, 0, |
|
|
|
|
|
|
|
halfWidth, halfHeight, 0, |
|
|
|
|
|
|
|
-halfWidth, halfHeight, 0 |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
setBuffer(Type.Position, 3, new float[]{0, 0, 0, |
|
|
|
|
|
|
|
width, 0, 0, |
|
|
|
|
|
|
|
width, height, 0, |
|
|
|
|
|
|
|
0, height, 0 |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (flipCoords){ |
|
|
|
if (flipCoords){ |
|
|
|
setBuffer(Type.TexCoord, 2, new float[]{0, 1, |
|
|
|
setBuffer(Type.TexCoord, 2, new float[]{0, 1, |
|
|
|