public SceneDto ToDto() { return(new SceneDto { Id = Id, Name = Name, UnitOfMeasure = (Models.Uomtype)UnitOfMeasure, Units = Units, Materials = Materials.Select(x => x.ToDto()).ToList(), Cameras = Cameras.Select(x => x.ToDto()).ToList(), CurrentCamera = CurrentCamera?.Id, Lights = Lights.Select(x => x.ToDto()).ToList(), Textures = Textures.Select(x => x.ToDto()).ToList(), Meshes = Meshes.Select(x => x.ToDto()).ToList(), Skins = Skins.Select(x => x.ToDto()).ToList(), Root = Root.ToDto() }); }
/// <summary> /// Creates array of vertex and index buffers for entire scene. /// The number of array entries is equal to number of meshes in scene. /// </summary> /// <param name="device">Graphics device.</param> /// <param name="convert">Convertion function.</param> /// <param name="vertexBuffers">Output vertex buffer array.</param> /// <param name="indexBuffers">Output index buffer array.</param> public void Bake <TVertex> (GraphicsDevice device, Func <MeshVertex, TVertex> convert, out VertexBuffer[] vertexBuffers, out IndexBuffer[] indexBuffers) where TVertex : struct { vertexBuffers = Meshes.Select(m => m.CreateVertexBuffer <TVertex>(device, convert)).ToArray(); indexBuffers = Meshes.Select(m => m.CreateIndexBuffer(device)).ToArray(); }