Esempio n. 1
0
        public ModelsEx(MainWindow window)
            : base(4)
        {
            // only enabled first pipeline
            for (int i = 1; i < NumPipelines; ++i)
            {
                Pipelines[i].IsEnabled = false;
            }

            Settings     = new SettingsModel();
            Window       = new WindowModel(window);
            Display      = new DisplayModel(this);
            ExportConfig = new ExportConfigModel();
            ViewData     = new TextureViewData(this);

            var stats = new List <StatisticModel>();

            for (int i = 0; i < NumPipelines; ++i)
            {
                stats.Add(new StatisticModel(this, Display, i));
            }
            Statistics = stats;

            ZoomBox = new BoxOverlay(this);
            Overlay.Overlays.Add(ZoomBox);

            resizeController       = new ResizeController(this);
            computeImageController = new ComputeImageController(this);
            paintController        = new PaintController(this);
            clientDropController   = new ClientDropController(this);
            cropController         = new CropController(this);
        }
Esempio n. 2
0
        public void ExportOverlayed()
        {
            var models = new Models(1);

            models.AddImageFromFile(TestData.Directory + "sphere.png");
            models.Apply();
            // 31 by 31 image
            Assert.AreEqual(models.Images.Size.X, 31);
            Assert.AreEqual(models.Images.Size.Y, 31);

            var boxes = new BoxOverlay(models);

            models.Overlay.Overlays.Add(boxes);

            var dim = models.Images.Size;

            boxes.Boxes.Add(new BoxOverlay.Box
            {
                Start  = new Size2(18, 11).ToCoords(dim.XY),
                End    = new Size2(24, 20).ToCoords(dim.XY),
                Border = 1,
                Color  = new Color(1.0f, 1.0f, 0.0f)
            });

            boxes.Boxes.Add(new BoxOverlay.Box
            {
                Start  = new Size2(7, 9).ToCoords(dim.XY),
                End    = new Size2(15, 15).ToCoords(dim.XY),
                Border = 2,
                Color  = new Color(1.0f, 0.0f, 0.0f)
            });

            Assert.IsTrue(boxes.HasWork);
            Assert.IsNotNull(models.Overlay.Overlay);

            var filename = ExportTest.ExportDir + "overlayed";

            // create export directory
            ExportTest.Init(null);
            models.Export.Export(new ExportDescription(models.Pipelines[0].Image, filename, "png")
            {
                FileFormat = GliFormat.RGBA8_SRGB,
                Overlay    = models.Overlay.Overlay
            });

            var imported  = IO.LoadImageTexture(filename + ".png");
            var reference = IO.LoadImageTexture(TestData.Directory + "sphere_with_overlay.png");

            TestData.CompareColors(reference.GetPixelColors(LayerMipmapSlice.Mip0), imported.GetPixelColors(LayerMipmapSlice.Mip0), Color.Channel.Rgba, 0.0f);
        }
Esempio n. 3
0
        public void TestBoxOverlay()
        {
            var models = new Models(1);

            models.AddImageFromFile(TestData.Directory + "sphere.png");

            // 31 by 31 image
            Assert.AreEqual(models.Images.Size.X, 31);
            Assert.AreEqual(models.Images.Size.Y, 31);

            var boxes = new BoxOverlay(models);

            models.Overlay.Overlays.Add(boxes);

            Assert.IsNull(models.Overlay.Overlay);
            Assert.IsFalse(boxes.HasWork);

            var dim = models.Images.Size;

            boxes.Boxes.Add(new BoxOverlay.Box
            {
                Start  = new Size2(1, 2).ToCoords(dim.XY),
                End    = new Size2(8, 7).ToCoords(dim.XY),
                Border = 2,
                Color  = new Color(1.0f, 0.0f, 0.0f)
            });

            Assert.IsTrue(boxes.HasWork);
            Assert.IsNotNull(models.Overlay.Overlay);

            var reference    = IO.LoadImageTexture(TestData.Directory + "sphere_overlay.png");
            var refColors    = reference.GetPixelColors(LayerMipmapSlice.Mip0);
            var actualColors = models.Overlay.Overlay.GetPixelColors(LayerMipmapSlice.Mip0);

            models.Export.Export(new ExportDescription(models.Overlay.Overlay, ExportTest.ExportDir + "overlay_tmp", "png")
            {
                FileFormat = GliFormat.RGBA8_SRGB
            });

            TestData.CompareColors(refColors, actualColors, Color.Channel.Rgba, 0.0f);
        }