public void Render(IRenderer renderer) { Vector3 pos3d = new Vector3(Position.X, -20, Position.Y); renderer.PushMatrix(); renderer.Translate(pos3d); renderer.Rotate(-Vector3.UnitY, Angle); renderer.Rotate(Vector3.UnitZ, -Math.PI / 2); renderer.PushMatrix(); if (harmless.Stopped) renderer.DrawMesh(Mesh.RedPlane); else renderer.DrawMesh(Mesh.Shot); renderer.PopMatrix(); renderer.PopMatrix(); }
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(); }
public void Render(IRenderer renderer) { renderer.PushMatrix(); renderer.Translate(new Vector3(0, -200, -50)); renderer.DrawMesh(Mesh.Backdrop); renderer.PopMatrix(); }
void RenderBox(IRenderer renderer, Box2d box) { renderer.PushMatrix(); renderer.Translate(Logic2World(box.X, box.Y)); renderer.Rotate(-Vector3.UnitY, box.Rotation); float amin = (float)box.Amin; float amax = (float)box.Amax; float bmin = (float)box.Bmin; float bmax = (float)box.Bmax; renderer.DrawLine(new Vector3(amin, 0, bmin), new Vector3(amin, 0, bmax)); renderer.DrawLine(new Vector3(amax, 0, bmin), new Vector3(amax, 0, bmax)); renderer.DrawLine(new Vector3(amin, 0, bmin), new Vector3(amax, 0, bmin)); renderer.DrawLine(new Vector3(amin, 0, bmax), new Vector3(amax, 0, bmax)); renderer.PopMatrix(); }