Apollo
6.0
Open source self driving car software
|
Implements a class of 2-dimensional vectors. More...
#include <vec2d.h>
Public Member Functions | |
constexpr | Vec2d (const double x, const double y) noexcept |
Constructor which takes x- and y-coordinates. More... | |
constexpr | Vec2d () noexcept |
Constructor returning the zero vector. More... | |
double | x () const |
Getter for x component. More... | |
double | y () const |
Getter for y component. More... | |
void | set_x (const double x) |
Setter for x component. More... | |
void | set_y (const double y) |
Setter for y component. More... | |
double | Length () const |
Gets the length of the vector. More... | |
double | LengthSquare () const |
Gets the squared length of the vector. More... | |
double | Angle () const |
Gets the angle between the vector and the positive x semi-axis. More... | |
void | Normalize () |
Returns the unit vector that is co-linear with this vector. More... | |
double | DistanceTo (const Vec2d &other) const |
Returns the distance to the given vector. More... | |
double | DistanceSquareTo (const Vec2d &other) const |
Returns the squared distance to the given vector. More... | |
double | CrossProd (const Vec2d &other) const |
Returns the "cross" product between these two Vec2d (non-standard). More... | |
double | InnerProd (const Vec2d &other) const |
Returns the inner product between these two Vec2d. More... | |
Vec2d | rotate (const double angle) const |
rotate the vector by angle. More... | |
void | SelfRotate (const double angle) |
rotate the vector itself by angle. More... | |
Vec2d | operator+ (const Vec2d &other) const |
Sums two Vec2d. More... | |
Vec2d | operator- (const Vec2d &other) const |
Subtracts two Vec2d. More... | |
Vec2d | operator* (const double ratio) const |
Multiplies Vec2d by a scalar. More... | |
Vec2d | operator/ (const double ratio) const |
Divides Vec2d by a scalar. More... | |
Vec2d & | operator+= (const Vec2d &other) |
Sums another Vec2d to the current one. More... | |
Vec2d & | operator-= (const Vec2d &other) |
Subtracts another Vec2d to the current one. More... | |
Vec2d & | operator*= (const double ratio) |
Multiplies this Vec2d by a scalar. More... | |
Vec2d & | operator/= (const double ratio) |
Divides this Vec2d by a scalar. More... | |
bool | operator== (const Vec2d &other) const |
Compares two Vec2d. More... | |
std::string | DebugString () const |
Returns a human-readable string representing this object. More... | |
Static Public Member Functions | |
static Vec2d | CreateUnitVec2d (const double angle) |
Creates a unit-vector with a given angle to the positive x semi-axis. More... | |
Protected Attributes | |
double | x_ = 0.0 |
double | y_ = 0.0 |
Implements a class of 2-dimensional vectors.
|
inlinenoexcept |
Constructor which takes x- and y-coordinates.
|
inlinenoexcept |
Constructor returning the zero vector.
double apollo::common::math::Vec2d::Angle | ( | ) | const |
Gets the angle between the vector and the positive x semi-axis.
|
static |
Creates a unit-vector with a given angle to the positive x semi-axis.
double apollo::common::math::Vec2d::CrossProd | ( | const Vec2d & | other | ) | const |
Returns the "cross" product between these two Vec2d (non-standard).
std::string apollo::common::math::Vec2d::DebugString | ( | ) | const |
Returns a human-readable string representing this object.
double apollo::common::math::Vec2d::DistanceSquareTo | ( | const Vec2d & | other | ) | const |
Returns the squared distance to the given vector.
double apollo::common::math::Vec2d::DistanceTo | ( | const Vec2d & | other | ) | const |
Returns the distance to the given vector.
double apollo::common::math::Vec2d::InnerProd | ( | const Vec2d & | other | ) | const |
Returns the inner product between these two Vec2d.
double apollo::common::math::Vec2d::Length | ( | ) | const |
Gets the length of the vector.
double apollo::common::math::Vec2d::LengthSquare | ( | ) | const |
Gets the squared length of the vector.
void apollo::common::math::Vec2d::Normalize | ( | ) |
Returns the unit vector that is co-linear with this vector.
Vec2d apollo::common::math::Vec2d::operator* | ( | const double | ratio | ) | const |
Multiplies Vec2d by a scalar.
Vec2d& apollo::common::math::Vec2d::operator*= | ( | const double | ratio | ) |
Multiplies this Vec2d by a scalar.
Sums another Vec2d to the current one.
Subtracts another Vec2d to the current one.
Vec2d& apollo::common::math::Vec2d::operator/= | ( | const double | ratio | ) |
Divides this Vec2d by a scalar.
Vec2d apollo::common::math::Vec2d::rotate | ( | const double | angle | ) | const |
rotate the vector by angle.
void apollo::common::math::Vec2d::SelfRotate | ( | const double | angle | ) |
rotate the vector itself by angle.
|
inline |
Setter for x component.
|
inline |
Setter for y component.
|
inline |
Getter for x component.
|
inline |
Getter for y component.
|
protected |
|
protected |