You could build the cube manually based on the parameters (only 12 polys and easy to visualize, so it's not too difficult). Here is basically how you would do it (off the top of my head). I don't have access to my PC at the moment, so check for typos. You'll need to define the texture(s) to use for the faces ahead of time, or pass that information to the method.
public Object3D getBox( float scale, float x, float y, float z )
{
Object3D box = new Object3D( 12 );
float xoffset = x * scale / 2.0f;
float yoffset = y * scale / 2.0f;
float zoffset = z * scale / 2.0f;
box.addTriangle( new SimpleVector( -xoffset, -yoffset, -zoffset ), 0, 0,
new SimpleVector( -xoffset, yoffset, -zoffset ), 0, 1,
new SimpleVector( xoffset, yoffset, -zoffset ), 1, 1,
TextureManager.getInstance().getTextureID(
"-Z Texture Here" ) );
box.addTriangle( new SimpleVector( xoffset, yoffset, -zoffset ), 1, 1,
new SimpleVector( xoffset, -yoffset, -zoffset ), 1, 0,
new SimpleVector( -xoffset, -yoffset, -zoffset ), 0, 0,
TextureManager.getInstance().getTextureID(
"-Z Texture Here" ) );
box.addTriangle( new SimpleVector( -xoffset, -yoffset, zoffset ), 0, 0,
new SimpleVector( -xoffset, yoffset, zoffset ), 0, 1,
new SimpleVector( xoffset, yoffset, zoffset ), 1, 1,
TextureManager.getInstance().getTextureID(
"+Z Texture Here" ) );
box.addTriangle( new SimpleVector( xoffset, yoffset, zoffset ), 1, 1,
new SimpleVector( xoffset, -yoffset, zoffset ), 1, 0,
new SimpleVector( -xoffset, -yoffset, zoffset ), 0, 0,
TextureManager.getInstance().getTextureID(
"+Z Texture Here" ) );
box.addTriangle( new SimpleVector( -xoffset, -yoffset, zoffset ), 0, 0,
new SimpleVector( -xoffset, -yoffset, -zoffset ), 0, 1,
new SimpleVector( xoffset, -yoffset, -zoffset ), 1, 1,
TextureManager.getInstance().getTextureID(
"-Y Texture Here" ) );
box.addTriangle( new SimpleVector( xoffset, -yoffset, -zoffset ), 1, 1,
new SimpleVector( xoffset, -yoffset, zoffset ), 1, 0,
new SimpleVector( -xoffset, -yoffset, zoffset ), 0, 0,
TextureManager.getInstance().getTextureID(
"-Y Texture Here" ) );
box.addTriangle( new SimpleVector( -xoffset, yoffset, -zoffset ), 0, 0,
new SimpleVector( -xoffset, yoffset, zoffset ), 0, 1,
new SimpleVector( xoffset, yoffset, zoffset ), 1, 1,
TextureManager.getInstance().getTextureID(
"+Y Texture Here" ) );
box.addTriangle( new SimpleVector( xoffset, yoffset, zoffset ), 1, 1,
new SimpleVector( xoffset, yoffset, -zoffset ), 1, 0,
new SimpleVector( -xoffset, yoffset, -zoffset ), 0, 0,
TextureManager.getInstance().getTextureID(
"+Y Texture Here" ) );
box.addTriangle( new SimpleVector( -xoffset, -yoffset, zoffset ), 0, 0,
new SimpleVector( -xoffset, yoffset, zoffset ), 0, 1,
new SimpleVector( -xoffset, yoffset, -zoffset ), 1, 1,
TextureManager.getInstance().getTextureID(
"-X Texture Here" ) );
box.addTriangle( new SimpleVector( -xoffset, yoffset, -zoffset ), 1, 1,
new SimpleVector( -xoffset, -yoffset, -zoffset ), 1, 0,
new SimpleVector( -xoffset, -yoffset, zoffset ), 0, 0,
TextureManager.getInstance().getTextureID(
"-X Texture Here" ) );
box.addTriangle( new SimpleVector( xoffset, -yoffset, -zoffset ), 0, 0,
new SimpleVector( xoffset, yoffset, -zoffset ), 0, 1,
new SimpleVector( xoffset, yoffset, zoffset ), 1, 1,
TextureManager.getInstance().getTextureID(
"+X Texture Here" ) );
box.addTriangle( new SimpleVector( xoffset, yoffset, zoffset ), 1, 1,
new SimpleVector( xoffset, -yoffset, zoffset ), 1, 0,
new SimpleVector( xoffset, -yoffset, -zoffset ), 0, 0,
TextureManager.getInstance().getTextureID(
"+X Texture Here" ) );
return box;
}