加载中...
正在搜索...
无匹配项
multipoint_ref.cuh
1/*
2 * 版权所有 (c) 2022, NVIDIA CORPORATION.
3 *
4 * 根据 Apache 许可,版本 2.0 ("许可") 获得许可;
5 * 除非遵守许可,否则不得使用此文件。
6 * 您可以获取许可的副本,地址如下:
7 *
8 * https://apache.ac.cn/licenses/LICENSE-2.0
9 *
10 * 除非适用法律要求或书面同意,否则软件将
11 * 根据许可按“现状”分发,
12 * 不附带任何明示或暗示的担保或条件。
13 * 有关管理权限和
14 * 限制的特定语言,请参见许可。
15 */
16#pragma once
17#include <cuspatial/cuda_utils.hpp>
18#include <cuspatial/traits.hpp>
19
20namespace cuspatial {
21
27template <typename VecIterator>
28class multipoint_ref {
29 public
30 using point_t = iterator_value_type<VecIterator>;
31
32 CUSPATIAL_HOST_DEVICE multipoint_ref(VecIterator begin, VecIterator end);
33
35 CUSPATIAL_HOST_DEVICE auto point_begin() const;
37 CUSPATIAL_HOST_DEVICE auto point_end() const;
38
40 CUSPATIAL_HOST_DEVICE auto begin() const { return point_begin(); }
42 CUSPATIAL_HOST_DEVICE auto end() const { return point_end(); }
43
45 CUSPATIAL_HOST_DEVICE auto num_points() const;
47 CUSPATIAL_HOST_DEVICE auto size() const { return num_points(); }
48
49 template <typename IndexType>
50 CUSPATIAL_HOST_DEVICE auto operator[](IndexType point_idx);
51
52 protected
53 VecIterator _points_begin;
54 VecIterator _points_end;
55};
56
57} // namespace cuspatial
58
59#include <cuspatial/detail/geometry_collection/multipoint_ref.cuh>
CUSPATIAL_HOST_DEVICE auto point_begin() const
返回指向多点几何对象起始点的迭代器。
CUSPATIAL_HOST_DEVICE auto num_points() const
返回多点几何对象中的点数量。
CUSPATIAL_HOST_DEVICE auto end() const
返回指向多点几何对象最后一个点之后位置的迭代器。
CUSPATIAL_HOST_DEVICE auto size() const
返回多点几何对象中的点数量。
CUSPATIAL_HOST_DEVICE auto begin() const
返回指向多点几何对象起始点的迭代器。
CUSPATIAL_HOST_DEVICE auto point_end() const
返回指向多点几何对象最后一个点之后位置的迭代器。