2020-02-23 06:34:41 +00:00
|
|
|
using NUnit.Framework;
|
|
|
|
using RecrownedGTK.Graphics;
|
|
|
|
using OpenTK;
|
|
|
|
using System;
|
|
|
|
namespace RecrownedGTK.Tests.Graphics {
|
|
|
|
[TestFixture]
|
2020-02-23 18:56:02 +00:00
|
|
|
public class CameraTests {
|
2020-02-23 06:34:41 +00:00
|
|
|
Camera camera;
|
|
|
|
Vector4 position;
|
|
|
|
|
|
|
|
[SetUp]
|
|
|
|
public void Setup() {
|
|
|
|
camera = new Camera();
|
|
|
|
position = new Vector4();
|
|
|
|
position.X = 1;
|
|
|
|
position.W = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void TestCameraTranslation() {
|
|
|
|
Console.WriteLine("Camera Transform Matrix Before:");
|
|
|
|
Console.WriteLine(camera.Transform);
|
|
|
|
Console.WriteLine("Vector Before:");
|
|
|
|
Console.WriteLine(position);
|
|
|
|
camera.Translate = new Vector3(1, 1, 0);
|
|
|
|
Console.WriteLine("Matrix After:");
|
|
|
|
Console.WriteLine(camera.Transform);
|
|
|
|
Vector4 result = camera.Transform * position;
|
|
|
|
Console.WriteLine("Vector After:");
|
|
|
|
Console.WriteLine(result);
|
|
|
|
Vector4 expected = new Vector4(2, 1, 0, 1);
|
|
|
|
Assert.AreEqual(expected, result);
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void TestCameraRotation() {
|
|
|
|
Console.WriteLine("Camera Transform Matrix Before:");
|
|
|
|
Console.WriteLine(camera.Transform);
|
|
|
|
Console.WriteLine("Vector Before:");
|
|
|
|
Console.WriteLine(position);
|
|
|
|
camera.Rotation = new Vector3(0, 0, MathHelper.DegreesToRadians(90f));
|
|
|
|
Console.WriteLine("Matrix After:");
|
|
|
|
Console.WriteLine(camera.Transform);
|
|
|
|
Vector4 result = camera.Transform * position;
|
|
|
|
result.X = (float) Math.Round((float) result.X, 4);
|
|
|
|
Console.WriteLine("Vector After:");
|
|
|
|
Console.WriteLine(result);
|
|
|
|
Vector4 expected = new Vector4(0, 1, 0, 1);
|
|
|
|
Assert.AreEqual(expected, result);
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void TestCameraScale() {
|
|
|
|
Console.WriteLine("Camera Transform Matrix Before:");
|
|
|
|
Console.WriteLine(camera.Transform);
|
|
|
|
Console.WriteLine("Vector Before:");
|
|
|
|
Console.WriteLine(position);
|
|
|
|
camera.Scale = new Vector3(2f);
|
|
|
|
Console.WriteLine("Matrix After:");
|
|
|
|
Console.WriteLine(camera.Transform);
|
|
|
|
Vector4 result = camera.Transform * position;
|
|
|
|
Console.WriteLine("Vector After:");
|
|
|
|
Console.WriteLine(result);
|
|
|
|
Vector4 expected = new Vector4(2, 0, 0, 1);
|
|
|
|
Assert.AreEqual(expected, result);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|