summaryrefslogtreecommitdiffstats
path: root/opengl/java/android/opengl/Group.java
diff options
context:
space:
mode:
Diffstat (limited to 'opengl/java/android/opengl/Group.java')
-rw-r--r--opengl/java/android/opengl/Group.java155
1 files changed, 0 insertions, 155 deletions
diff --git a/opengl/java/android/opengl/Group.java b/opengl/java/android/opengl/Group.java
deleted file mode 100644
index 1ef2953..0000000
--- a/opengl/java/android/opengl/Group.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.opengl;
-
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.ShortBuffer;
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Iterator;
-import javax.microedition.khronos.opengles.*;
-
-class MaterialIndices {
-
- private Material material = null;
- private ShortBuffer indexBuffer = null;
-
- public MaterialIndices(Material material, ShortBuffer indexBuffer) {
- this.material = material;
- this.indexBuffer = indexBuffer;
- }
-
- public Material getMaterial() {
- return material;
- }
-
- public ShortBuffer getIndexBuffer() {
- return indexBuffer;
- }
-}
-
-/**
- * {@hide}
- */
-public class Group {
-
- private Object3D parent;
- private String name;
-
- private List<MaterialIndices> materialIndices =
- new ArrayList<MaterialIndices>();
-
- public Group(Object3D parent) {
- this.parent = parent;
- }
-
- public String getName() {
- return name;
- }
-
- public void load(DataInputStream dis) throws IOException {
- dis.readInt(); // name length
- this.name = dis.readUTF();
-
- int numMaterials = dis.readInt();
-
- for (int i = 0; i < numMaterials; i++) {
- dis.readInt(); // material name length
- String matName = dis.readUTF();
- Material material = parent.getMaterial(matName);
-
- int numIndices = dis.readInt();
- byte[] indicesBytes = new byte[numIndices * 2];
- dis.readFully(indicesBytes);
-
- // Swap bytes from network to native order if necessary
- if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN) {
- int idx = 0;
- for (int j = 0; j < numIndices; j++) {
- byte b0 = indicesBytes[idx];
- byte b1 = indicesBytes[idx + 1];
- indicesBytes[idx] = b1;
- indicesBytes[idx + 1] = b0;
- idx += 2;
- }
- }
-
- ByteBuffer ibb = ByteBuffer.allocateDirect(2*numIndices);
- ibb.order(ByteOrder.nativeOrder());
- ibb.put(indicesBytes);
- ibb.position(0);
-
- ShortBuffer sb = ibb.asShortBuffer();
- materialIndices.add(new MaterialIndices(material, sb));
- }
- }
-
- public int getNumTriangles() {
- int numTriangles = 0;
- Iterator<MaterialIndices> iter = materialIndices.iterator();
- while (iter.hasNext()) {
- MaterialIndices matIdx = iter.next();
- ShortBuffer indexBuffer = matIdx.getIndexBuffer();
- numTriangles += indexBuffer.capacity()/3;
- }
- return numTriangles;
- }
-
- public void draw(GL10 gl) {
- gl.glDisableClientState(gl.GL_COLOR_ARRAY);
-
- gl.glVertexPointer(3, gl.GL_FIXED, 0, parent.getVertexBuffer());
- gl.glEnableClientState(gl.GL_VERTEX_ARRAY);
-
- gl.glNormalPointer(gl.GL_FIXED, 0, parent.getNormalBuffer());
- gl.glEnableClientState(gl.GL_NORMAL_ARRAY);
-
- if (parent.hasTexcoords()) {
- gl.glTexCoordPointer(2, gl.GL_FIXED, 0, parent.getTexcoordBuffer());
- gl.glEnableClientState(gl.GL_TEXTURE_COORD_ARRAY);
- gl.glEnable(gl.GL_TEXTURE_2D);
- } else {
- gl.glDisable(gl.GL_TEXTURE_2D);
- }
-
- Iterator<MaterialIndices> iter = materialIndices.iterator();
- while (iter.hasNext()) {
- MaterialIndices matIdx = iter.next();
- ShortBuffer indexBuffer = matIdx.getIndexBuffer();
- Material mat = matIdx.getMaterial();
- mat.setMaterialParameters(gl);
- if (parent.hasTexcoords() && mat.getMap_Kd().length() > 0) {
- Texture texture = parent.getTexture(mat.getMap_Kd());
- texture.setTextureParameters(gl);
- }
-
- gl.glDrawElements(gl.GL_TRIANGLES,
- indexBuffer.capacity(),
- gl.GL_UNSIGNED_SHORT,
- indexBuffer);
- }
- }
-
- public String toString() {
- return "Group[" +
- "name=" + name +
- "]";
- }
-}