Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.plaigon.mdlloader;
- import java.io.DataInputStream;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.nio.ByteBuffer;
- import java.nio.ByteOrder;
- import java.nio.channels.FileChannel;
- import com.google.common.io.LittleEndianDataInputStream;
- import fr.plaigon.md5loader.GLApp;
- public class MDLReader
- {
- public String filepath = "";
- public String filename = "";
- public MDLReader(String fileName)
- {
- loadobject(fileName);
- }
- public void loadobject(String objfilename)
- {
- if (objfilename != null && objfilename.length() > 0)
- {
- String[] pathParts = GLApp.getPathAndFile(objfilename);
- filepath = pathParts[0];
- filename = pathParts[1];
- try
- {
- loadobject(GLApp.getInputStream(objfilename));
- }
- catch (Exception e)
- {
- System.out.println("MDLReader.loadobject(): Failed to read file: " + objfilename + " " + e);
- }
- }
- }
- public void loadobject(InputStream in)
- {
- if (in != null)
- {
- int skinWidth, skinHeight;
- FileInputStream fis = (FileInputStream)in;
- try
- {
- LittleEndianDataInputStream dis = new LittleEndianDataInputStream(fis);
- //Header start
- System.out.println(dis.readInt());//ident or "magical number"
- System.out.println(dis.readInt());//version
- //Scale model vector coordinates
- System.out.println(dis.readFloat());
- System.out.println(dis.readFloat());
- System.out.println(dis.readFloat());
- //Translation model vector coordinates
- System.out.println(dis.readFloat());
- System.out.println(dis.readFloat());
- System.out.println(dis.readFloat());
- System.out.println(dis.readFloat());//Sphere radius
- //Eyes model vector coordinates
- System.out.println(dis.readFloat());
- System.out.println(dis.readFloat());
- System.out.println(dis.readFloat());
- System.out.println(dis.readInt());//num_skins
- System.out.println(skinWidth = dis.readInt());//skinwidth
- System.out.println(skinHeight = dis.readInt());//skinheight
- System.out.println(dis.readInt());//num_verts
- System.out.println(dis.readInt());//num_tris
- System.out.println(dis.readInt());//num_frames
- System.out.println(dis.readInt());//synctype
- System.out.println(dis.readInt());//flags
- System.out.println(dis.readFloat());//average size of triangles
- System.out.println(dis.readInt());
- for(int i = 0; i < skinWidth * skinHeight; i++)
- System.out.println(dis.readByte());
- //Header end
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement