13#ifndef INCLUDE_AABBTREE_HH
14#define INCLUDE_AABBTREE_HH
34#include <Eigen/Geometry>
38#define AABBTREE_ERROR(MSG) \
40 std::ostringstream os; \
42 throw std::runtime_error(os.str()); \
47#ifndef AABBTREE_ASSERT
48#define AABBTREE_ASSERT(COND, MSG) \
50 AABBTREE_ERROR(MSG); \
55#ifndef AABBTREE_WARNING
56#define AABBTREE_WARNING(MSG) \
58 std::cout << MSG << std::endl; \
63#ifndef AABBTREE_ASSERT_WARNING
64#define AABBTREE_ASSERT_WARNING(COND, MSG) \
66 AABBTREE_WARNING(MSG); \
71#ifndef AABBTREE_DEFAULT_INTEGER_TYPE
72#define AABBTREE_DEFAULT_INTEGER_TYPE int
90static_assert(std::is_integral<Integer>::value,
91 "AABBTREE_DEFAULT_INTEGER_TYPE must be an integral type.");
99template <
typename Real, Integer N>
class Box;
100template <
typename Real, Integer N>
102template <
typename Real, Integer N>
104template <
typename Real, Integer N>
using Vector = Eigen::Vector<Real, N>;
105template <
typename Real, Integer N>
using Point = Eigen::Vector<Real, N>;
#define AABBTREE_DEFAULT_INTEGER_TYPE
Definition AABBtree.hh:72
A class representing an axis-aligned bounding box (AABB) in N-dimensional space.
Definition Box.hxx:50
Namespace for the AABBtree library.
Definition AABBtree.hh:81
std::basic_ostream< char > OutStream
Definition AABBtree.hh:96
Eigen::Vector< Real, N > Point
Definition AABBtree.hh:105
std::map< Integer, IndexSet > IndexMap
Definition AABBtree.hh:94
std::set< Integer > IndexSet
Definition AABBtree.hh:93
std::unique_ptr< Box< Real, N > > BoxUniquePtr
Definition AABBtree.hh:101
std::vector< BoxUniquePtr< Real, N > > BoxUniquePtrList
Definition AABBtree.hh:103
std::vector< Integer > IndexList
Definition AABBtree.hh:95
Eigen::Vector< Real, N > Vector
Definition AABBtree.hh:104
AABBTREE_DEFAULT_INTEGER_TYPE Integer
The Integer type used in the AABBtree class.
Definition AABBtree.hh:89