package javaforce.gl;
/**
* Converts 3d model files to JF3D.
*
* @author pquiring
*/
import java.io.*;
import javaforce.JFLog;
public class ModelConvert {
public static void usage() {
System.out.println("Desc : ModelConvert");
System.out.println(" Usage : infile outfile");
System.out.println(" Usage : infolder outfolder");
System.out.println("In formats: .3ds .blend");
System.out.println("Out format: .jf3d");
System.exit(0);
}
public static void main(String args[]) {
if (args == null || args.length != 2) usage();
String in = args[0];
String out = args[1];
File inf = new File(in);
File outf = new File(out);
if (inf.isDirectory() && inf.isDirectory() ) {
doFolder(in ,out);
} else {
if (inf.isDirectory() || outf.isDirectory()) {
usage();
}
doFile(in, out);
}
}
private static void doFile(String in, String out) {
File inf = new File(in);
File outf = new File(out);
if (outf.exists()) {
long inTime = inf.lastModified();
long outTime = outf.lastModified();
if (outTime >= inTime) {
System.out.println(out + " is up-to-date");
return;
}
}
GLModel model = null;
if (in.toLowerCase().endsWith(".3ds")) {
GL_3DS _3ds = new GL_3DS();
model = _3ds.load(in);
} else
if (in.toLowerCase().endsWith(".blend")) {
GL_BLEND blend = new GL_BLEND();
model = blend.load(in);
} else usage();
if (model == null) {
JFLog.log("ModelConvert:Error:Load mesh failed:" + in);
return;
}
GL_JF3D jf3d = new GL_JF3D();
jf3d.save(model, out);
System.out.println("Converted " + in + " to " + out);
}
private static void doFolder(String in, String out) {
File ins[] = new File(in).listFiles();
for(int a=0;a<ins.length;a++) {
File f = ins[a];
if (f.isDirectory()) continue;
if (!f.getName().endsWith(".blend")) continue;
String _in = f.getAbsolutePath();
String fn = f.getName();
String _out = out + "/" + fn.substring(0, fn.length() - 6) + ".jf3d";
doFile(_in, _out);
}
}
}