Add spherical.toVector3 test (and fixes)
This commit is contained in:
parent
8e3b9e2b2d
commit
5141766de5
@ -51,8 +51,13 @@ Polar Spherical::ProjectOnHorizontalPlane() {
|
||||
}
|
||||
|
||||
Vector3 Spherical::ToVector3() {
|
||||
Vector3 v = Quaternion::Euler(
|
||||
Vector3(-this->verticalAngle, this->horizontalAngle, 0)) *
|
||||
Vector3::forward * this->distance;
|
||||
// Vector3 v = Quaternion::AngleAxis(this->horizontalAngle, Vector3::up) *
|
||||
// Quaternion::AngleAxis(this->verticalAngle, Vector3::left) *
|
||||
// Vector3::forward * this->distance;
|
||||
float verticalRad = verticalAngle * Angle::Deg2Rad;
|
||||
float horizontalRad = horizontalAngle * Angle::Deg2Rad;
|
||||
Vector3 v = Vector3(this->distance * cosf(verticalRad) * sinf(horizontalRad),
|
||||
this->distance * sinf(verticalRad),
|
||||
this->distance * cosf(verticalRad) * cosf(horizontalRad));
|
||||
return v;
|
||||
}
|
@ -29,4 +29,30 @@ TEST(Spherical, FromVector3) {
|
||||
EXPECT_FLOAT_EQ(s.horizontalAngle, 90.0F) << "s.hor 1 0 0";
|
||||
EXPECT_FLOAT_EQ(s.verticalAngle, 0.0F) << "s.vert 1 0 0";
|
||||
}
|
||||
|
||||
TEST(Spherical, ToVector3) {
|
||||
Vector3 v = Vector3(0, 0, 1);
|
||||
Spherical s = Spherical(v);
|
||||
Vector3 r = s.ToVector3();
|
||||
|
||||
EXPECT_FLOAT_EQ(r.x, 0.0F) << "toVector3.x 0 0 1";
|
||||
EXPECT_FLOAT_EQ(r.y, 0.0F) << "toVector3.y 0 0 1";
|
||||
EXPECT_FLOAT_EQ(r.z, 1.0F) << "toVector3.z 0 0 1";
|
||||
|
||||
v = Vector3(0, 1, 0);
|
||||
s = Spherical(v);
|
||||
r = s.ToVector3();
|
||||
|
||||
EXPECT_FLOAT_EQ(r.x, 0.0F) << "toVector3.x 0 1 0";
|
||||
EXPECT_FLOAT_EQ(r.y, 1.0F) << "toVector3.y 0 1 0";
|
||||
EXPECT_NEAR(r.z, 0.0F, 1.0e-06) << "toVector3.z 0 1 0";
|
||||
|
||||
v = Vector3(1, 0, 0);
|
||||
s = Spherical(v);
|
||||
r = s.ToVector3();
|
||||
|
||||
EXPECT_FLOAT_EQ(r.x, 1.0F) << "toVector3.x 1 0 0";
|
||||
EXPECT_FLOAT_EQ(r.y, 0.0F) << "toVector3.y 1 0 0";
|
||||
EXPECT_NEAR(r.z, 0.0F, 1.0e-06) << "toVector3.z 1 0 0";
|
||||
}
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user