コード例 #1
0
ファイル: i3DMLEngine.cs プロジェクト: keyvank/i3dml
 private void RecursiveDraw(OM.Drawable drawable)
 {
     if (!drawable.Visible)
         return;
     if (drawable is OM.Model)
     {
         DrawModel(drawable as OM.Model);
     }
     else if (drawable is OM.IndexedMesh)
     {
         DrawMesh(drawable as OM.IndexedMesh);
     }
     else if (drawable is OM.PlaceBase)
     {
         OM.PlaceBase place = drawable as OM.PlaceBase;
         for (int i = 0; i < place.Length; i++)
             RecursiveDraw(place[i]);
     }
 }
コード例 #2
0
ファイル: i3DMLEngine.cs プロジェクト: keyvank/i3dml
        private void DrawMesh(OM.IndexedMesh mesh)
        {
            if (mesh.Indices.Length < 3 || mesh.Vertices.Length == 0)
                return;

            Drawer.Texture = mesh.TextureResource.Data as Texture2D;
            Drawer.World = Matrix.CreateScale(mesh.AbsoluteScale.ToXNAVector3()) * mesh.AbsoluteRotationMatrix.ToXNAMatrix() * Matrix.CreateTranslation(mesh.AbsolutePosition.ToXNAVector3());
            Drawer.View = Matrix.CreateLookAt(CurrentWorld.CameraPosition.ToXNAVector3(), CurrentWorld.CameraTarget.ToXNAVector3(), Vector3.Up);
            Drawer.Diffuse = mesh.Diffuse.ToXNAVector3();
            Drawer.Lighting = mesh.Lighting;

            VertexPositionNormalTextureColor[] varr = mesh.Vertices.ToXNAVertexArray();
            int[] iarr = mesh.Indices.ToXNAIndices();

            Drawer.DrawIndexedTriangleList(varr,iarr);
        }
コード例 #3
0
ファイル: i3DMLEngine.cs プロジェクト: keyvank/i3dml
 private void DrawModel(OM.Model m)
 {
     throw new NotImplementedException();
 }
コード例 #4
0
ファイル: i3DMLEngine.cs プロジェクト: keyvank/i3dml
 void CurrentWorld_Redirected(object sender, OM.RedirectedEventArgs e)
 {
     Navigate(e.NewUrl);
 }