18#include <cuspatial/cuda_utils.hpp>
19#include <cuspatial/detail/range/enumerate_range.cuh>
29template <
typename PartIterator,
typename VecIterator>
60 CUSPATIAL_HOST_DEVICE
auto enumerate()
const {
return detail::enumerate_range{
begin(),
end()}; }
63 template <
typename IndexType>
64 CUSPATIAL_HOST_DEVICE
auto operator[](IndexType linestring_idx)
const;
67 PartIterator _part_begin;
68 PartIterator _part_end;
69 VecIterator _point_begin;
70 VecIterator _point_end;
75#include <cuspatial/detail/geometry_collection/multilinestring_ref.cuh>
Represent a reference to a multilinestring stored in a structure of arrays.
CUSPATIAL_HOST_DEVICE auto end() const
Return iterator to one past the last linestring of the multilinestring.
CUSPATIAL_HOST_DEVICE bool is_empty() const
Return true if this multilinestring contains 0 linestrings.
CUSPATIAL_HOST_DEVICE auto point_begin() const
Return iterator to the first point of the multilinestring.
CUSPATIAL_HOST_DEVICE auto part_end() const
Return iterator to one past the last linestring.
CUSPATIAL_HOST_DEVICE auto begin() const
Return iterator to the first linestring of the multilinestring.
CUSPATIAL_HOST_DEVICE auto enumerate() const
Return an enumerated range to the linestrings.
CUSPATIAL_HOST_DEVICE auto operator[](IndexType linestring_idx) const
Return linestring_idxth linestring in the multilinestring.
CUSPATIAL_HOST_DEVICE auto num_linestrings() const
Return the number of linestrings in the multilinestring.
CUSPATIAL_HOST_DEVICE auto size() const
Return the number of linestrings in the multilinestring.
CUSPATIAL_HOST_DEVICE auto point_end() const
Return iterator to one past the last point of the multilinestring.
CUSPATIAL_HOST_DEVICE auto part_begin() const
Return iterator to the first linestring.