Added the ability to create a quad with the origin at the center.
git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10695 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
413bbbf680
commit
81d7a145a7
@ -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;
|
||||||
}
|
}
|
||||||
@ -90,14 +105,27 @@ public class Quad extends Mesh {
|
|||||||
}
|
}
|
||||||
|
|
||||||
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,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user