18#include <cuspatial/cuda_utils.hpp>
19#include <cuspatial/detail/range/enumerate_range.cuh>
30template <
typename PartIterator,
typename RingIterator,
typename VecIterator>
31class multipolygon_ref {
33 CUSPATIAL_HOST_DEVICE multipolygon_ref(PartIterator
part_begin,
68 CUSPATIAL_HOST_DEVICE
auto enumerate()
const {
return detail::enumerate_range{
begin(),
end()}; }
71 template <
typename IndexType>
72 CUSPATIAL_HOST_DEVICE
auto operator[](IndexType polygon_idx)
const;
75 PartIterator _part_begin;
76 PartIterator _part_end;
77 RingIterator _ring_begin;
78 RingIterator _ring_end;
79 VecIterator _point_begin;
80 VecIterator _point_end;
85#include <cuspatial/detail/geometry_collection/multipolygon_ref.cuh>
CUSPATIAL_HOST_DEVICE auto end() const
返回指向多边形集合中最后一个多边形之后位置的迭代器。
CUSPATIAL_HOST_DEVICE auto enumerate() const
返回多边形的枚举范围。
CUSPATIAL_HOST_DEVICE auto part_end() const
返回指向最后一个多边形之后位置的迭代器。
CUSPATIAL_HOST_DEVICE auto begin() const
返回指向多边形集合中第一个多边形的迭代器。
CUSPATIAL_HOST_DEVICE auto operator[](IndexType polygon_idx) const
返回多边形集合中索引为 polygon_idx 的多边形。
CUSPATIAL_HOST_DEVICE auto point_begin() const
返回指向多边形集合中第一个点的迭代器。
CUSPATIAL_HOST_DEVICE bool is_empty() const
如果多边形集合包含 0 个几何图形,则返回 true。
CUSPATIAL_HOST_DEVICE auto ring_begin() const
返回指向第一个环的迭代器。
CUSPATIAL_HOST_DEVICE auto num_polygons() const
返回多边形集合中的多边形数量。
CUSPATIAL_HOST_DEVICE auto point_end() const
返回指向多边形集合中最后一个点之后位置的迭代器。
CUSPATIAL_HOST_DEVICE auto ring_end() const
返回指向最后一个环之后位置的迭代器。
CUSPATIAL_HOST_DEVICE auto part_begin() const
返回指向第一个多边形的迭代器。
CUSPATIAL_HOST_DEVICE auto size() const
返回多边形集合中的多边形数量。