libcuspatial  23.12.00
Loading...
Searching...
No Matches
Files | Classes | Functions
Ranges

Abstract Data Type that represents any containers represented by a start and end iterator. More...

Files

file  range.cuh
 
file  multipoint_range.cuh
 
file  multilinestring_range.cuh
 
file  multipolygon_range.cuh
 

Classes

class  cuspatial::multipoint_range< GeometryIterator, VecIterator >
 Non-owning range-based interface to multipoint data. More...
 
class  cuspatial::multipolygon_range< GeometryIterator, PartIterator, RingIterator, VecIterator >
 Non-owning range-based interface to multipolygon data. More...
 

Functions

template<typename GeometryIteratorDiffType , typename VecIteratorDiffType , typename GeometryIterator , typename VecIterator >
multipoint_range< GeometryIterator, VecIterator > cuspatial::make_multipoint_range (GeometryIteratorDiffType num_multipoints, GeometryIterator geometry_begin, VecIteratorDiffType num_points, VecIterator point_begin)
 Create a multipoint_range object of from size and start iterators.
 
template<typename IntegerRange , typename PointRange >
auto cuspatial::make_multipoint_range (IntegerRange geometry_offsets, PointRange points)
 Create multipoint_range object from offset and point ranges.
 
template<collection_type_id Type, typename T , typename IndexType , CUSPATIAL_ENABLE_IF(Type==collection_type_id::SINGLE) , typename GeometryColumnView >
auto cuspatial::make_multipoint_range (GeometryColumnView const &points_column)
 Create a range object of multipoints from cuspatial::geometry_column_view. Specialization for points column.
 
template<typename GeometryIteratorDiffType , typename PartIteratorDiffType , typename RingIteratorDiffType , typename VecIteratorDiffType , typename GeometryIterator , typename PartIterator , typename RingIterator , typename VecIterator >
multipolygon_range< GeometryIterator, PartIterator, RingIterator, VecIterator > cuspatial::make_multipolygon_range (GeometryIteratorDiffType num_multipolygons, GeometryIterator geometry_begin, PartIteratorDiffType num_polygons, PartIterator part_begin, RingIteratorDiffType num_rings, RingIterator ring_begin, VecIteratorDiffType num_points, VecIterator point_begin)
 Create a multipoylgon_range object of from size and start iterators.
 
template<collection_type_id Type, typename T , typename IndexType , typename GeometryColumnView , CUSPATIAL_ENABLE_IF(Type==collection_type_id::SINGLE) >
auto cuspatial::make_multipolygon_range (GeometryColumnView const &polygons_column)
 Create a range object of multipolygon from cuspatial::geometry_column_view. Specialization for polygons column.
 

Detailed Description

Abstract Data Type that represents any containers represented by a start and end iterator.

cuSpatial header only APIs accept ranges that provide flattened views of offsets and coordinates. Various accessors are provided for flexible access to the data.

Function Documentation

◆ make_multipoint_range() [1/3]

template<collection_type_id Type, typename T , typename IndexType , CUSPATIAL_ENABLE_IF(Type==collection_type_id::SINGLE) , typename GeometryColumnView >
auto cuspatial::make_multipoint_range ( GeometryColumnView const &  points_column)

Create a range object of multipoints from cuspatial::geometry_column_view. Specialization for points column.

Create a range object of multipoints from cuspatial::geometry_column_view. Specialization for multipoints column.

Precondition
points_column must be a cuspatial::geometry_column_view
multipoints_column must be a cuspatial::geometry_column_view

Definition at line 230 of file multipoint_range.cuh.

◆ make_multipoint_range() [2/3]

template<typename GeometryIteratorDiffType , typename VecIteratorDiffType , typename GeometryIterator , typename VecIterator >
multipoint_range< GeometryIterator, VecIterator > cuspatial::make_multipoint_range ( GeometryIteratorDiffType  num_multipoints,
GeometryIterator  geometry_begin,
VecIteratorDiffType  num_points,
VecIterator  point_begin 
)

Create a multipoint_range object of from size and start iterators.

Template Parameters
GeometryIteratorDiffTypeIndex type of the size of the geometry array
VecIteratorDiffTypeIndex type of the size of the point array
GeometryIteratoriterator type for offset array. Must meet the requirements of LegacyRandomAccessIterator.
VecIteratoriterator type for the point array. Must meet the requirements of LegacyRandomAccessIterator.
Note
Iterators should be device-accessible if the view is intended to be used on device.
Parameters
num_multipointsNumber of multipoints in the array
geometry_beginIterator to the start of the geometry offset array
num_pointsNumber of underlying points in the multipoint array
point_beginIterator to the start of the points array
Returns
Range to multipoint array

Definition at line 192 of file multipoint_range.cuh.

◆ make_multipoint_range() [3/3]

template<typename IntegerRange , typename PointRange >
auto cuspatial::make_multipoint_range ( IntegerRange  geometry_offsets,
PointRange  points 
)

Create multipoint_range object from offset and point ranges.

Template Parameters
IntegerRangeRange to integers
PointRangeRange to points
Parameters
geometry_offsetsRange to multipoints geometry offsets
pointsRange to underlying parts
Returns
A multipoint_range object

Definition at line 213 of file multipoint_range.cuh.

◆ make_multipolygon_range() [1/2]

template<collection_type_id Type, typename T , typename IndexType , typename GeometryColumnView , CUSPATIAL_ENABLE_IF(Type==collection_type_id::SINGLE) >
auto cuspatial::make_multipolygon_range ( GeometryColumnView const &  polygons_column)

Create a range object of multipolygon from cuspatial::geometry_column_view. Specialization for polygons column.

Create a range object of multipolygon from cuspatial::geometry_column_view. Specialization for multipolygons column.

Precondition
polygons_column must be a cuspatial::geometry_column_view
polygon_column must be a cuspatial::geometry_column_view

Definition at line 266 of file multipolygon_range.cuh.

◆ make_multipolygon_range() [2/2]

template<typename GeometryIteratorDiffType , typename PartIteratorDiffType , typename RingIteratorDiffType , typename VecIteratorDiffType , typename GeometryIterator , typename PartIterator , typename RingIterator , typename VecIterator >
multipolygon_range< GeometryIterator, PartIterator, RingIterator, VecIterator > cuspatial::make_multipolygon_range ( GeometryIteratorDiffType  num_multipolygons,
GeometryIterator  geometry_begin,
PartIteratorDiffType  num_polygons,
PartIterator  part_begin,
RingIteratorDiffType  num_rings,
RingIterator  ring_begin,
VecIteratorDiffType  num_points,
VecIterator  point_begin 
)

Create a multipoylgon_range object of from size and start iterators.

Template Parameters
GeometryIteratorDiffTypeInteger type of the size of the geometry offset array
PartIteratorDiffTypeInteger type of the size of the part offset array
RingIteratorDiffTypeInteger type of the size of the ring offset array
VecIteratorDiffTypeInteger type of the size of the point array
GeometryIteratoriterator type for offset array. Must meet the requirements of LegacyRandomAccessIterator.
PartIteratoriterator type for offset array. Must meet the requirements of LegacyRandomAccessIterator.
RingIteratoriterator type for offset array. Must meet the requirements of LegacyRandomAccessIterator.
VecIteratoriterator type for the point array. Must meet the requirements of LegacyRandomAccessIterator.
Note
Iterators should be device-accessible if the view is intended to be used on device.
Parameters
num_multipolygonsNumber of multipolygons in the array
geometry_beginIterator to the start of the geometry offset array
num_polygonsNumber of polygons in the array
part_beginIterator to the start of the part offset array
num_ringsNumber of rings in the array
ring_beginIterator to the start of the ring offset array
num_pointsNumber of underlying points in the multipoint array
point_beginIterator to the start of the points array
Returns
range to multipolygon array

Definition at line 234 of file multipolygon_range.cuh.