|
|
|
@ -88,10 +88,8 @@ import static com.jme3.util.xml.SAXUtil.*; |
|
|
|
|
public class MeshLoader extends DefaultHandler implements AssetLoader { |
|
|
|
|
|
|
|
|
|
private static final Logger logger = Logger.getLogger(MeshLoader.class.getName()); |
|
|
|
|
|
|
|
|
|
public static boolean AUTO_INTERLEAVE = true; |
|
|
|
|
public static boolean HARDWARE_SKINNING = false; |
|
|
|
|
|
|
|
|
|
private static final Type[] TEXCOORD_TYPES = |
|
|
|
|
new Type[]{ |
|
|
|
|
Type.TexCoord, |
|
|
|
@ -101,14 +99,11 @@ public class MeshLoader extends DefaultHandler implements AssetLoader { |
|
|
|
|
Type.TexCoord5, |
|
|
|
|
Type.TexCoord6, |
|
|
|
|
Type.TexCoord7, |
|
|
|
|
Type.TexCoord8, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
Type.TexCoord8,}; |
|
|
|
|
private String meshName; |
|
|
|
|
private String folderName; |
|
|
|
|
private AssetManager assetManager; |
|
|
|
|
private MaterialList materialList; |
|
|
|
|
|
|
|
|
|
// Data per submesh/sharedgeom
|
|
|
|
|
private ShortBuffer sb; |
|
|
|
|
private IntBuffer ib; |
|
|
|
@ -121,13 +116,11 @@ public class MeshLoader extends DefaultHandler implements AssetLoader { |
|
|
|
|
private int vertCount; |
|
|
|
|
private boolean usesSharedVerts; |
|
|
|
|
private boolean usesBigIndices; |
|
|
|
|
|
|
|
|
|
// Global data
|
|
|
|
|
private Mesh sharedMesh; |
|
|
|
|
private int meshIndex = 0; |
|
|
|
|
private int texCoordIndex = 0; |
|
|
|
|
private String ignoreUntilEnd = null; |
|
|
|
|
|
|
|
|
|
private List<Geometry> geoms = new ArrayList<Geometry>(); |
|
|
|
|
private IntMap<List<VertexBuffer>> lodLevels = new IntMap<List<VertexBuffer>>(); |
|
|
|
|
private AnimData animData; |
|
|
|
@ -788,6 +781,10 @@ public class MeshLoader extends DefaultHandler implements AssetLoader { |
|
|
|
|
if (key instanceof OgreMeshKey) { |
|
|
|
|
meshKey = (OgreMeshKey) key; |
|
|
|
|
materialList = meshKey.getMaterialList(); |
|
|
|
|
String materialName = meshKey.getMaterialName(); |
|
|
|
|
if (materialList == null && materialName != null) { |
|
|
|
|
materialList = (MaterialList) assetManager.loadAsset(new OgreMaterialKey(folderName + materialName + ".material")); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
try { |
|
|
|
|
materialList = (MaterialList) assetManager.loadAsset(new OgreMaterialKey(folderName + meshName + ".material")); |
|
|
|
|