29 #include "../eigen/Eigen/Core" 30 #include "../eigen/Eigen/Geometry" 36 if (theta >= -M_PI && theta < M_PI)
38 double multiplier =
floor(theta / (2*M_PI));
39 theta = theta - multiplier*2*M_PI;
55 SE2(
double x,
double y,
double theta) :
_R(theta),
_t(x, y){}
84 Eigen::Vector2d
operator * (
const Eigen::Vector2d& v)
const 94 ret.
_t = ret.
_R*(Eigen::Vector2d(-1 *
_t));
100 assert(i >= 0 && i < 3);
108 assert(i >= 0 && i < 3);
116 *
this =
SE2(v[0], v[1], v[2]);
122 for (
int i = 0; i < 3; i++){
const Eigen::Rotation2Dd & rotation() const
SE2 & operator*=(const SE2 &tr2)
EIGEN_DEVICE_FUNC const FloorReturnType floor() const
void fromVector(const Eigen::Vector3d &v)
Eigen::Vector2d & translation()
double operator[](int i) const
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
EIGEN_DEVICE_FUNC Rotation2D inverse() const
SE2 operator*(const SE2 &tr2) const
Eigen::Rotation2Dd & rotation()
Represents a rotation/orientation in a 2 dimensional space.
SE2(double x, double y, double theta)
EIGEN_DEVICE_FUNC Scalar angle() const
Eigen::Vector3d toVector() const
const Eigen::Vector2d & translation() const
double normalize_theta(double theta)