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);
        }
        public ExportSCF(String path, String dest)
        {
            string e = Path.GetExtension(path).ToLower();

            debugOutput = "";

            switch (e)
            {
            case ".dae":
                mParser = new ColladaParser(path);
                break;

            case ".obj":
                mParser = new ObjParser(path);
                break;

            default:
                debugOutput += "I don't know what that is\n";
                return;
                //break;
            }

            if (mParser.IsFinished)
            {
                mGeometryLibrary = mParser.GeometryLibrary;
            }

            if (dest.Equals(""))
            {
                WriteSCF.OpenFile("/Users/derrm/Desktop/Test.scf");
            }
            else
            {
                WriteSCF.OpenFile(dest);
            }

            WriteSCFData();
            WriteSCF.CloseFile();
        }