using Blacklight.Core.Cameras; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Azimuth; namespace Blacklight.Core.UnitTests.Cameras { public class ScreenSpaceCameraTests : UnitTestSharp.TestFixture { public class Ctor : UnitTestSharp.TestFixture { public void EmptyCtor() { var camera = new ScreenSpaceCamera(); CheckEqual(1, camera.Magnification); CheckEqual(Vector.Zero, camera.Position); CheckEqual(new AffineMatrix(0, Vector.Zero, 1), camera.CameraToProjection); CheckEqual(new AffineMatrix(0, Vector.Zero, 1), camera.ProjectionToCamera); } public void ViewportCtor() { var viewport = new Viewport(800, 600); var camera = new ScreenSpaceCamera(viewport); CheckEqual(1, camera.Magnification); CheckEqual(new Vector(400, -300), camera.Position); } } public void ResizeMovesPosition() { var viewport = new Viewport(800, 600); var camera = new ScreenSpaceCamera(viewport); viewport.Resize(300, 400); CheckEqual(new Vector(150, -200), camera.Position); } public void MagnificationChangesPosition() { var viewport = new Viewport(800, 600); var camera = new ScreenSpaceCamera(viewport); camera.Magnification = 2; CheckEqual(new Vector(200, -150), camera.Position); } public void MagnificationChangesCameraToProjection() { var camera = new ScreenSpaceCamera(); camera.Magnification = 2; CheckEqual(new AffineMatrix(0, Vector.Zero, 2), camera.CameraToProjection); CheckEqual(new AffineMatrix(0, Vector.Zero, 0.5), camera.ProjectionToCamera); } } }