public void Get_NewDrawingPixelColor_ReturnsDefaultColor() { using var drawing = new ImageSharpDrawing(1, 1); var color = drawing.GetPixel(0, 0); var expected = default(Color); Assert.Equal(expected, color); }
public void SetGet_PixelColor_ReturnsOriginalColor(int drawingHeight, int drawingWidth, int x, int y, Color expected) { using var drawing = new ImageSharpDrawing(drawingHeight, drawingWidth); drawing.SetPixel(x, y, expected); var color = drawing.GetPixel(x, y); Assert.Equal(expected, color); }
public void Save_Drawing_DrawingSaved(string path) { var fileSystem = new MockFileSystem(); using var drawing = new ImageSharpDrawing(10, 10, fileSystem); drawing.Save(path); Assert.True(fileSystem.FileExists(path)); }
public void Save_DisposedDrawing_ThrowsExcpetion() { var fileSystem = new MockFileSystem(); using var drawing = new ImageSharpDrawing(10, 10, fileSystem); drawing.Dispose(); var path = "image.png"; Assert.Throws <ObjectDisposedException>(() => drawing.Save(path)); }
/// <summary> Renders the given scene. </summary> public IDrawing Render(Scene scene) { var drawing = new ImageSharpDrawing(_screenParameters.Width, _screenParameters.Height); var rayTracer = new RayTracer(scene, _renderParameters); Parallel.For(0, _screenParameters.Height, (y) => { for (var x = 0; x < _screenParameters.Width; ++x) { var direction = _viewportParameters.CameraRotation * _cameraConverter.ScreenToViewport(x, y); var ray = new Ray(_viewportParameters.CameraPosition, direction); var pixelColor = rayTracer.Trace(ray); drawing.SetPixel(x, y, pixelColor); } }); return(drawing); }