public static GpuMesh ToGpuMesh(this IMesh source) { if (source is GpuMesh) { return((GpuMesh)source); } return(GpuMesh.Optimize(source)); }
public void Optimize_IdIsSet_KeepsId() { var index = new IndexedMesh("id1"); var gpuMesh = GpuMesh.Optimize(index); Assert.AreEqual(index.Id, gpuMesh.Id); }
public void Optimize_TwoTriangles_4VerticesAnd6IndicesCreated() { var builder = new IndexedMeshBuilder(); builder.BeginBuffer(); builder.BeginPrimitive(PrimitiveTopology.TriangleList); builder.Position(new Vector3(0, 0, 0)); builder.Position(new Vector3(1, 0, 0)); builder.Position(new Vector3(0, 1, 0)); builder.Position(new Vector3(1, 0, 0)); builder.Position(new Vector3(1, 1, 0)); builder.Position(new Vector3(0, 1, 0)); var mesh = GpuMesh.Optimize(builder.Complete()); Assert.AreEqual(1, mesh.Primitives.Count); Assert.AreEqual(6, mesh.Primitives[0].Count); Assert.AreEqual(4, mesh.Primitives[0].BufferView.GetStreamReader <Vector3>(StreamKey.Position).Count); }
public void Optimize_EmptyMesh_DoesntThrow() { var index = new IndexedMesh(); Assert.DoesNotThrow(() => GpuMesh.Optimize(index)); }