mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-29 02:21:44 +00:00
61 lines
1.8 KiB
C
61 lines
1.8 KiB
C
|
|
/*----------------------------------------------------------------------------*/
|
||
|
|
/* Copyright (c) 2019 FIRST. All Rights Reserved. */
|
||
|
|
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||
|
|
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||
|
|
/* the project. */
|
||
|
|
/*----------------------------------------------------------------------------*/
|
||
|
|
|
||
|
|
#pragma once
|
||
|
|
|
||
|
|
#include "Translation2d.h"
|
||
|
|
|
||
|
|
namespace frc {
|
||
|
|
|
||
|
|
class Pose2d;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Represents a transformation for a Pose2d.
|
||
|
|
*/
|
||
|
|
class Transform2d {
|
||
|
|
public:
|
||
|
|
/**
|
||
|
|
* Constructs the transform that maps the initial pose to the final pose.
|
||
|
|
*
|
||
|
|
* @param initial The initial pose for the transformation.
|
||
|
|
* @param final The final pose for the transformation.
|
||
|
|
*/
|
||
|
|
Transform2d(Pose2d initial, Pose2d final);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Constructs a transform with the given translation and rotation components.
|
||
|
|
*
|
||
|
|
* @param translation Translational component of the transform.
|
||
|
|
* @param rotation Rotational component of the transform.
|
||
|
|
*/
|
||
|
|
Transform2d(Translation2d translation, Rotation2d rotation);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Constructs the identity transform -- maps an initial pose to itself.
|
||
|
|
*/
|
||
|
|
constexpr Transform2d() = default;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns the translation component of the transformation.
|
||
|
|
*
|
||
|
|
* @return Reference to the translational component of the transform.
|
||
|
|
*/
|
||
|
|
const Translation2d& Translation() const { return m_translation; }
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns the rotational component of the transformation.
|
||
|
|
*
|
||
|
|
* @return Reference to the rotational component of the transform.
|
||
|
|
*/
|
||
|
|
const Rotation2d& Rotation() const { return m_rotation; }
|
||
|
|
|
||
|
|
private:
|
||
|
|
Translation2d m_translation;
|
||
|
|
Rotation2d m_rotation;
|
||
|
|
};
|
||
|
|
} // namespace frc
|