public string SerializeOBJ(int vertexIndexOffset, int textureCoordinateIndexOffset, int normalIndexOffset)
        {
            //Temp
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendLine("o " + m_Name);

            foreach (Vertex vertex in m_Vertices)
            {
                //Add offset if needed
                if (m_Position != null && m_Position.IsNull() == false)
                {
                    Vertex tempVertex = new Vertex(vertex);
                    tempVertex.AddVector3f(m_Position);

                    stringBuilder.AppendLine("v " + tempVertex.ToString());
                }
                else
                {
                    stringBuilder.AppendLine("v " + vertex.ToString());
                }
            }

            foreach (TextureCoordinate textureCoordinate in m_TextureCoordinates)
            {
                stringBuilder.AppendLine("vt " + textureCoordinate.ToString());
            }

            foreach (Normal normal in m_Normals)
            {
                stringBuilder.AppendLine("vn " + normal.ToString());
            }

            foreach (Face face in m_Faces)
            {
                stringBuilder.AppendLine(face.SerializeOBJ(vertexIndexOffset, textureCoordinateIndexOffset, normalIndexOffset));
            }

            return(stringBuilder.ToString());
        }