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); }
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); }
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); }