#include "../Tests.h" #include "core/View.h" #define CV3(a, b, c) (&(CoreVector3){{a, b, c}}) static void testFromAngles() { CoreView v = CORE_VIEW; 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 = CORE_VIEW; 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 = CORE_VIEW; 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(); }