1 #ifndef SPATIAL_INDEX_H
2 #define SPATIAL_INDEX_H
6 #include <boost/geometry/index/rtree.hpp>
8 #include "../geometry/geometry.h"
14 typedef std::pair<geometry::box<geometry::point<double> >, quad> rtree_node;
17 bool operator()(
const rtree_node & node1,
const rtree_node & node2)
const {
18 return node1.second == node2.second;
21 typedef boost::geometry::index::rtree<rtree_node,
22 boost::geometry::index::rstar<16>,
33 void quad_create(
quad the_quad);
35 void quad_create(
quad the_quad,
const geometry::point<double> & p1,
const geometry::point<double> & p2);
38 std::vector<quad> quads_containing(
const geometry::point<double> & p1)
const {
39 std::vector<rtree_node> result;
40 m_index.query(boost::geometry::index::contains(p1),
41 std::back_inserter(result));
42 std::vector<quad> the_quads(result.size());
43 for(std::size_t i = 0; i < result.size(); ++i)
44 the_quads[i] = result[i].second;
48 void quad_remove(
quad the_quad);
57 #endif // SPATIAL_INDEX_H
Definition: spatial_index.h:26
Definition: spatial_index.h:15