public void TestBoxCast() { Mesh mesh; using (MeshFactory factory = new MeshFactory()) { mesh = factory.CreateBox(1,1,1); PrintMesh(mesh); } Vertex[] castVerts = mesh.Vertices.Select<Vertex, Vertex>(i => { return VertexTypes.Cast(i, typeof(VertexTypes.PositionNormalTextured)); }).ToArray(); PrintArray(castVerts); mesh.Dispose(); }
private static void CreateShapes(Direct3DEngine engine) { Mesh mesh = CreateSimpleMesh(); engine.Geometry.Add(mesh); mesh.BindToPass(engine.D3DDevice, engine.Effect, 1); using (MeshFactory factory = new MeshFactory()) { mesh = factory.CreateSphere(0.5f, 12, 12); engine.Geometry.Add(mesh); mesh.BindToPass(engine.D3DDevice, engine.Effect, 2); mesh = factory.CreateTorus(0.5f, 2, 12, 20); engine.Geometry.Add(mesh); mesh.BindToPass(engine.D3DDevice, engine.Effect, 2); mesh = factory.CreateBox(1, 0, 1); engine.Geometry.Add(mesh); mesh.BindToPass(engine.D3DDevice, engine.Effect, 2); } }
void AddCustomGeometry() { engine.Geometry.Clear(); // This clears any meshes created by the Engine using (MeshFactory factory = new MeshFactory()) { Mesh mesh = factory.CreateGrid(10, 10, 4, 4, true); mesh.Translation = new Vector3(0, -20, 0); engine.BindMesh(mesh, 2); mesh = factory.CreateBox(0.2f, 0.5f, 1); mesh.BindToPass(engine.D3DDevice, engine.Effect, 2); engine.Geometry.Add(mesh); mesh.Translation = new Vector3(-1, 0, 4); mesh = factory.CreateSquare(5, 5); mesh.Translation = new Vector3(0,1,0); mesh.BindToPass(engine.D3DDevice, engine.Effect, 2); engine.Geometry.Add(mesh); mesh = factory.CreateSphere(2, 50, 50); mesh.BindToPass(engine.D3DDevice, engine.Effect, 2); engine.Geometry.Add(mesh); mesh.Translation = new Vector3(4, 0, -1); //mesh = factory.CreateTeapot(); //mesh.BindToPass(engine.D3DDevice, engine.Effect, "P2"); //engine.Geometry.Add(mesh); mesh = new ExpandedPlane(); (mesh as ExpandedPlane).Segments = new System.Drawing.Size(8, 8); mesh.Translation = new Vector3(0, -1, 0); mesh.Scale = new Vector3(10, 1, 10); engine.BindMesh(mesh, 2); } }