protected override void OnRenderFrame(FrameEventArgs e) { GL.ClearColor(Color.Black); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); GL.LoadIdentity(); GL.Rotate(cameraXAngle, 1, 0, 0); GL.Rotate(cameraYAngle, 0, 1, 0); GL.PushMatrix(); GL.Translate(cuboidXPossitionFromCenter, 0, cuboidZPossitionFromCenter); GL.Translate(translationXToRotationPoint, 0, translationZToRotationPoint); GL.Rotate(cuboidFallingZDirectionAngle, 1, 0, 0); GL.Rotate(cuboidFallingXDirectionAngle, 0, 0, 1); GL.Translate(-translationXToRotationPoint, 0, -translationZToRotationPoint); if (cuboidOrientation == CuboidOrientation.Standing) { Cuboid.DrawStandingCuboid(sizeUnit, cuboidColor); } else if (cuboidOrientation == CuboidOrientation.LyingXAxis) { Cuboid.DrawLyingCuboidXAxis(sizeUnit, cuboidColor); } else if (cuboidOrientation == CuboidOrientation.LyingZAxis) { Cuboid.DrawLyingCuboidZAxis(sizeUnit, cuboidColor); } GL.PopMatrix(); Floor.Draw(sizeUnit, numberOfTilesPerRow, primaryTileColor, secondaryTileColor); SwapBuffers(); }