正在加载...
正在搜索...
无匹配项
linestring_ref.cuh
查看此文件的文档。
1/*
2 * 版权所有 (c) 2022-2023, 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
18#include <cuspatial/cuda_utils.hpp>
19#include <cuspatial/detail/range/enumerate_range.cuh>
20
21namespace cuspatial {
22
28template <typename VecIterator>
29class linestring_ref {
30 public
31 CUSPATIAL_HOST_DEVICE linestring_ref(VecIterator begin, VecIterator end);
32
34 CUSPATIAL_HOST_DEVICE auto num_segments() const;
35
37 CUSPATIAL_HOST_DEVICE auto segment_begin() const;
39 CUSPATIAL_HOST_DEVICE auto segment_end() const;
40
42 CUSPATIAL_HOST_DEVICE auto point_begin() const;
44 CUSPATIAL_HOST_DEVICE auto point_end() const;
45
47 CUSPATIAL_HOST_DEVICE auto begin() const { return segment_begin(); }
49 CUSPATIAL_HOST_DEVICE auto end() const { return segment_end(); }
50
52 CUSPATIAL_HOST_DEVICE auto enumerate() { return detail::enumerate_range{begin(), end()}; }
53
55 template <typename IndexType>
56 CUSPATIAL_HOST_DEVICE auto segment(IndexType segment_idx) const;
57
58 protected
59 VecIterator _point_begin;
60 VecIterator _point_end;
61};
62
63} // namespace cuspatial
64
65#include <cuspatial/detail/geometry/linestring_ref.cuh>
CUSPATIAL_HOST_DEVICE auto point_end() const
返回指向最后一个点之后位置的迭代器。
CUSPATIAL_HOST_DEVICE auto num_segments() const
返回线串中的段数。
CUSPATIAL_HOST_DEVICE auto end() const
返回指向最后一个段之后位置的迭代器。
CUSPATIAL_HOST_DEVICE auto segment(IndexType segment_idx) const
返回线串中的第 segment_idx 个段。
CUSPATIAL_HOST_DEVICE auto segment_begin() const
返回指向线串第一个段的迭代器。
CUSPATIAL_HOST_DEVICE auto point_begin() const
返回指向线串第一个点的迭代器。
CUSPATIAL_HOST_DEVICE auto begin() const
返回指向线串第一个段的迭代器。
CUSPATIAL_HOST_DEVICE auto segment_end() const
返回指向最后一个段之后位置的迭代器。
CUSPATIAL_HOST_DEVICE auto enumerate()
返回一个段的枚举范围。