private void WriteSCFTrianglesData(Triangles triangles) { WriteSCF.Write(triangles.mCount); int increment = 3 * triangles.mTriangleInputs.Count; int increment1 = triangles.mTriangleInputs.Count; for (int i = 0; i < triangles.mTrianglesP.mIndices.Count; i += increment) { WriteSCF.Write((ushort)triangles.mTrianglesP.mIndices[i + (0 * increment1)]); WriteSCF.Write((ushort)triangles.mTrianglesP.mIndices[i + (1 * increment1)]); WriteSCF.Write((ushort)triangles.mTrianglesP.mIndices[i + (2 * increment1)]); if (triangles.mTriangleInputs.Count > 1) { WriteSCF.Write((ushort)triangles.mTrianglesP.mIndices[i + 1 + (0 * increment1)]); WriteSCF.Write((ushort)triangles.mTrianglesP.mIndices[i + 1 + (1 * increment1)]); WriteSCF.Write((ushort)triangles.mTrianglesP.mIndices[i + 1 + (2 * increment1)]); } if (triangles.mTriangleInputs.Count > 2) { WriteSCF.Write((ushort)triangles.mTrianglesP.mIndices[i + 2 + (0 * increment1)]); WriteSCF.Write((ushort)triangles.mTrianglesP.mIndices[i + 2 + (1 * increment1)]); WriteSCF.Write((ushort)triangles.mTrianglesP.mIndices[i + 2 + (2 * increment1)]); } } }
private void WriteSCFArrayData(Mesh mesh) { for (int i = 0; i < mesh.mSources.Count; i++) { if (i != 2) { debugOutput += mesh.mSources[i].mSourceId + " Entered\n"; WriteSCF.Write(mesh.mSources[i].mFloatArray.mCount); for (int j = 0; j < mesh.mSources[i].mFloatArray.mCount; j++) { WriteSCF.Write(mesh.mSources[i].mFloatArray.mFloats[j]); } } if (i == 2) { debugOutput += mesh.mSources[i].mSourceId + " Entered\n"; WriteSCF.Write(mesh.mSources[i].mFloatArray.mCount / 3); for (int j = 0; j < mesh.mSources[i].mFloatArray.mCount; j += 3) { WriteSCF.Write(mesh.mSources[i].mFloatArray.mFloats[j]); WriteSCF.Write(mesh.mSources[i].mFloatArray.mFloats[j + 1]); } } } }
private void WriteSCFGeometryChunk(SCFSpecification.SCF scf) { SCFSpecification.SCFGeometryChunk geometry = scf.mHeader.mGeometryChunk; WriteSCF.Write(geometry.mChunkId); WriteSCF.Write(geometry.mNoOfTriangleGroups); WriteSCF.Write(geometry.mTotalNoOfTriangles); WriteSCF.Write(geometry.mDataOffset); }
private void WriteSCFMainChunk(SCFSpecification.SCF scf) { SCFSpecification.SCFMainChunk main = scf.mHeader.mMainChunk; WriteSCF.Write(main.mMagicNumber); WriteSCF.Write(main.mVersion); WriteSCF.Write(main.mChunkId); WriteSCF.Write(main.mNoOfSubChunks); }