1 #ifndef CPP_COLLISION_INCLUDE_COLLISION_NARROWPHASE_DETAIL_OBB_H_ 2 #define CPP_COLLISION_INCLUDE_COLLISION_NARROWPHASE_DETAIL_OBB_H_ 13 const Eigen::Vector2d&
center)
14 : local_axes_(local_axes), r_(r), center_(center) {
25 int set_r(
const Eigen::Vector2d&
r) {
35 Eigen::Matrix2d
local_axes(
void)
const {
return local_axes_; }
37 Eigen::Vector2d
r(
void)
const {
return r_; }
39 Eigen::Vector2d
center(
void)
const {
return center_; }
41 Eigen::Vector2d
local_x_axis()
const {
return local_axes_.col(0); }
43 Eigen::Vector2d
local_y_axis()
const {
return local_axes_.col(1); }
57 double min_x = std::min(_v1(0), _v2(0));
58 double tmp = std::min(_v3(0), _v4(0));
59 aabb.
x_min = std::min(min_x, tmp);
61 double min_y = std::min(_v1(1), _v2(1));
62 tmp = std::min(_v3(1), _v4(1));
63 aabb.
y_min = std::min(min_y, tmp);
65 double max_x = std::max(_v1(0), _v2(0));
66 tmp = std::max(_v3(0), _v4(0));
67 aabb.
x_max = std::max(max_x, tmp);
69 double max_y = std::max(_v1(1), _v2(1));
70 tmp = std::max(_v3(1), _v4(1));
71 aabb.
y_max = std::max(max_y, tmp);
76 double r_x()
const {
return r_(0); }
78 double r_y()
const {
return r_(1); }
81 Eigen::Matrix2d local_axes_;
83 Eigen::Vector2d center_;
Eigen::Vector2d local_x_axis() const
Eigen::Vector2d r(void) const
int set_local_axes(const Eigen::Matrix2d &local_axes)
Eigen::Vector2d center(void) const
Eigen::Vector2d local_y_axis() const
OBB(const Eigen::Matrix2d &local_axes, const Eigen::Vector2d &r, const Eigen::Vector2d ¢er)
int set_center(const Eigen::Vector2d ¢er)
int set_r(const Eigen::Vector2d &r)
Eigen::Matrix2d local_axes(void) const