Exemplo n.º 1
0
        private void RenderInternal(IRenderer renderer)
        {
            Plane plane = this;
              Mesh mesh = Mesh;
              bool shadow = ShadowMode;

              Vector3 pos3d = new Vector3((float)plane.X, -20, (float)plane.Y);
              renderer.PushMatrix();
              if (shadow)
              {
            renderer.PushMatrix();
            renderer.Translate(new Vector3(0, 0, -20f));
            GL.Scale(1, 1, 0);
            GL.Disable(OpenTK.OpenGL.Enums.EnableCap.DepthTest);
              }
              renderer.Translate(pos3d);
              renderer.Rotate(-Vector3.UnitY, plane.Angle);
              renderer.Rotate(Vector3.UnitZ, -Math.PI / 2);
              renderer.Color(Color.Green);
              float mult = 1.0f;
              float amin = mult * -3.6f, amax = mult * 1.5f;
              float bmin = mult * -0.25f, bmax = mult * 0.45f;
              if (!shadow)
            renderer.DrawMesh(mesh);
              else
              {
            renderer.Color(Color.Black);
            renderer.DrawMeshIgnoreColors(mesh);
              }
              if (shadow)
              {
            GL.Enable(OpenTK.OpenGL.Enums.EnableCap.DepthTest);
            renderer.PopMatrix();
              }
              renderer.PopMatrix();
        }