-
Notifications
You must be signed in to change notification settings - Fork 157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add pairwise_linestring_intersection_with_duplicates
API
#813
Add pairwise_linestring_intersection_with_duplicates
API
#813
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving CMake changes
…into feature/intersection_with_duplicates_pr
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Outdated
Show resolved
Hide resolved
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Outdated
Show resolved
Hide resolved
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Outdated
Show resolved
Hide resolved
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Outdated
Show resolved
Hide resolved
This reverts commit c6dc62c.
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Show resolved
Hide resolved
cpp/tests/experimental/spatial/linestring_intersection_with_duplicates_test.cu
Show resolved
Hide resolved
cpp/tests/experimental/spatial/linestring_intersection_with_duplicates_test.cu
Outdated
Show resolved
Hide resolved
cpp/tests/experimental/spatial/linestring_intersection_with_duplicates_test.cu
Show resolved
Hide resolved
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Show resolved
Hide resolved
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Show resolved
Hide resolved
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Outdated
Show resolved
Hide resolved
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Outdated
Show resolved
Hide resolved
…into feature/intersection_with_duplicates_pr
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. This is pretty complicated, so I tried to provide a few ideas for simplification / DRY.
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Outdated
Show resolved
Hide resolved
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Show resolved
Hide resolved
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Outdated
Show resolved
Hide resolved
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Outdated
Show resolved
Hide resolved
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Outdated
Show resolved
Hide resolved
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Show resolved
Hide resolved
cpp/tests/experimental/spatial/linestring_intersection_with_duplicates_test.cu
Outdated
Show resolved
Hide resolved
Co-authored-by: Mark Harris <mharris@nvidia.com>
cpp/include/cuspatial/experimental/detail/linestring_intersection_with_duplicates.cuh
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have one naming request but otherwise approve. Love the enumerated_range stuff!
cpp/include/cuspatial/experimental/detail/ranges/enumerate_range.cuh
Outdated
Show resolved
Hide resolved
…into feature/intersection_with_duplicates_pr
The size of a |
rerun tests |
@gpucibot merge |
…851) #813 adds a struct to hold the intermediate result from `linestring_intersection_with_duplicates`. After discovering the duplicates from the result, we need a way to remove these geometries from the struct, as well as updating the offsets and look-back ids. This PR adds a `remove_if` function to the struct, which models after `thrust::remove_if` that accepts a range of flags, and removes the geometries in the intermediates where the flag is set to 1. Closes #853 Depends on #813. Contributes to #765. Authors: - Michael Wang (https://github.com/isVoid) Approvers: - Mark Harris (https://github.com/harrism) - H. Thomson Comer (https://github.com/thomcom) URL: #851
This PR adds header only API `pairwise_linestring_intersection`. Closes #765 . Depends on #813 #818 #819 #851 Authors: - Michael Wang (https://github.com/isVoid) Approvers: - Mark Harris (https://github.com/harrism) - H. Thomson Comer (https://github.com/thomcom) URL: #852
Description
This PR adds internal function:
pairwise_linestring_intersection_with_duplicates
API. closes #785,The API returns two structs:
linestring_intersection_intermediates<vec_2d>
andlinestring_intersection_intermediates<segment>
. This struct is important for following steps when removing duplicate geometries. Because the geometries and underlying look-back ids needs to be updated in tandem.Notice I didn't go too hard on the test cases - result from intersection with duplicates is often hard to hand craft. I would rely on future integrated tests with end-to-end intersection to test the correctness of this function.
Checklist