public void CreateBoundingBoxByPoints() { Assert.Throws<BoundingBox.NoPointsSpecified>(() => new BoundingBox(null)); Assert.Throws<BoundingBox.NoPointsSpecified>(() => new BoundingBox(new Vector3D[0])); var points = new[] { new Vector3D(2, 5, 7), new Vector3D(6, 4, 2), new Vector3D(1, 7, 9), }; var boundingBox = new BoundingBox(points); Assert.AreEqual(boundingBox.Min, new Vector3D(1, 4, 2)); Assert.AreEqual(boundingBox.Max, new Vector3D(6, 7, 9)); }
public override void DrawRectangle(Rectangle area) { GL.Begin(BeginMode.Quads); var points = new[] { GraphicsDevice.Screen.ToPixelSpace(area.TopLeft), GraphicsDevice.Screen.ToPixelSpace(area.TopRight), GraphicsDevice.Screen.ToPixelSpace(area.BottomRight), GraphicsDevice.Screen.ToPixelSpace(area.BottomLeft) }; foreach (var point in points) GL.Vertex2(point.X, point.Y); GL.End(); }
public HudScene(ScreenSpace screen, NumberFactory numberFactory) { var view = screen.Viewport; var center = view.Width / 2f; var left = view.Left; var top = view.Top; var right = view.Right; pointsNumber = numberFactory.CreateNumber(this, left, top, 0.05f, Alignment.Left, 0, DefaultColors.Gray); levelCaption = new Sprite("LevelCaption", Rectangle.FromCenter(center, top + 0.02f, 0.07f, 0.03f)); levelCaption.Color = DefaultColors.Yellow; // ReSharper disable DoNotCallOverridableMethodsInConstructor Add(levelCaption); levelNumber = numberFactory.CreateNumber(this, center, levelCaption.DrawArea.Bottom, 0.022f, Alignment.Center, 2, DefaultColors.Gray); var offsets = new[,] { { 0.108f, 0.025f }, { 0.083f, 0.033f }, { 0.05f, 0.05f } }; errorIcons = new Sprite[3]; for (int i = 0; i < errorIcons.Length; i++) Add(errorIcons[i] = new Sprite("ErrorIcon", new Rectangle(right - offsets[i, 0], top, offsets[i, 1], offsets[i, 1]))); foreach (var control in Controls.FindAll(x => x is Sprite)) control.RenderLayer = (int)GameRenderLayer.Hud; }