Exemplo n.º 1
0
        public override void Draw(GameTime gameTime, Camera camera, Matrix parentTransform) // Matrix? parentTransform = null
        {
            //Matrix matrix = (parentTransform == null) ? Matrix.Identity : (Matrix)parentTransform;

            Matrix[] transforms = new Matrix[Model.Bones.Count];
            Model.CopyAbsoluteBoneTransformsTo(transforms);
            foreach (ModelMesh mesh in Model.Meshes)
            {
                foreach (
                    BasicEffect effect in mesh.Effects)
                {
                    if (Texture != null)
                    {
                        effect.TextureEnabled = true;
                        effect.Texture        = Texture;
                    }

                    /*else
                    *  {
                    *   effect.DiffuseColor = DiffuseColor.ToVector3();
                    *  } //*/
                    effect.EnableDefaultLighting();
                    effect.DiffuseColor = DiffuseColor.ToVector3();
                    effect.World        = /*transforms[mesh.ParentBone.Index] */ World * parentTransform; // matrix
                    effect.View         = camera.View;
                    effect.Projection   = camera.Projection;
                }
                mesh.Draw();
            }

            //base.Draw(gameTime, camera, parentTransform);
            foreach (Transform transform in Children)
            {
                transform.Draw(gameTime, camera, World * parentTransform);//matrix);
            }
        }