-
Notifications
You must be signed in to change notification settings - Fork 1.6k
[Small Feature] Add bounded error Hausdorff distance #5475
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
Merged
lrineau
merged 148 commits into
CGAL:master
from
sloriot:gsoc2019-PMPHDist-martinskrodzki
Jul 27, 2021
Merged
Changes from all commits
Commits
Show all changes
148 commits
Select commit
Hold shift + click to select a range
82e8e4b
Initial version of bounded_error_hausdorff method.
msmathcomp 04a05c0
Implemented distance computation from mesh_1 vertices to mesh_2 trian…
msmathcomp 951e4a7
Implement first rough approximation.
msmathcomp 9df0d3f
Fix initialization of global upper bound, include TODOs for further s…
msmathcomp c28f007
Add detailed comments on the code written so far and merge face proce…
msmathcomp a67fa38
Add traversal trait for Hausdorff-based AABB traversal on the first t…
msmathcomp 04c84ef
Add second traversal trait for Hausdorff-based AABB traversal on the …
msmathcomp 1400662
Fixed initialization of local Hausdorff bounds.
msmathcomp d93aa73
Pass tm2_tree instance to the traversal of tm1
msmathcomp a4112c4
Implement calling of TM2_tree traversal.
msmathcomp c76db1e
Finish traversal traits of tm1, i.e. finish implementation of Culling…
msmathcomp 453ec15
Implement vertex (TM1) to triangle (TM2) distance in traversal proces…
msmathcomp 6221ebe
Finish implementation of Culling on B (i.e. TM2) traversal.
msmathcomp 48e159b
Store candidate triangles in a set to be processed later.
msmathcomp 7ec6c4c
Correct implementation of Culling on second mesh.
msmathcomp 2a52382
Implement a non-trivial toy example to test subdivision with. Intende…
msmathcomp 68e9776
Implement subdivision of a triangle from the candidate set.
msmathcomp 17b0003
Fix typo in vertex lookup.
msmathcomp 3c73230
Finish first working prototype giving correct answer on the toy example.
msmathcomp d8b6e7d
Results of Code Review with Sebastien.
msmathcomp 519d37d
Use Kernel method instead of computations by hand.
msmathcomp 0332d9f
Enable reading of real meshes and perturbation of them for distance c…
msmathcomp e78cbff
Implement naive bounded Hausdoff computation by simple subdivision.
msmathcomp 000604f
Comment naive comparison method.
msmathcomp 3134025
Bugfix computation of upper bound, should not go below lower bound.
msmathcomp 30b6c70
Add naive and optimized Hausdorff implementation to test file.
msmathcomp 98e92a9
Introduce an additional stopping criterion to stop in degenerate case…
msmathcomp 130dcbc
Bugfix entering nodes of TM2 when traversing it.
msmathcomp c91c780
Add timing to the example file and restore all tests in the test file.
msmathcomp 156cac5
Implement benchmarking on both time and number of culled triangles.
msmathcomp 680edc4
Modify triangle bounding box distance to have sharper bounds.
msmathcomp 405cf12
Implement Priority Queue for the set of candidate triangles.
msmathcomp e7e724e
Include Benchmark examples in the Hausdorff examples file.
msmathcomp 1e37c32
Write first lines of documentation to test linking and inclusion of e…
msmathcomp ba0a671
Clean up Code.
msmathcomp 68f7fac
update doc to make links working
sloriot 316cae0
Finalize documentation of bounded Hausdorff Distance computation and …
msmathcomp c5c6ef0
Improve text in documentation.
msmathcomp 5f2069a
Document named parameters.
msmathcomp 677908e
Fix NP usage
MaelRL 6027b2d
Add Traits::intersection_with_priority()
afabri a4aa6a7
rework expression
sloriot 3e5e721
plug do_intersect_with_priority
sloriot 89094af
use do_intersect correctly as it is still needed
sloriot 6e73f92
fix nb of primitives
sloriot 16e0a47
Fix traversal order, add comment on benchmark results.
msmathcomp fed345c
Add notes from skype meeting.
msmathcomp 2d4c254
Keep current global bounds in mind when traversing tm2.
msmathcomp 2066152
Merge branch 'martinskrodzki/gsoc2019-PMPHDist-martinskrodzki' into …
sloriot 8abb285
post merge/cgal update fixes
sloriot 5d0d98f
add missing parameter not added in 2d4c254362 ?
sloriot 0d698f1
update header
sloriot 35387df
do not document all overloads
sloriot 6e4b5ea
use new macros
sloriot f8f3739
fixed warnings
danston 4033bc1
added new tests with test data
danston 841ad3b
fixed bug introduced in 2d4c254
danston dfd2e15
Merge remote-tracking branch 'maxGimeno/PMP-compare_faces_from_meshes…
danston 3b7931d
added timings test
danston 0333778
added face matching, not finished
danston ffc8953
caching data
danston a255f69
matching faces finished, still needs several more tests
danston 410b03b
added z-shaped test
danston dc9e958
removed some asserts and types, added const, make it compile with epe…
danston 63db510
epeck support, fixed bug with infinity value
danston 4d107b3
using std priority queue instead of boost heap
danston 95f124f
added missing ref
danston 50fc1ca
faster queries for close meshes, now traversal traits initial bounds …
danston ddb8c6a
fewer candidate triangles for distance > 0
danston 56b77cf
fixed match faces + removed small optimization (not sure about it)
danston 81513fc
face descriptor is now stored in the candidate triangle to remember t…
danston 4ebbaba
added bunny benchmarks versus original paper
danston a0812c1
added comments with refs to the original paper, checked all the formulas
danston 33d2f10
optimized AABB tree calls
danston 2f5ff51
missing include
danston 9a9c3ed
a few comments in addition to the discussion with Sebastien and Martin
danston 6bf1966
partially fixed issue for match faces + added minimum example for tha…
danston 1b892e0
subdivision tested - it works
danston f92e24f
now we can return realizing triangles
danston 69c4830
added test for realizing triangles, updated how the bounds are stored…
danston 4cf4e2c
return a pair of realizing triangles, still to be discussed
danston 7b8deff
Merge remote-tracking branch 'maxGimeno/PMP-compare_faces_from_meshes…
danston d5e1c1f
shorter bunny test
danston 5e99e80
refined and debugged aabb tree with priority traversal
danston 95ab1a5
tests moved to the test folder
danston 930d364
face to triangle map made global
danston 860cad6
added tighter bounds, changed std min/max to CGAL one, added missing …
danston 85f88c2
added inexact check with distances + more precise realizing triangles
danston a2f460c
Merge branch 'master' into gsoc2019-PMPHDist-martinskrodzki
danston 1a9a821
add a way to get a direct access to primitive in a box when below a g…
sloriot c3e5294
add extra function for group traversal
sloriot 87174f3
remove useless check (go further is updated with primitives not bbox)
sloriot 4ce1370
tested group traversal, its sequential version is slower due to more …
danston b45de72
tested bbox comparisons but I do not think we can use them so they ar…
danston 5c3ae06
group traversal should be called only on TM2
danston 4db22ca
removed internal test code that did not prove to be useful
danston 1f11446
removed return with realizing triangles + added naive version of symm…
danston 93855b1
Merge PMP-compare_faces_from_meshes-maxGimeno into gsoc2019-PMPHDist-…
sloriot d4e7879
make the code work with different input mesh types
sloriot e24c6bd
rename variables to make it clear from which mesh the faces are from
sloriot 7fd291c
added input-dependent infinity value + assertions
danston fbffcff
Merge 'PMP-compare_faces_from_meshes-maxGimeno' into gsoc2019-PMPHDis…
sloriot 5fe5bb0
Update Polygon_mesh_processing/examples/Polygon_mesh_processing/hausd…
danston 5d77b22
changed sqrt to approximate sqrt
danston c78c4d2
all preprocessing steps are moved to their own function
danston 9afa43d
propagate lower bound for culling on TM1 to accelerate symmetric dist…
danston f158e3e
added symmetric distance, it is approx 2 times faster than naive version
danston 482bc45
added test for parallel version + METIS partition of tm1 and partiall…
danston 887a715
added naive parallel version
danston bafc127
cout a few more timings for parallel version
danston b312012
cleanup
danston 74f5d8a
added one-sided parallel hausdorff distance, still with the seg fault
danston 27cc885
fixed parallel preprocessing, computation is still buggy
danston 9117c7e
fixed bug with parallel computation, now works
danston e3c693c
optimized one-sided parallel version
danston 7d0ae6b
testing bunny dense
danston fb85383
corrected includes
danston 3c0fc28
more optimizations, using boost any and factoring out kd tree, adding…
danston 13ef434
fixing build errors when tbb and/or metis is unavailable
danston c4e23b5
tested with different concurrency tags, cleanup, added empty test for…
danston 00f4a52
missing header
sloriot 04f556f
Merge remote-tracking branch 'sloriot/gsoc2019-PMPHDist-martinskrodzk…
danston dbfca54
hide the parallel version behind ifdefs
danston 80c776c
added functions are_within_tolerance, not finished, fixing max funcs …
danston 77c2dc4
testing early quit
danston 559815e
added more assertions
danston acce02a
do not build if inf value < 0 and added distance_bound, not finished
danston 73e9e86
added early quit option to accelerate distance vs user defined distan…
danston 5686252
is_further_than function finished
danston 6ae21a4
added visitor to save pairs of realizing triangles
danston 859bae9
sebastien review
danston aaf55db
Merge remote-tracking branch 'maxGimeno/PMP-compare_faces_from_meshes…
danston ad6a718
added missing IO ns
danston d37eb48
using new OFF reader from IO
danston 610f375
backticked tms
danston cd02254
missing article
danston 76dc3a0
tree -> BVH
sloriot 95cc999
fixed typo
danston 18e6b8f
Merge remote-tracking branch 'sloriot/gsoc2019-PMPHDist-martinskrodzk…
danston 7f19456
better explained concurrency tag
danston 73581e1
added named param for choosing between one sided and symmetric dist i…
danston d778263
fixed ref to the bounded error distance function
danston dcd8fe8
added missing user docs for is_hausdorff_larger and symmetric distanc…
danston cb9747b
updated changes.md
danston 6bd71a3
fix test
sloriot 7fbec6f
do not test the paper bench
sloriot d8a375b
generate the refine version of blobby
sloriot 61ab2c1
fix conversion warning
sloriot File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,7 @@ | ||
| if(METIS_FOUND AND NOT TARGET CGAL::METIS_support) | ||
| add_library(CGAL::METIS_support INTERFACE IMPORTED) | ||
| set_target_properties(CGAL::METIS_support PROPERTIES | ||
| INTERFACE_COMPILE_DEFINITIONS "CGAL_METIS_ENABLED" | ||
| INTERFACE_INCLUDE_DIRECTORIES "${METIS_INCLUDE_DIRS}" | ||
| INTERFACE_LINK_LIBRARIES "${METIS_LIBRARIES}") | ||
| endif() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.