1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
private FloatBuffer nodeVertices;
private FloatBuffer nodeColor;
private ByteBuffer nodeIndices;
private byte[]indices = {0, 1, 2, 3};
private void setupNodeVerticesBuffer(){
float[]coords = getCoordinates();
float[]vector = getVector();
final float[]array = {
/**
* QUAD
* coords[0] - SIDE_LENGTH + vector[0], coords[1] + SIDE_LENGTH + vector[1], coords[2],
* coords[0] + SIDE_LENGTH + vector[0], coords[1] + SIDE_LENGTH + vector[1], coords[2],
* coords[0] + SIDE_LENGTH + vector[0], coords[1] - SIDE_LENGTH + vector[1], coords[2],
* coords[0] - SIDE_LENGTH + vector[0], coords[1] - SIDE_LENGTH + vector[1], coords[2]
*/
coords[0] - SIDE_LENGTH + vector[0], coords[1] + SIDE_LENGTH + vector[1], coords[2],
coords[0] + SIDE_LENGTH + vector[0], coords[1] + SIDE_LENGTH + vector[1], coords[2],
coords[0] + SIDE_LENGTH + vector[0], coords[1] - SIDE_LENGTH + vector[1], coords[2],
coords[0] - SIDE_LENGTH + vector[0], coords[1] - SIDE_LENGTH + vector[1], coords[2]
};
nodeVertices = BufferUtil.newFloatBuffer(array.length);
nodeVertices.put(array);
nodeVertices.rewind();
}
private void setupNodeColorBuffer(){
float[]colorComponds = getColorComponents(this.getColor());
nodeColor = BufferUtil.newFloatBuffer(colorComponds.length);
nodeColor.put(colorComponds);
nodeColor.rewind();
}
private void setupNodeIndicesBuffer(){
nodeIndices = BufferUtil.newByteBuffer(this.indices.length);
nodeIndices.put(this.indices);
nodeIndices.rewind();
}
public void draw(GL gl, GLU glu) {
gl.glVertexPointer(3, GL.GL_FLOAT, 0, this.nodeVertices);
gl.glColorPointer(4, GL.GL_FLOAT, 0, this.nodeColor);
gl.glDrawElements(
GL.GL_QUADS,
this.indices.length,
GL.GL_UNSIGNED_BYTE,
this.nodeIndices);
} |
Partager