/// <summary> /// Generates a cube model. /// </summary> /// <returns>The cube model.</returns> public Model GenerateCube() { Model m = new Model("cube") { Engine = this, Skinned = true, ModelMin = new BEPUutilities.Vector3(-1, -1, -1), ModelMax = new BEPUutilities.Vector3(1, 1, 1) }; ModelMesh mm = new ModelMesh("cube"); mm.vbo.Prepare(); TextureCoordinates tc = new TextureCoordinates(); mm.vbo.AddSide(Location.UnitX, tc, offs: true); mm.vbo.AddSide(Location.UnitY, tc, offs: true); mm.vbo.AddSide(Location.UnitZ, tc, offs: true); mm.vbo.AddSide(-Location.UnitX, tc, offs: true); mm.vbo.AddSide(-Location.UnitY, tc, offs: true); mm.vbo.AddSide(-Location.UnitZ, tc, offs: true); m.Original = new Model3D(); Model3DMesh m3m = new Model3DMesh() { Name = "cube" }; m3m.Indices = new List <int>(mm.vbo.Indices.ConvertAll((u) => (int)u)); m3m.Vertices = new List <BEPUutilities.Vector3>(mm.vbo.Vertices.ConvertAll((o) => o.ToLocation().ToBVector())); m3m.TexCoords = new List <BEPUutilities.Vector2>(mm.vbo.TexCoords.ConvertAll((o) => new BEPUutilities.Vector2(o.X, o.Y))); m3m.Normals = new List <BEPUutilities.Vector3>(mm.vbo.Normals.ConvertAll((o) => o.ToLocation().ToBVector())); m.Original.Meshes = new List <Model3DMesh>() { m3m }; mm.vbo.GenerateVBO(); mm.VBOGenned = true; m.Meshes.Add(mm); return(m); }
/// <summary> /// Generates a cube model. /// </summary> /// <returns>The cube model.</returns> public Model GenerateCube() { Model m = new Model("cube") { Engine = this, Skinned = true, ModelMin = new BEPUutilities.Vector3(-1, -1, -1), ModelMax = new BEPUutilities.Vector3(1, 1, 1) }; ModelMesh mm = new ModelMesh("cube"); Renderable.ListBuilder builder = new Renderable.ListBuilder(); builder.Prepare(); TextureCoordinates tc = new TextureCoordinates(); builder.AddSide(Location.UnitX, tc, offs: true); builder.AddSide(Location.UnitY, tc, offs: true); builder.AddSide(Location.UnitZ, tc, offs: true); builder.AddSide(-Location.UnitX, tc, offs: true); builder.AddSide(-Location.UnitY, tc, offs: true); builder.AddSide(-Location.UnitZ, tc, offs: true); m.Original = new Model3D(); Model3DMesh m3m = new Model3DMesh() { Name = "cube" }; m3m.Indices = builder.Indices.ToArray(); m3m.Vertices = builder.Vertices.ConvertAll((o) => o.ToLocation().ToBVector()).ToArray(); m3m.TexCoords = builder.TexCoords.ConvertAll((o) => new BEPUutilities.Vector2(o.X, o.Y)).ToArray(); m3m.Normals = builder.Normals.ConvertAll((o) => o.ToLocation().ToBVector()).ToArray(); m.Original.Meshes = new Model3DMesh[] { m3m }; mm.BaseRenderable.GenerateVBO(builder); m.AddMesh(mm); return(m); }