44 lines
879 B
C++
44 lines
879 B
C++
#include "precompile.h"
|
|
|
|
#include <Eigen/Core>
|
|
#include <Eigen/Dense>
|
|
|
|
#include "cs_proto.pb.h"
|
|
|
|
void Vector2D::ToPB(cs::MFVector2D* pb_obj)
|
|
{
|
|
pb_obj->set_x(x);
|
|
pb_obj->set_y(y);
|
|
}
|
|
|
|
void Vector2D::Normalize()
|
|
{
|
|
Eigen::Vector2f v(x, y);
|
|
v.normalize();
|
|
x = v[0];
|
|
y = v[1];
|
|
}
|
|
|
|
bool Vector2D::operator == (const Vector2D& b)
|
|
{
|
|
return std::abs(x - b.x) < 0.01f && std::abs(y - b.y) < 0.01f;
|
|
}
|
|
|
|
Vector2D Vector2D::operator + (const Vector2D& b)
|
|
{
|
|
Eigen::Vector2f v = Eigen::Vector2f(x, y) + Eigen::Vector2f(b.x, b.y);
|
|
return Vector2D(v[0], v[1]);
|
|
}
|
|
|
|
Vector2D Vector2D::operator - (const Vector2D& b)
|
|
{
|
|
Eigen::Vector2f v = Eigen::Vector2f(x, y) - Eigen::Vector2f(b.x, b.y);
|
|
return Vector2D(v[0], v[1]);
|
|
}
|
|
|
|
Vector2D Vector2D::operator * (float scale)
|
|
{
|
|
Eigen::Vector2f v = Eigen::Vector2f(x, y) * scale;
|
|
return Vector2D(v[0], v[1]);
|
|
}
|