123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package de.tudarmstadt.informatik.hostage.ui2.fragment.opengl;
- import java.io.ByteArrayOutputStream;
- import java.io.InputStream;
- import java.io.IOException;
- import java.nio.ByteBuffer;
- import java.nio.ByteOrder;
- import java.nio.FloatBuffer;
- import android.opengl.GLES20;
- import android.util.Log;
- public class AnimatedMesh {
- private ByteBuffer data;
-
- private int vertexOffset;
- private int vertexSize;
- private int triangleOffset;
- private int triangleCount;
-
- public AnimatedMesh(InputStream is) {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- try {
- final int EOF = -1;
- int len;
- byte[] buffer = new byte[1 << 12];
- while (EOF != (len = is.read(buffer)))
- out.write(buffer, 0, len);
- } catch (IOException e) {
- e.printStackTrace();
- return;
- }
- //data = ByteBuffer.wrap(out.toByteArray());
- data = ByteBuffer.allocateDirect(out.size());
- data.order(ByteOrder.nativeOrder());
- data.put(out.toByteArray());
- data.position(0);
- int magicNum = data.getInt();
- int version = data.getInt();
-
- vertexSize = 48;
- vertexOffset = data.getInt();
- int vertexCount = data.getInt();
- triangleOffset = data.getInt();
- triangleCount = data.getInt();
- int boneOffset = data.getInt();
- int boneCount = data.getInt();
- int actionOffset = data.getInt();
- int actionCount = data.getInt();
-
- Log.i("tag", data.getFloat()+" "+data.getFloat()+" "+data.getFloat());
- }
-
- public void draw() {
- int positionIndex = 0;
- GLES20.glEnableVertexAttribArray(positionIndex);
- data.position(vertexOffset);
- GLES20.glVertexAttribPointer(positionIndex, 3, GLES20.GL_FLOAT, false, vertexSize, data.asFloatBuffer());
- data.position(triangleOffset);
- GLES20.glDrawElements(GLES20.GL_TRIANGLES, 3 * triangleCount, GLES20.GL_UNSIGNED_INT, data.asIntBuffer());
- //GLES20.glDrawArrays(GLES20.GL_TRIANGLES, 0, 3 * triangleCount);
- GLES20.glDisableVertexAttribArray(positionIndex);
- }
- }
|