[wpimath] Add overloads for Transform2d and Transform3d (#5757)

Adds overloads for Transform2d() constructor to accept x, y, and heading and for Transform3d() to accept x, y, z and rotation as a shorthand for the normal constructors.
This commit is contained in:
Anit Mangal
2023-10-13 11:51:39 +05:30
committed by GitHub
parent 9a0aafd8ab
commit c0b4c6cce6
6 changed files with 56 additions and 0 deletions

View File

@@ -33,6 +33,17 @@ class WPILIB_DLLEXPORT Transform2d {
*/
constexpr Transform2d(Translation2d translation, Rotation2d rotation);
/**
* Constructs a transform with x and y translations instead of a separate
* Translation2d.
*
* @param x The x component of the translational component of the transform.
* @param y The y component of the translational component of the transform.
* @param rotation The rotational component of the transform.
*/
constexpr Transform2d(units::meter_t x, units::meter_t y,
Rotation2d rotation);
/**
* Constructs the identity transform -- maps an initial pose to itself.
*/

View File

@@ -16,6 +16,10 @@ constexpr Transform2d::Transform2d(Translation2d translation,
Rotation2d rotation)
: m_translation(std::move(translation)), m_rotation(std::move(rotation)) {}
constexpr Transform2d::Transform2d(units::meter_t x, units::meter_t y,
Rotation2d rotation)
: m_translation(x, y), m_rotation(std::move(rotation)) {}
constexpr Transform2d Transform2d::Inverse() const {
// We are rotating the difference between the translations
// using a clockwise rotation matrix. This transforms the global

View File

@@ -33,6 +33,18 @@ class WPILIB_DLLEXPORT Transform3d {
*/
Transform3d(Translation3d translation, Rotation3d rotation);
/**
* Constructs a transform with x, y, and z translations instead of a separate
* Translation3d.
*
* @param x The x component of the translational component of the transform.
* @param y The y component of the translational component of the transform.
* @param z The z component of the translational component of the transform.
* @param rotation The rotational component of the transform.
*/
Transform3d(units::meter_t x, units::meter_t y, units::meter_t z,
Rotation3d rotation);
/**
* Constructs the identity transform -- maps an initial pose to itself.
*/