Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }