|
@@ -0,0 +1,46 @@
|
|
|
+#include "../Tests.h"
|
|
|
+#include "core/View.h"
|
|
|
+
|
|
|
+#define CV3(a, b, c) (&(CoreVector3){{a, b, c}})
|
|
|
+
|
|
|
+static void testFromAngles() {
|
|
|
+ CoreView v = {0};
|
|
|
+ coreUpdateDirections(&v, 0.0f, 0.0f);
|
|
|
+ CORE_TEST_V3(CV3(0.0f, 1.0f, 0.0f), &v.up);
|
|
|
+ CORE_TEST_V3(CV3(0.0f, -1.0f, 0.0f), &v.down);
|
|
|
+ CORE_TEST_V3(CV3(0.0f, 0.0f, -1.0f), &v.left);
|
|
|
+ CORE_TEST_V3(CV3(0.0f, 0.0f, 1.0f), &v.right);
|
|
|
+ CORE_TEST_V3(CV3(1.0f, 0.0f, 0.0f), &v.front);
|
|
|
+ CORE_TEST_V3(CV3(-1.0f, 0.0f, 0.0f), &v.back);
|
|
|
+}
|
|
|
+
|
|
|
+static void testFromQuaternion() {
|
|
|
+ CoreView v = {0};
|
|
|
+ coreUpdateDirectionsQ(&v, &CORE_UNIT_QUATERNION);
|
|
|
+ CORE_TEST_V3(CV3(0.0f, 1.0f, 0.0f), &v.up);
|
|
|
+ CORE_TEST_V3(CV3(0.0f, -1.0f, 0.0f), &v.down);
|
|
|
+ CORE_TEST_V3(CV3(0.0f, 0.0f, -1.0f), &v.left);
|
|
|
+ CORE_TEST_V3(CV3(0.0f, 0.0f, 1.0f), &v.right);
|
|
|
+ CORE_TEST_V3(CV3(1.0f, 0.0f, 0.0f), &v.front);
|
|
|
+ CORE_TEST_V3(CV3(-1.0f, 0.0f, 0.0f), &v.back);
|
|
|
+}
|
|
|
+
|
|
|
+static void testUpdateMatrix() {
|
|
|
+ CoreView v = {0};
|
|
|
+ CoreMatrix* m = coreUpdateMatrix(&v, CV3(1.0f, 2.0f, 3.0f));
|
|
|
+
|
|
|
+ char buffer[128];
|
|
|
+ coreToStringMatrix(m, buffer, sizeof(buffer));
|
|
|
+
|
|
|
+ CORE_TEST_STRING("[[0.000, 0.000, 0.000, -0.000], "
|
|
|
+ "[0.000, 0.000, 0.000, -0.000], "
|
|
|
+ "[0.000, 0.000, 0.000, -0.000], "
|
|
|
+ "[0.000, 0.000, 0.000, 1.000]]",
|
|
|
+ buffer);
|
|
|
+}
|
|
|
+
|
|
|
+void coreTestView() {
|
|
|
+ testFromAngles();
|
|
|
+ testFromQuaternion();
|
|
|
+ testUpdateMatrix();
|
|
|
+}
|