Esempio n. 1
0
        private void RebuildSegments()
        {
            VertexCount = 0;
            var newSegments = new Dictionary <uint, TriangleSegment>();

            foreach (var segment in Segments)
            {
                TriangleSegment newSegment = new TriangleSegment
                {
                    ID         = segment.Key,
                    StartIndex = VertexCount
                };

                for (int i = segment.Value.StartIndex; i < segment.Value.EndIndex; i++)
                {
                    VertexScratch[VertexCount] = Verticies[i];
                    VertexCount++;
                }
                newSegment.EndIndex        = VertexCount;
                newSegments[newSegment.ID] = newSegment;
            }
            Datastructures.Swap(ref Segments, ref newSegments);
            Datastructures.Swap(ref Verticies, ref VertexScratch);
            Buffer.SetData(Verticies);
        }