2019-03-16 16:30:07 +08:00

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]);
}