public void Draw()
        {
            if (DefaultShader != null && DefaultShader.Use())
            {
                ShaderProgram.UseVertexBuffer(DefaultVertexBuffer);
            }
            else
            {
                if (ShaderProgram.CurrentBoundVBuffer != DefaultVertexBuffer)
                {
                    ShaderProgram.UseVertexBuffer(DefaultVertexBuffer);
                }
            }
            ShaderProgram.UseIndexBuffer(IndexBuffer);
            Transform.ApplyToShader(ShaderProgram.CurrentInUseShader);
            ShaderProgram.CurrentInUseShader.FinalizeTransformations();

            foreach (ModelMeshPart part in Parts)
            {
                part.Draw();
            }
        }