diff options
Diffstat (limited to 'src/net/java/joglutils/test3ds/MyModel.java')
-rw-r--r-- | src/net/java/joglutils/test3ds/MyModel.java | 91 |
1 files changed, 48 insertions, 43 deletions
diff --git a/src/net/java/joglutils/test3ds/MyModel.java b/src/net/java/joglutils/test3ds/MyModel.java index fbdca36..31ce989 100644 --- a/src/net/java/joglutils/test3ds/MyModel.java +++ b/src/net/java/joglutils/test3ds/MyModel.java @@ -1,34 +1,34 @@ /*
* Copyright (c) 2006 Greg Rodgers All Rights Reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
- *
+ *
* - Redistribution of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
- *
+ *
* - Redistribution in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- *
+ *
* The names of Greg Rodgers, Sun Microsystems, Inc. or the names of
* contributors may not be used to endorse or promote products derived from
* this software without specific prior written permission.
- *
+ *
* This software is provided "AS IS," without a warranty of any kind. ALL
* EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
* INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. GREG RODGERS,
* SUN MICROSYSTEMS, INC. ("SUN"), AND SUN'S LICENSORS SHALL NOT BE LIABLE FOR
* ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL GREG
- * RODGERS, SUN, OR SUN'S LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT
+ * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL GREG
+ * RODGERS, SUN, OR SUN'S LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT
* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF GREG
* RODGERS OR SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
- *
+ *
* You acknowledge that this software is not designed or intended for use
* in the design, construction, operation or maintenance of any nuclear
* facility.
@@ -36,13 +36,18 @@ package net.java.joglutils.test3ds;
-import net.java.joglutils.ThreeDS.*;
-import com.sun.opengl.util.texture.Texture;
-import com.sun.opengl.util.texture.TextureCoords;
-import com.sun.opengl.util.texture.TextureIO;
import java.io.File;
import java.io.IOException;
-import javax.media.opengl.*;
+
+import com.jogamp.opengl.GL;
+import com.jogamp.opengl.GL2;
+import com.jogamp.opengl.GLAutoDrawable;
+import com.jogamp.opengl.util.texture.Texture;
+import com.jogamp.opengl.util.texture.TextureCoords;
+import com.jogamp.opengl.util.texture.TextureIO;
+
+import net.java.joglutils.ThreeDS.Model3DS;
+import net.java.joglutils.ThreeDS.Obj;
public class MyModel extends Model3DS
{
@@ -50,76 +55,76 @@ public class MyModel extends Model3DS private TextureCoords[] textureCoords;
private int compiledList;
private boolean loaded = false;
-
+
// Constructor
public MyModel()
{
}
-
+
public boolean isLoaded()
{
return loaded;
}
-
- public boolean load(GLAutoDrawable gLDrawable, String file)
+
+ public boolean load(final GLAutoDrawable gLDrawable, final String file)
{
if (!super.load(file))
return false;
-
- GL2 gl = gLDrawable.getGL().getGL2();
- int numMaterials = materials.size();
-
+
+ final GL2 gl = gLDrawable.getGL().getGL2();
+ final int numMaterials = materials.size();
+
texture = new Texture[numMaterials];
for (int i=0; i<numMaterials; i++) {
loadTexture(materials.get(i).strFile, i);
materials.get(i).texureId = i;
}
-
+
compiledList = gl.glGenLists(1);
gl.glNewList(compiledList, GL2.GL_COMPILE);
genList(gLDrawable);
gl.glEndList();
-
+
loaded = true;
-
+
return loaded;
}
-
- public void render(GLAutoDrawable gLDrawable)
+
+ public void render(final GLAutoDrawable gLDrawable)
{
- GL2 gl = gLDrawable.getGL().getGL2();
+ final GL2 gl = gLDrawable.getGL().getGL2();
gl.glCallList(compiledList);
}
- private void loadTexture(String strFile, int id)
+ private void loadTexture(final String strFile, final int id)
{
- File file = new File(strFile);
+ final File file = new File(strFile);
try {
texture[id] = TextureIO.newTexture(file, true);
}
- catch (IOException e) {
+ catch (final IOException e) {
System.err.println(e.getMessage());
return;
}
}
-
- private void genList(GLAutoDrawable gLDrawable)
+
+ private void genList(final GLAutoDrawable gLDrawable)
{
- GL2 gl = gLDrawable.getGL().getGL2();
+ final GL2 gl = gLDrawable.getGL().getGL2();
TextureCoords coords;
-
+
for (int i=0; i<objects.size(); i++) {
- Obj tempObj = objects.get(i);
+ final Obj tempObj = objects.get(i);
if(tempObj.hasTexture) {
- texture[tempObj.materialID].enable();
- texture[tempObj.materialID].bind();
+ texture[tempObj.materialID].enable(gl);
+ texture[tempObj.materialID].bind(gl);
coords = texture[tempObj.materialID].getImageTexCoords();
}
-
- gl.glBegin(GL2.GL_TRIANGLES);
+
+ gl.glBegin(GL.GL_TRIANGLES);
for (int j=0; j<tempObj.numOfFaces; j++) {
for (int whichVertex=0; whichVertex<3; whichVertex++) {
- int index = tempObj.faces[j].vertIndex[whichVertex];
+ final int index = tempObj.faces[j].vertIndex[whichVertex];
gl.glNormal3f(tempObj.normals[index].x, tempObj.normals[index].y, tempObj.normals[index].z);
if (tempObj.hasTexture) {
if (tempObj.texVerts != null)
@@ -127,7 +132,7 @@ public class MyModel extends Model3DS }
else {
if (materials.size() < tempObj.materialID) {
- byte pColor[] = materials.get(tempObj.materialID).color;
+ final byte pColor[] = materials.get(tempObj.materialID).color;
// Do something with the color
}
}
@@ -135,9 +140,9 @@ public class MyModel extends Model3DS }
}
gl.glEnd();
-
+
if (tempObj.hasTexture)
- texture[tempObj.materialID].disable();
+ texture[tempObj.materialID].disable(gl);
}
}
}
|