// Load the material in the return data (if necessary) and return the appropriate index private int getMaterialIndex(String matName) { Integer loaded = loadedMaterials.get(matName); if (loaded != null) { return loaded; } // Otherwise load it int newIndex = loadedMaterials.size(); Material mat = materialMap.get(matName); parseAssert(mat != null); int transType = mat.alpha == 1.0 ? MeshData.NO_TRANS : MeshData.A_ONE_TRANS; data.addMaterial( mat.diffuseTex, mat.relDiffuseTex, mat.diffuse, mat.ambient, mat.spec, mat.shininess, transType, new Color4d(1, 1, 1, mat.alpha)); loadedMaterials.put(matName, newIndex); return newIndex; }