rotate vec4 by qua

This commit is contained in:
BlackMATov
2021-01-26 02:26:48 +07:00
parent 1d5ee20967
commit c440789bee
4 changed files with 35 additions and 4 deletions

View File

@@ -285,7 +285,10 @@ TEST_CASE("vmath/ext") {
REQUIRE(rotate(float2(2.f,0.f), radians(90.f)) == uapprox2(0.f,2.f));
REQUIRE(rotate(float2(1.5f,0.f), radians(-90.f)) == uapprox2(0.f,-1.5f));
REQUIRE(rotate(float3(1.5f,0.f,0.f), qrotate_z(radians(90.f))) == uapprox3(0.f,1.5f,0.f));
REQUIRE(rotate(float3(1.5f,0.f,0.f), radians(90.f), float3(0,0,1)) == uapprox3(0.f,1.5f,0.f));
REQUIRE(rotate(float4(1.5f,0.f,0.f,1.f), qrotate_z(radians(90.f))) == uapprox4(0.f,1.5f,0.f,1.f));
REQUIRE(rotate(float4(1.5f,0.f,0.f,1.f), radians(90.f), float3(0,0,1)) == uapprox4(0.f,1.5f,0.f,1.f));
}

View File

@@ -59,9 +59,17 @@ TEST_CASE("vmath/qua_fun") {
REQUIRE(v == uapprox3(0.f,1.f,0.f));
}
{
float4 v{1,0,0,2};
REQUIRE(&v == &(v *= fqua{0,0,0.7071067812f,0.7071067812f}));
REQUIRE(v == uapprox4(0.f,1.f,0.f,2.f));
}
STATIC_REQUIRE(fqua{} * fqua{} == fqua{});
STATIC_REQUIRE(float3{1,2,3} * fqua{} == uapprox3(1.f,2.f,3.f));
STATIC_REQUIRE(float4{1,2,3,4} * fqua{} == uapprox4(1.f,2.f,3.f,4.f));
STATIC_REQUIRE(float3{1,0,0} * fqua{0,0,0.7071067812f,0.7071067812f} == uapprox3(0.f,1.f,0.f));
STATIC_REQUIRE(float4{1,0,0,2} * fqua{0,0,0.7071067812f,0.7071067812f} == uapprox4(0.f,1.f,0.f,2.f));
}
SUBCASE("Common Functions") {