public void EmptyList()
        {
            var vertexContainers    = new List <IndexedVertexData <float> >();
            var optimizedContainers = MeshBatchUtils.GroupContainersByPrimitiveType(vertexContainers);

            Assert.AreEqual(0, optimizedContainers.Count);
        }
        private void GroupContainersCreateRenderMeshes(List <IndexedVertexData <MeleeVertex> > vertexContainers)
        {
            var optimizedContainers = MeshBatchUtils.GroupContainersByPrimitiveType(vertexContainers);

            foreach (var container in optimizedContainers)
            {
                MeleeMesh meleeMesh = new MeleeMesh(container.Vertices, container.Indices, container.PrimitiveType);
                renderMeshes.Add(meleeMesh);
            }
        }
        public void EmptyContainers()
        {
            List <IndexedVertexData <float> > vertexContainers = new List <IndexedVertexData <float> >()
            {
                new IndexedVertexData <float>(new float[0], new int[0], PrimitiveType.Triangles),
                new IndexedVertexData <float>(new float[0], new int[0], PrimitiveType.Triangles)
            };

            var optimizedContainers = MeshBatchUtils.GroupContainersByPrimitiveType(vertexContainers);

            Assert.AreEqual(1, optimizedContainers.Count);
            Assert.AreEqual(0, optimizedContainers[0].Vertices.Length);
            Assert.AreEqual(0, optimizedContainers[0].Indices.Length);
        }
        public void CombinePoints()
        {
            var optimizedContainers = MeshBatchUtils.GroupContainersByPrimitiveType(pointsPoints);

            // Check that vertex data is combined.
            Assert.AreEqual(1, optimizedContainers.Count);
            CollectionAssert.AreEqual(verticesAb, optimizedContainers[0].Vertices);

            // Check that indices are offset.
            var expectedIndices = new List <int>()
            {
                0, 1, 2, 3, 4, 5
            };

            CollectionAssert.AreEqual(expectedIndices, optimizedContainers[0].Indices);
        }
        public void AlternatingTrianglesTriangleStrip()
        {
            var optimizedContainers = MeshBatchUtils.GroupContainersByPrimitiveType(trianglesTriangleStripTriangles);

            // Check that vertex data is combined.
            Assert.AreEqual(2, optimizedContainers.Count);
            CollectionAssert.AreEqual(verticesAc, optimizedContainers[0].Vertices);

            // Check that indices are offset.
            var expectedIndices = new List <int>()
            {
                0, 1, 2, 3, 4, 5
            };

            CollectionAssert.AreEqual(expectedIndices, optimizedContainers[0].Indices);
        }