* Fix OBJ/MTL parsing bug when using linux line breaks

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7644 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
sha..rd 14 years ago
parent 993b220922
commit 17af890e86
  1. 12
      engine/src/core-plugins/com/jme3/scene/plugins/MTLLoader.java
  2. 7
      engine/src/core-plugins/com/jme3/scene/plugins/OBJLoader.java

@ -87,6 +87,10 @@ public class MTLLoader implements AssetLoader {
return result;
}
protected void skipLine(){
scan.skip(".*\r{0,1}\n");
}
protected void resetMaterial(){
ambient.set(ColorRGBA.Black);
diffuse.set(ColorRGBA.Black);
@ -173,7 +177,7 @@ public class MTLLoader implements AssetLoader {
String cmd = scan.next().toLowerCase();
if (cmd.startsWith("#")){
// skip entire comment until next line
nextStatement();
skipLine();
}else if (cmd.equals("newmtl")){
String name = scan.next();
startMaterial(name);
@ -190,7 +194,7 @@ public class MTLLoader implements AssetLoader {
transparent = true;
}else if (cmd.equals("map_ka")){
// ignore it for now
nextStatement();
skipLine();
}else if (cmd.equals("map_kd")){
String path = nextStatement();
diffuseMap = loadTexture(path);
@ -233,10 +237,10 @@ public class MTLLoader implements AssetLoader {
}else if (cmd.equals("ke") || cmd.equals("ni")){
// Ni: index of refraction - unsupported in jME
// Ke: emission color
nextStatement();
skipLine();
}else{
System.out.println("Unknown statement in MTL! "+cmd);
nextStatement();
skipLine();
}
return true;

@ -334,13 +334,8 @@ public final class OBJLoader implements AssetLoader {
}
}
private static final Pattern nl = Pattern.compile("\n");
private static final Pattern ws = Pattern.compile("\\p{javaWhitespace}+");
protected void nextStatement(){
scan.useDelimiter(nl);
scan.next();
scan.useDelimiter(ws);
scan.skip(".*\r{0,1}\n");
}
protected boolean readLine() throws IOException{

Loading…
Cancel
Save