RIT VEXU Core API
Loading...
Searching...
No Matches
translation2d.h
1#pragma once
2
3#include <Eigen/Dense>
4#include <cmath>
5#include <iostream>
6#include <vector>
7
8#include "core/utils/math/geometry/rotation2d.h"
9
10class Rotation2d;
11
22 public:
24 constexpr Translation2d() : m_x(0), m_y(0) {}
31 Translation2d(const double &x, const double &y);
32
38 Translation2d(const Eigen::Vector2d &vector);
39
46 Translation2d(const double &r, const Rotation2d &theta);
47
53 double x() const;
54
56 void setX(double x);
57
63 double y() const;
64
66 void setY(double y);
67
73 Rotation2d theta() const;
74
80 Eigen::Vector2d as_vector() const;
81
87 double norm() const;
88
95
101 double distance(const Translation2d &other) const;
102
114 Translation2d rotate_by(const Rotation2d &rotation) const;
115
127 Translation2d rotate_around(const Translation2d &other, const Rotation2d &rotation) const;
128
139 Translation2d operator+(const Translation2d &other) const;
140
151 Translation2d operator-(const Translation2d &other) const;
152
162 Translation2d operator-() const;
163
174 Translation2d operator*(const double &scalar) const;
175
186 Translation2d operator/(const double &scalar) const;
187
197 double operator*(const Translation2d &other) const;
198
207 bool operator==(const Translation2d &other) const;
208
216 friend std::ostream &operator<<(std::ostream &os, const Translation2d &translation);
217
218 private:
219 double m_x;
220 double m_y;
221};
222
230Translation2d mean(const std::vector<Translation2d> &list);
Definition rotation2d.h:26
Definition translation2d.h:21
Translation2d operator/(const double &scalar) const
Definition translation2d.cpp:171
bool operator==(const Translation2d &other) const
Definition translation2d.cpp:192
friend std::ostream & operator<<(std::ostream &os, const Translation2d &translation)
Definition translation2d.cpp:203
Translation2d rotate_around(const Translation2d &other, const Rotation2d &rotation) const
Definition translation2d.cpp:109
Translation2d operator-() const
Definition translation2d.cpp:147
Translation2d normalize() const
Definition translation2d.cpp:72
double distance(const Translation2d &other) const
Definition translation2d.cpp:79
constexpr Translation2d()
Default Constructor for Translation2d.
Definition translation2d.h:24
double x() const
Definition translation2d.cpp:37
Translation2d rotate_by(const Rotation2d &rotation) const
Definition translation2d.cpp:94
Eigen::Vector2d as_vector() const
Definition translation2d.cpp:58
Rotation2d theta() const
Definition translation2d.cpp:51
void setX(double x)
Sets the x value of the translation.
void setY(double y)
Sets the y value of the translation.
double y() const
Definition translation2d.cpp:44
double norm() const
Definition translation2d.cpp:65
Translation2d operator+(const Translation2d &other) const
Definition translation2d.cpp:124
Translation2d operator*(const double &scalar) const
Definition translation2d.cpp:159