Example #1
0
        public void SaveToFile(string filePath)
        {
            var size = 2 * sizeof(int) + verts.Count * 3 * sizeof(float) + indices.Count * sizeof(int);

            try
            {
                using (var mmf = MemoryMappedFile.CreateFromFile(filePath, FileMode.Create, null, size))
                {
                    using (var accessor = mmf.CreateViewAccessor(0, size))
                    {
                        accessor.Write(0, verts.Count);
                        accessor.Write(sizeof(int), indices.Count);
                        long pos = 2 * sizeof(int);

                        for (var i = 0; i < verts.Count; ++i)
                        {
                            TreeUtility.MmvaWriteVector3(verts[i], accessor, ref pos);
                        }

                        for (var i = 0; i < indices.Count; ++i)
                        {
                            accessor.Write(pos, indices[i]);
                            pos += sizeof(int);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Debug.LogError($"Exception was thrown when saving file {filePath}\n{e.Message}");
                throw;
            }
        }