public async Task Render_SimpleGeometry_Ellipse()
        {
            await TestUtilities.InitializeWithGraphicsAsync();

            using (var solidBrush = new SolidBrushResource(Color4.LightGray))
                using (var solidBrushBorder = new SolidBrushResource(Color4.Gray))
                    using (var ellipseGeometry = new EllipseGeometryResource(new Vector2(512, 512), 400f, 300f))
                        using (var memRenderTarget = new MemoryRenderTarget(1024, 1024))
                        {
                            // Perform rendering
                            memRenderTarget.ClearColor = Color4.CornflowerBlue;

                            await memRenderTarget.RenderLoop.Register2DDrawingLayerAsync(graphics =>
                            {
                                // 2D rendering is made here
                                graphics.DrawGeometry(ellipseGeometry, solidBrushBorder, 3f);
                                graphics.FillGeometry(ellipseGeometry, solidBrush);
                            });

                            await memRenderTarget.AwaitRenderAsync();

                            // Take screenshot
                            var screenshot = await memRenderTarget.RenderLoop.GetScreenshotGdiAsync();

                            // TestUtilities.DumpToDesktop(screenshot, "Blub.png");

                            // Calculate and check difference
                            var diff = BitmapComparison.CalculatePercentageDifference(
                                screenshot, TestUtilities.LoadBitmapFromResource("Drawing2D", "SimpleGeometry2D_Ellipse.png"));
                            Assert.IsTrue(diff < 0.2, "Difference to reference image is to big!");
                        }
        }
Exemple #2
0
        public void Collision_Ellipse_to_Polygon()
        {
            EllipseGeometryResource ellipseGeometry01 = new EllipseGeometryResource(
                new Vector2(50, 50), 10f, 10f);
            EllipseGeometryResource ellipseGeometry02 = new EllipseGeometryResource(
                new Vector2(50, 80), 10f, 10f);

            PolygonGeometryResource polygonGeometry = new PolygonGeometryResource(new Polygon2D(new Vector2[]
            {
                new Vector2(55f, 50f),
                new Vector2(60f, 50f),
                new Vector2(55f, 55f)
            }));

            try
            {
                Assert.True(ellipseGeometry01.IntersectsWith(polygonGeometry));
                Assert.False(ellipseGeometry02.IntersectsWith(polygonGeometry));
            }
            finally
            {
                CommonTools.SafeDispose(ref ellipseGeometry01);
                CommonTools.SafeDispose(ref ellipseGeometry02);
                CommonTools.SafeDispose(ref polygonGeometry);
            }
        }
Exemple #3
0
        public async Task Render_SimpleGeometry_Ellipse()
        {
            await UnitTestHelper.InitializeWithGrahicsAsync();

            using (SolidBrushResource solidBrush = new SolidBrushResource(Color4.LightGray))
                using (SolidBrushResource solidBrushBorder = new SolidBrushResource(Color4.Gray))
                    using (EllipseGeometryResource ellipseGeometry = new EllipseGeometryResource(new Vector2(512, 512), 400f, 300f))
                        using (MemoryRenderTarget memRenderTarget = new MemoryRenderTarget(1024, 1024))
                        {
                            // Perform rendering
                            memRenderTarget.ClearColor = Color4.CornflowerBlue;
                            await memRenderTarget.RenderLoop.Register2DDrawingLayerAsync((graphics) =>
                            {
                                // 2D rendering is made here
                                graphics.DrawGeometry(ellipseGeometry, solidBrushBorder, 3f);
                                graphics.FillGeometry(ellipseGeometry, solidBrush);
                            });

                            await memRenderTarget.AwaitRenderAsync();

                            // Take screenshot
                            GDI.Bitmap screenshot = await memRenderTarget.RenderLoop.GetScreenshotGdiAsync();

                            //screenshot.DumpToDesktop("Blub.png");

                            // Calculate and check difference
                            float diff = BitmapComparison.CalculatePercentageDifference(
                                screenshot, Properties.Resources.ReferenceImage_SimpleGeometry2D_Ellipse);
                            Assert.True(diff < 0.2, "Difference to reference image is to big!");
                        }
        }
Exemple #4
0
        public void Collision_Ellipse_to_Ellipse()
        {
            EllipseGeometryResource ellipseGeometry01 = new EllipseGeometryResource(
                new Vector2(50, 50), 10f, 10f);
            EllipseGeometryResource ellipseGeometry02 = new EllipseGeometryResource(
                new Vector2(50, 80), 10f, 10f);
            EllipseGeometryResource ellipseGeometry03 = new EllipseGeometryResource(
                new Vector2(50, 70), 10f, 11f);

            try
            {
                Assert.False(ellipseGeometry01.IntersectsWith(ellipseGeometry02));
                Assert.True(ellipseGeometry03.IntersectsWith(ellipseGeometry02));
                Assert.True(ellipseGeometry02.IntersectsWith(ellipseGeometry03));
            }
            finally
            {
                CommonTools.SafeDispose(ref ellipseGeometry01);
                CommonTools.SafeDispose(ref ellipseGeometry02);
                CommonTools.SafeDispose(ref ellipseGeometry03);
            }
        }
        public async Task Collision_Ellipse_to_Polygon()
        {
            await TestUtilities.InitializeWithGraphicsAsync();

            var ellipseGeometry01 = new EllipseGeometryResource(
                new Vector2(50, 50), 10f, 10f);
            var ellipseGeometry02 = new EllipseGeometryResource(
                new Vector2(50, 80), 10f, 10f);

            var polygonGeometry = new PolygonGeometryResource(new Polygon2D(new Vector2(55f, 50f), new Vector2(60f, 50f), new Vector2(55f, 55f)));

            try
            {
                Assert.IsTrue(ellipseGeometry01.IntersectsWith(polygonGeometry));
                Assert.IsFalse(ellipseGeometry02.IntersectsWith(polygonGeometry));
            }
            finally
            {
                SeeingSharpUtil.SafeDispose(ref ellipseGeometry01);
                SeeingSharpUtil.SafeDispose(ref ellipseGeometry02);
                SeeingSharpUtil.SafeDispose(ref polygonGeometry);
            }
        }
        public async Task Collision_Ellipse_to_Ellipse()
        {
            await TestUtilities.InitializeWithGraphicsAsync();

            var ellipseGeometry01 = new EllipseGeometryResource(
                new Vector2(50, 50), 10f, 10f);
            var ellipseGeometry02 = new EllipseGeometryResource(
                new Vector2(50, 80), 10f, 10f);
            var ellipseGeometry03 = new EllipseGeometryResource(
                new Vector2(50, 70), 10f, 11f);

            try
            {
                Assert.IsFalse(ellipseGeometry01.IntersectsWith(ellipseGeometry02));
                Assert.IsTrue(ellipseGeometry03.IntersectsWith(ellipseGeometry02));
                Assert.IsTrue(ellipseGeometry02.IntersectsWith(ellipseGeometry03));
            }
            finally
            {
                SeeingSharpUtil.SafeDispose(ref ellipseGeometry01);
                SeeingSharpUtil.SafeDispose(ref ellipseGeometry02);
                SeeingSharpUtil.SafeDispose(ref ellipseGeometry03);
            }
        }