Non-owning range-based interface to multipolygon data. More...
Public Types | |
| using | geometry_it_t = GeometryIterator |
| using | part_it_t = PartIterator |
| using | ring_it_t = RingIterator |
| using | point_it_t = VecIterator |
| using | point_t = iterator_value_type<VecIterator> |
| using | index_t = iterator_value_type<GeometryIterator> |
| using | element_t = iterator_vec_base_type<VecIterator> |
Public Member Functions | |
| multipolygon_range (GeometryIterator geometry_begin, GeometryIterator geometry_end, PartIterator part_begin, PartIterator part_end, RingIterator ring_begin, RingIterator ring_end, VecIterator points_begin, VecIterator points_end) | |
| CUSPATIAL_HOST_DEVICE auto | size () |
| Return the number of multipolygons in the array. | |
| CUSPATIAL_HOST_DEVICE auto | num_multipolygons () |
| Return the number of multipolygons in the array. | |
| CUSPATIAL_HOST_DEVICE auto | num_polygons () |
| Return the total number of polygons in the array. | |
| CUSPATIAL_HOST_DEVICE auto | num_rings () |
| Return the total number of rings in the array. | |
| CUSPATIAL_HOST_DEVICE auto | num_points () |
| Return the total number of points in the array. | |
| CUSPATIAL_HOST_DEVICE auto | multipolygon_begin () |
| Return the iterator to the first multipolygon in the range. | |
| CUSPATIAL_HOST_DEVICE auto | multipolygon_end () |
| Return the iterator to the one past the last multipolygon in the range. | |
| CUSPATIAL_HOST_DEVICE auto | begin () |
| Return the iterator to the first multipolygon in the range. | |
| CUSPATIAL_HOST_DEVICE auto | end () |
| Return the iterator to the one past the last multipolygon in the range. | |
| CUSPATIAL_HOST_DEVICE auto | point_begin () |
| Return the iterator to the first point in the range. | |
| CUSPATIAL_HOST_DEVICE auto | point_end () |
| Return the iterator to the one past the last point in the range. | |
| CUSPATIAL_HOST_DEVICE auto | geometry_offset_begin () |
| Return the iterator to the first geometry offset in the range. | |
| CUSPATIAL_HOST_DEVICE auto | geometry_offset_end () |
| Return the iterator to the one past the last geometry offset in the range. | |
| CUSPATIAL_HOST_DEVICE auto | part_offset_begin () |
| Return the iterator to the first part offset in the range. | |
| CUSPATIAL_HOST_DEVICE auto | part_offset_end () |
| Return the iterator to the one past the last part offset in the range. | |
| CUSPATIAL_HOST_DEVICE auto | ring_offset_begin () |
| Return the iterator to the first ring offset in the range. | |
| CUSPATIAL_HOST_DEVICE auto | ring_offset_end () |
| Return the iterator to the one past the last ring offset in the range. | |
| template<typename IndexType> | |
| CUSPATIAL_HOST_DEVICE auto | ring_idx_from_point_idx (IndexType point_idx) |
| Given the index of a point, return the index of the ring that contains the point. | |
| template<typename IndexType> | |
| CUSPATIAL_HOST_DEVICE auto | part_idx_from_ring_idx (IndexType ring_idx) |
| Given the index of a ring, return the index of the part (polygon) that contains the point. | |
| template<typename IndexType> | |
| CUSPATIAL_HOST_DEVICE auto | geometry_idx_from_part_idx (IndexType part_idx) |
| template<typename IndexType> | |
| CUSPATIAL_HOST_DEVICE auto | operator[] (IndexType multipolygon_idx) |
Returns the multipolygon_idxth multipolygon in the range. | |
| CUSPATIAL_HOST_DEVICE auto | multipolygon_point_count_begin () |
| CUSPATIAL_HOST_DEVICE auto | multipolygon_point_count_end () |
| CUSPATIAL_HOST_DEVICE auto | multipolygon_ring_count_begin () |
| Returns an iterator to the number of rings of the first multipolygon. | |
| CUSPATIAL_HOST_DEVICE auto | multipolygon_ring_count_end () |
| Returns the one past the iterator to the number of rings of the last multipolygon. | |
| auto | _segments (rmm::cuda_stream_view) |
| CUSPATIAL_HOST_DEVICE auto | as_multipoint_range () |
| Range Casting. | |
| CUSPATIAL_HOST_DEVICE auto | as_multilinestring_range () |
| Cast the range of multipolygons as a range of multilinestrings, ignoring ring relationships. | |
Protected Attributes | |
| GeometryIterator | _geometry_begin |
| GeometryIterator | _geometry_end |
| PartIterator | _part_begin |
| PartIterator | _part_end |
| RingIterator | _ring_begin |
| RingIterator | _ring_end |
| VecIterator | _point_begin |
| VecIterator | _point_end |
Non-owning range-based interface to multipolygon data.
Provides a range-based interface to contiguous storage of multipolygon data, to make it easier to access and iterate over multipolygons, polygons, rings and points.
Conforms to GeoArrow's specification of multipolygon: https://github.com/geopandas/geo-arrow-spec/blob/main/format.md
| GeometryIterator | iterator type for the geometry offset array. Must meet the requirements of LegacyRandomAccessIterator. |
| PartIterator | iterator type for the part offset array. Must meet the requirements of LegacyRandomAccessIterator. |
| RingIterator | iterator type for the ring offset array. Must meet the requirements of LegacyRandomAccessIterator. |
| VecIterator | iterator type for the point array. Must meet the requirements of LegacyRandomAccessIterator. |
Definition at line 64 of file multipolygon_range.cuh.
| using cuspatial::multipolygon_range< GeometryIterator, PartIterator, RingIterator, VecIterator >::element_t = iterator_vec_base_type<VecIterator> |
Definition at line 73 of file multipolygon_range.cuh.
| using cuspatial::multipolygon_range< GeometryIterator, PartIterator, RingIterator, VecIterator >::geometry_it_t = GeometryIterator |
Definition at line 66 of file multipolygon_range.cuh.
| using cuspatial::multipolygon_range< GeometryIterator, PartIterator, RingIterator, VecIterator >::index_t = iterator_value_type<GeometryIterator> |
Definition at line 72 of file multipolygon_range.cuh.
| using cuspatial::multipolygon_range< GeometryIterator, PartIterator, RingIterator, VecIterator >::part_it_t = PartIterator |
Definition at line 67 of file multipolygon_range.cuh.
| using cuspatial::multipolygon_range< GeometryIterator, PartIterator, RingIterator, VecIterator >::point_it_t = VecIterator |
Definition at line 69 of file multipolygon_range.cuh.
| using cuspatial::multipolygon_range< GeometryIterator, PartIterator, RingIterator, VecIterator >::point_t = iterator_value_type<VecIterator> |
Definition at line 70 of file multipolygon_range.cuh.
| using cuspatial::multipolygon_range< GeometryIterator, PartIterator, RingIterator, VecIterator >::ring_it_t = RingIterator |
Definition at line 68 of file multipolygon_range.cuh.
| CUSPATIAL_HOST_DEVICE auto cuspatial::multipolygon_range< GeometryIterator, PartIterator, RingIterator, VecIterator >::as_multipoint_range | ( | ) |
Range Casting.
Cast the range of multipolygons as a range of multipoints, ignoring all edge connections and ring relationships.
|
inline |
Return the iterator to the first multipolygon in the range.
Definition at line 106 of file multipolygon_range.cuh.
|
inline |
Return the iterator to the one past the last multipolygon in the range.
Definition at line 109 of file multipolygon_range.cuh.
| CUSPATIAL_HOST_DEVICE auto cuspatial::multipolygon_range< GeometryIterator, PartIterator, RingIterator, VecIterator >::geometry_idx_from_part_idx | ( | IndexType | part_idx | ) |
Given the index of a part (polygon), return the index of the geometry (multipolygon) that contains the part.
|
inline |
Return the iterator to the first geometry offset in the range.
Definition at line 118 of file multipolygon_range.cuh.
|
inline |
Return the iterator to the one past the last geometry offset in the range.
Definition at line 121 of file multipolygon_range.cuh.
| CUSPATIAL_HOST_DEVICE auto cuspatial::multipolygon_range< GeometryIterator, PartIterator, RingIterator, VecIterator >::multipolygon_point_count_begin | ( | ) |
Returns an iterator to the number of points of the first multipolygon
| CUSPATIAL_HOST_DEVICE auto cuspatial::multipolygon_range< GeometryIterator, PartIterator, RingIterator, VecIterator >::multipolygon_point_count_end | ( | ) |
Returns the one past the iterator to the number of points of the last multipolygon
|
inline |
Return the iterator to the first part offset in the range.
Definition at line 124 of file multipolygon_range.cuh.
|
inline |
Return the iterator to the one past the last part offset in the range.
Definition at line 127 of file multipolygon_range.cuh.
|
inline |
Return the iterator to the first ring offset in the range.
Definition at line 130 of file multipolygon_range.cuh.
|
inline |
Return the iterator to the one past the last ring offset in the range.
Definition at line 133 of file multipolygon_range.cuh.
|
inline |
Return the number of multipolygons in the array.
Definition at line 85 of file multipolygon_range.cuh.
|
protected |
Definition at line 179 of file multipolygon_range.cuh.
|
protected |
Definition at line 180 of file multipolygon_range.cuh.
|
protected |
Definition at line 181 of file multipolygon_range.cuh.
|
protected |
Definition at line 182 of file multipolygon_range.cuh.
|
protected |
Definition at line 185 of file multipolygon_range.cuh.
|
protected |
Definition at line 186 of file multipolygon_range.cuh.
|
protected |
Definition at line 183 of file multipolygon_range.cuh.
|
protected |
Definition at line 184 of file multipolygon_range.cuh.