47 #ifndef _SUPER4PCS_ACCELERATORS_BBOX_H 48 #define _SUPER4PCS_ACCELERATORS_BBOX_H 50 #include "super4pcs/utils/disablewarnings.h" 51 #include <Eigen/Geometry> 56 template <
typename _Scalar,
int _Dim>
57 class AABB :
public Eigen::AlignedBox<_Scalar, _Dim>
60 using Base = Eigen::AlignedBox<_Scalar, _Dim>;
61 using Scalar =
typename Base::Scalar;
62 static constexpr
int Dim = _Dim;
68 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
70 AABB(
Scalar min = std::numeric_limits<Scalar>::max() / 2,
71 Scalar max = -std::numeric_limits<Scalar>::max() / 2)
74 template <
class InputIt>
75 inline void extend(InputIt first, InputIt last)
76 { std::for_each(first, last,
77 std::bind1st(std::mem_fun(&Base::extend),
this)); }
81 template <
typename _Scalar>
static constexpr int Dim
Definition: bbox.h:62
typename Base::Scalar Scalar
Definition: bbox.h:61
void extend(InputIt first, InputIt last)
Definition: bbox.h:75
Eigen::Matrix< Scalar, Dim, 1 > VectorType
Definition: bbox.h:64
EIGEN_MAKE_ALIGNED_OPERATOR_NEW AABB(Scalar min=std::numeric_limits< Scalar >::max()/2, Scalar max=-std::numeric_limits< Scalar >::max()/2)
Definition: bbox.h:70
Eigen::AlignedBox< Scalar, _Dim > Base
Definition: bbox.h:60