diff options
| author | Treeki <treeki@gmail.com> | 2011-04-06 02:31:39 +0200 | 
|---|---|---|
| committer | Treeki <treeki@gmail.com> | 2011-04-06 02:31:39 +0200 | 
| commit | c3fe440719b4e9a3fb3f4debe28c16cd7c60d7de (patch) | |
| tree | 304860508f3b83654b75c424583b4960e05c9113 /NW4RTools/ObjExporter.cs | |
| parent | cff0bbcdf339ec99b9a1311605fb16f6378b3fb4 (diff) | |
| download | nw4rtools-c3fe440719b4e9a3fb3f4debe28c16cd7c60d7de.tar.gz nw4rtools-c3fe440719b4e9a3fb3f4debe28c16cd7c60d7de.zip | |
exporters now properly handle position data which only contains X/Y
Diffstat (limited to '')
| -rw-r--r-- | NW4RTools/ObjExporter.cs | 15 | 
1 files changed, 11 insertions, 4 deletions
| diff --git a/NW4RTools/ObjExporter.cs b/NW4RTools/ObjExporter.cs index 2bd791c..214f84a 100644 --- a/NW4RTools/ObjExporter.cs +++ b/NW4RTools/ObjExporter.cs @@ -39,10 +39,14 @@ namespace NW4RTools {  			foreach (var kv in CurrentModel.VtxPosData) {  				VtxPosOffsets[kv.Value] = Offset;  				Output.WriteLine("# Vertex Positions: {0} [offset {1}]", kv.Key, Offset); -				 +  				for (int i = 0; i < kv.Value.EntryCount; i++) {  					float[] v = kv.Value.GetEntry(i); -					Output.WriteLine("v {0} {1} {2}", v[0], v[1], v[2]); +					if (kv.Value.ComponentCount == VertexSettings.CompCount.Position2) { +						Output.WriteLine("v {0} {1} 0.0", v[0], v[1]); +					} else { +						Output.WriteLine("v {0} {1} {2}", v[0], v[1], v[2]); +					}  				}  				Offset += kv.Value.EntryCount; @@ -140,12 +144,15 @@ namespace NW4RTools {  				GXIndexedVertex[] vtxs = new GXIndexedVertex[vtxCount];  				string[] pVtxs = new string[vtxCount]; +				// this is a little hackish, oh well +				string nrmPrefix = (vs.NormalDesc == VertexSettings.DescType.None) ? "" : "/"; +  				for (int i = 0; i < vtxCount; i++) {  					vtxs[i].LoadFrom(dl, vs);  					string tc = (vtxs[i].TexCoords[0] == -1) ? "" : (tcOffset + vtxs[i].TexCoords[0]).ToString(); -					string n = (vtxs[i].Normal == -1) ? "" : (nrmOffset + vtxs[i].Normal).ToString(); -					pVtxs[i] = String.Format(" {0}/{1}/{2}", posOffset + vtxs[i].Position, tc, n); +					string n = (vtxs[i].Normal == -1) ? "" : "/" + (nrmOffset + vtxs[i].Normal).ToString(); +					pVtxs[i] = String.Format(" {0}/{1}{2}{3}", posOffset + vtxs[i].Position, tc, nrmPrefix, n);  				}  				switch (prim) { | 
