mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
[wpimath] Increase constexpr support in geometry data types (#4231)
This uses std::is_constant_evaluated() to conditionally use the gcem library for constexpr calculations.
This commit is contained in:
@@ -40,3 +40,21 @@ TEST(Transform2dTest, Composition) {
|
||||
EXPECT_DOUBLE_EQ(transformedSeparate.Rotation().Degrees().value(),
|
||||
transformedCombined.Rotation().Degrees().value());
|
||||
}
|
||||
|
||||
TEST(Transform2dTest, Constexpr) {
|
||||
constexpr Transform2d defaultCtor;
|
||||
constexpr Transform2d translationRotationCtor{Translation2d{},
|
||||
Rotation2d{10_deg}};
|
||||
constexpr auto multiplied = translationRotationCtor * 5;
|
||||
constexpr auto divided = translationRotationCtor / 2;
|
||||
|
||||
static_assert(defaultCtor.Translation().X() == 0_m);
|
||||
static_assert(translationRotationCtor.X() == 0_m);
|
||||
static_assert(translationRotationCtor.Y() == 0_m);
|
||||
static_assert(multiplied.Rotation().Degrees() == 50_deg);
|
||||
static_assert(translationRotationCtor.Inverse().Rotation().Degrees() ==
|
||||
(-10_deg));
|
||||
static_assert(translationRotationCtor.Inverse().X() == 0_m);
|
||||
static_assert(translationRotationCtor.Inverse().Y() == 0_m);
|
||||
static_assert(divided.Rotation().Degrees() == 5_deg);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user