19#include <cuspatial/detail/join/intersection.cuh>
20#include <cuspatial/detail/join/traversal.cuh>
21#include <cuspatial/iterator_factory.cuh>
22#include <cuspatial/point_quadtree.cuh>
23#include <cuspatial/traits.hpp>
25#include <rmm/device_uvector.hpp>
26#include <rmm/resource_ref.hpp>
63template <
class BoundingBoxIterator,
64 class T =
typename cuspatial::iterator_vec_base_type<BoundingBoxIterator>>
65std::pair<rmm::device_uvector<uint32_t>, rmm::device_uvector<uint32_t>>
68 BoundingBoxIterator bounding_boxes_first,
69 BoundingBoxIterator bounding_boxes_last,
70 vec_2d<T>
const& v_min,
73 rmm::cuda_stream_view stream = rmm::cuda_stream_default,
74 rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource());
116template <
class PolyIndexIterator,
117 class QuadIndexIterator,
118 class PointIndexIterator,
120 class MultiPolygonRange,
121 class IndexType = iterator_value_type<PointIndexIterator>>
123 PolyIndexIterator poly_indices_first,
124 PolyIndexIterator poly_indices_last,
125 QuadIndexIterator quad_indices_first,
127 PointIndexIterator point_indices_first,
128 PointIndexIterator point_indices_last,
129 PointIterator points_first,
130 MultiPolygonRange polygons,
131 rmm::cuda_stream_view stream = rmm::cuda_stream_default,
132 rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource());
171template <
class LinestringIndexIterator,
172 class QuadIndexIterator,
173 class PointIndexIterator,
175 class MultiLinestringRange,
176 typename IndexType = iterator_value_type<PointIndexIterator>,
177 typename T = iterator_vec_base_type<PointIterator>>
178std::tuple<rmm::device_uvector<IndexType>, rmm::device_uvector<IndexType>, rmm::device_uvector<T>>
180 LinestringIndexIterator linestring_indices_first,
181 LinestringIndexIterator linestring_indices_last,
182 QuadIndexIterator quad_indices_first,
184 PointIndexIterator point_indices_first,
185 PointIndexIterator point_indices_last,
186 PointIterator points_first,
187 MultiLinestringRange linestrings,
188 rmm::cuda_stream_view stream = rmm::cuda_stream_default,
189 rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource());
193#include <cuspatial/detail/join/quadtree_bbox_filtering.cuh>
194#include <cuspatial/detail/join/quadtree_point_in_polygon.cuh>
195#include <cuspatial/detail/join/quadtree_point_to_nearest_linestring.cuh>
std::tuple< rmm::device_uvector< IndexType >, rmm::device_uvector< IndexType >, rmm::device_uvector< T > > quadtree_point_to_nearest_linestring(LinestringIndexIterator linestring_indices_first, LinestringIndexIterator linestring_indices_last, QuadIndexIterator quad_indices_first, point_quadtree_ref quadtree, PointIndexIterator point_indices_first, PointIndexIterator point_indices_last, PointIterator points_first, MultiLinestringRange linestrings, rmm::cuda_stream_view stream=rmm::cuda_stream_default, rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource())
Finds the nearest linestring to each point in a quadrant, and computes the distances between each poi...
std::pair< rmm::device_uvector< uint32_t >, rmm::device_uvector< uint32_t > > join_quadtree_and_bounding_boxes(point_quadtree_ref quadtree, BoundingBoxIterator bounding_boxes_first, BoundingBoxIterator bounding_boxes_last, vec_2d< T > const &v_min, T scale, int8_t max_depth, rmm::cuda_stream_view stream=rmm::cuda_stream_default, rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource())
Search a quadtree for polygon or linestring bounding box intersections.
std::pair< rmm::device_uvector< IndexType >, rmm::device_uvector< IndexType > > quadtree_point_in_polygon(PolyIndexIterator poly_indices_first, PolyIndexIterator poly_indices_last, QuadIndexIterator quad_indices_first, point_quadtree_ref quadtree, PointIndexIterator point_indices_first, PointIndexIterator point_indices_last, PointIterator points_first, MultiPolygonRange polygons, rmm::cuda_stream_view stream=rmm::cuda_stream_default, rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource())
Test whether the specified points are inside any of the specified polygons.