two-type dot and cross functions

This commit is contained in:
BlackMATov
2021-02-24 07:23:48 +07:00
parent 302987a422
commit f0b616aa09
7 changed files with 52 additions and 26 deletions

View File

@@ -126,7 +126,9 @@ TEST_CASE("vmath/fun") {
STATIC_CHECK(distance2(5.f, 10.f) == uapprox(25.f));
STATIC_CHECK(distance2(-5.f, -10.f) == uapprox(25.f));
STATIC_CHECK(dot(2.f, 5.f) == uapprox(10.f));
STATIC_CHECK(dot(2, 5) == uapprox(10));
STATIC_CHECK(dot(2, 5.f) == uapprox(10.f));
STATIC_CHECK(normalize(0.5f) == uapprox(1.f));
STATIC_CHECK(faceforward(1.f, 2.f, 3.f) == uapprox(-1.f));

View File

@@ -132,6 +132,7 @@ TEST_CASE("vmath/qua_fun") {
SUBCASE("Geometric Functions") {
STATIC_CHECK(dot(qua(1,2,3,4),qua(3,4,5,6)) == 50);
STATIC_CHECK(dot(qfloat(1,2,3,4),qdouble(3,4,5,6)) == uapprox(50.0));
CHECK(length(qfloat(10.f,0.f,0.f,0.f)) == uapprox(10.f));
CHECK(length(qfloat(-10.f,0.f,0.f,0.f)) == uapprox(10.f));

View File

@@ -271,8 +271,17 @@ TEST_CASE("vmath/vec_fun") {
STATIC_CHECK(distance2(float2(-5.f,0.f), float2(-10.f,0.f)) == uapprox(25.f));
STATIC_CHECK(dot(int2(1,2),int2(3,4)) == 11);
STATIC_CHECK(dot(int2(1,2),float2(3,4)) == uapprox(11.f));
STATIC_CHECK(dot(float2(3,4),int2(1,2)) == uapprox(11.f));
STATIC_CHECK(cross(int2(1,0),int2(0,1)) == 1);
STATIC_CHECK(cross(int2(1,0),float2(0,1)) == uapprox(1.f));
STATIC_CHECK(cross(float2(0,1),int2(1,0)) == uapprox(-1.f));
STATIC_CHECK(cross(int3(1,0,0),int3(0,1,0)) == int3(0,0,1));
STATIC_CHECK(cross(int3(1,0,0),float3(0,1,0)) == uapprox3(0.f,0.f,1.f));
STATIC_CHECK(cross(float3(0,1,0),int3(1,0,0)) == uapprox3(0.f,0.f,-1.f));
CHECK(normalize(float2(0.5f,0.f)).x == uapprox(1.f));
STATIC_CHECK(faceforward(float2(1.f), float2(2.f), float2(3.f)).x == uapprox(-1.f));