diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2010-01-16 17:50:43 +0100 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2010-01-16 17:50:43 +0100 |
commit | 32117d0bf27e0a72165707fe4e56d231136e734b (patch) | |
tree | df5de7dedbfa7084227122505b96a4bc1d0845a0 /src/de/gamezock/metacraft/data/VertexBuffer.java | |
parent | b9cc8e8871de73bf70406913f18b446a1fc723e8 (diff) | |
download | metacraft-32117d0bf27e0a72165707fe4e56d231136e734b.tar metacraft-32117d0bf27e0a72165707fe4e56d231136e734b.zip |
Use index buffers to render tiles
Diffstat (limited to 'src/de/gamezock/metacraft/data/VertexBuffer.java')
-rw-r--r-- | src/de/gamezock/metacraft/data/VertexBuffer.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/de/gamezock/metacraft/data/VertexBuffer.java b/src/de/gamezock/metacraft/data/VertexBuffer.java new file mode 100644 index 0000000..c2205a0 --- /dev/null +++ b/src/de/gamezock/metacraft/data/VertexBuffer.java @@ -0,0 +1,60 @@ +package de.gamezock.metacraft.data; + +import java.nio.FloatBuffer; + +import javax.vecmath.Point3f; +import javax.vecmath.Tuple3f; +import javax.vecmath.Vector3f; + +public class VertexBuffer { + private FloatBuffer buffer; + + public VertexBuffer(int num) { + buffer = FloatBuffer.allocate(2*3*num); + } + + public FloatBuffer getBuffer() { + return buffer; + } + + private void setTuple(int i, Tuple3f tuple) { + buffer.position(3*i); + + buffer.put(tuple.x); + buffer.put(tuple.y); + buffer.put(tuple.z); + } + + private Point3f getTuple(int i) { + buffer.position(3*i); + + return new Point3f(buffer.get(), buffer.get(), buffer.get()); + } + + public void setNormal(int i, Vector3f normal) { + setTuple(2*i, normal); + } + + public void setVertex(int i, Point3f vertex) { + setTuple(2*i + 1, vertex); + } + + public Vector3f getNormal(int i) { + return new Vector3f(getTuple(2*i)); + } + + public Point3f getVertex(int i) { + return getTuple(2*i + 1); + } + + public int getSize() { + return buffer.capacity() / (2*3); + } + + public void dump() { + buffer.clear(); + + while(buffer.hasRemaining()) + System.out.println(buffer.get()); + } +} |