static void Main(string[] args) { var interior = InteriorResource.Load("test.dif"); InteriorResource.Save(interior, "test3.dif"); var interior2 = InteriorResource.Load("test3.dif"); }
static void Main(string[] args) { Console.WriteLine("obj2difSharp v1.0"); if (args.Length == 0) { Console.WriteLine("Usage obj2difSharp <filename> [-f] [-r]"); Console.WriteLine("filename: the path to the file to convert to dif"); Console.WriteLine("(optional) f: flip normals"); Console.WriteLine("(optional) r: reverse vertex order"); } else { var objreader = new ObjReader(); objreader.Parse(args[0]); var flipnormal = false; var reverseverts = false; foreach (var arg in args) { if (arg == "-f") { flipnormal = true; } if (arg == "-r") { reverseverts = true; } } var builders = new List <DifBuilder>(); var builder = new DifBuilder(); builders.Add(builder); builder.FlipNormals = flipnormal; var tricount = 0; foreach (var group in objreader.Groups) { foreach (var face in group.Faces) { if (tricount > 16384) //Max limits reached { builder = new DifBuilder(); builder.FlipNormals = flipnormal; builders.Add(builder); tricount = 0; } tricount++; if (reverseverts) { builder.AddTriangle(group.Points[face.v3], group.Points[face.v2], group.Points[face.v1], group.UV[face.uv3], group.UV[face.uv2], group.UV[face.uv1], group.Normals[face.n3], Path.GetFileNameWithoutExtension(face.material)); } else { builder.AddTriangle(group.Points[face.v1], group.Points[face.v2], group.Points[face.v3], group.UV[face.uv1], group.UV[face.uv2], group.UV[face.uv3], group.Normals[face.n1], Path.GetFileNameWithoutExtension(face.material)); } } } Console.WriteLine("Building Difs"); for (int i = 0; i < builders.Count; i++) { var build = builders[i]; var dif = new InteriorResource(); build.Build(ref dif); InteriorResource.Save(dif, Path.ChangeExtension(args[0], null) + i + ".dif"); } } }