mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-23 01:21:42 +00:00
[wpimath] Add Translation3d.nearest() (#8015)
This commit is contained in:
@@ -186,3 +186,31 @@ TEST(Translation3dTest, Constexpr) {
|
||||
static_assert(projected.X() == 1_m);
|
||||
static_assert(projected.Y() == 2_m);
|
||||
}
|
||||
|
||||
TEST(Translation3dTest, Nearest) {
|
||||
const Translation3d origin{0_m, 0_m, 0_m};
|
||||
|
||||
// Distance sort
|
||||
// translations are in order of closest to farthest away from the origin at
|
||||
// various positions in 3D space.
|
||||
const Translation3d translation1{1_m, 0_m, 0_m};
|
||||
const Translation3d translation2{0_m, 2_m, 0_m};
|
||||
const Translation3d translation3{0_m, 0_m, 3_m};
|
||||
const Translation3d translation4{2_m, 2_m, 2_m};
|
||||
const Translation3d translation5{3_m, 3_m, 3_m};
|
||||
|
||||
auto nearest1 = origin.Nearest({translation5, translation3, translation4});
|
||||
EXPECT_DOUBLE_EQ(nearest1.X().value(), translation3.X().value());
|
||||
EXPECT_DOUBLE_EQ(nearest1.Y().value(), translation3.Y().value());
|
||||
EXPECT_DOUBLE_EQ(nearest1.Z().value(), translation3.Z().value());
|
||||
|
||||
auto nearest2 = origin.Nearest({translation1, translation2, translation3});
|
||||
EXPECT_DOUBLE_EQ(nearest2.X().value(), translation1.X().value());
|
||||
EXPECT_DOUBLE_EQ(nearest2.Y().value(), translation1.Y().value());
|
||||
EXPECT_DOUBLE_EQ(nearest2.Z().value(), translation1.Z().value());
|
||||
|
||||
auto nearest3 = origin.Nearest({translation4, translation2, translation3});
|
||||
EXPECT_DOUBLE_EQ(nearest3.X().value(), translation2.X().value());
|
||||
EXPECT_DOUBLE_EQ(nearest3.Y().value(), translation2.Y().value());
|
||||
EXPECT_DOUBLE_EQ(nearest3.Z().value(), translation2.Z().value());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user