Sébastien Loriot
434d3e95e4
draft for an implementation of bbox corner that are consistent between
...
nodes of different depths
2024-01-30 17:29:22 +01:00
Sven Oesau
2802d58326
removing Maybe_node_index
2024-01-30 17:14:37 +01:00
Sven Oesau
11f0a842de
changing dimension and degree in orthtree(_traits) to int
2024-01-30 17:14:36 +01:00
Sven Oesau
546c0c842a
small doc corrections
2024-01-30 17:14:36 +01:00
Sébastien Loriot
88f01a5f1d
get rid of EPECK
...
we compute sizes approximatively and sets bboxes using those value:
computation is always the same so values are the same if the
rounding mode is not changed. The only exception is for the max value
on the bbox of the root where the max is used instead of being computed
using precomputed extent sizes
2024-01-26 16:06:05 +01:00
Sébastien Loriot
caad3b3cf0
pass on Orthtree class
2024-01-25 16:37:05 +01:00
Sébastien Loriot
d515e42c39
fix doc warning
2024-01-25 13:46:55 +01:00
Andreas Fabri
585467ab36
As the bbox of nodes gets constructed from Epeck::FT we have to take the upper bounds of intervals
2024-01-25 10:39:47 +00:00
Andreas Fabri
58d26ed40e
Make parameter const&
2024-01-25 07:25:03 +00:00
Sébastien Loriot
91b4a7a70c
fix zip iterator
...
changed introduced in d43432d533
2024-01-24 16:58:46 +01:00
Sébastien Loriot
0c9349064b
Revert "If smaller is true we want to go in the 0-half space not 1"
...
This reverts commit 5e67892ab0 .
2024-01-24 16:57:53 +01:00
Andreas Fabri
5e67892ab0
If smaller is true we want to go in the 0-half space not 1
2024-01-24 13:58:37 +00:00
Sébastien Loriot
d078a34e1f
fix warnings
2024-01-24 11:47:11 +01:00
Andreas Fabri
f7eaa95099
Remove one group layer
2024-01-15 07:40:55 +00:00
Andreas Fabri
add12f51bf
small fixes
2024-01-14 17:55:45 +00:00
Sven Oesau
beea3f2fda
fixing comment for Node_index_range
...
removing Node_range
[skip ci]
2024-01-12 19:01:03 +01:00
Sven Oesau
d43432d533
adding locate_halfspace_object to traits
...
changed reference directions
removed unused traits
added traits for face graph
pass on documentation
2024-01-12 17:47:09 +01:00
Sven Oesau
eb845938b9
switching to Property_array_handle
...
extending tests to include properties
more doc
2024-01-12 12:50:32 +01:00
Sven Oesau
85e598772d
pass on doc
2024-01-12 11:13:17 +01:00
Sven Oesau
626a23a49a
fixed exact corners, multi dimension example
...
removed warnings
2024-01-10 16:35:15 +01:00
Sven Oesau
de06eb02ff
fixing orthtree bbox coordinates
...
- also fixes efficient ransac tests
2024-01-02 20:57:51 +01:00
Sven Oesau
696fb83399
moving new property system into CGAL::Experimental namespace
...
fixing msvc compiling issues
2023-11-07 15:01:37 +01:00
JacksonCampolattaro
047a9494bd
Fix mismatched parameter names in documentation
2023-09-30 09:24:20 +02:00
JacksonCampolattaro
6f86c932c8
Update function documentation for consistency
2023-09-27 21:13:46 +02:00
JacksonCampolattaro
4c6084159a
Add boost::span to STL_Extension for compatibility with older versions of Boost
2023-09-24 14:25:47 +02:00
JacksonCampolattaro
38c35d83c7
Update orthtree documentation and manual
2023-09-24 13:56:01 +02:00
Sébastien Loriot
33dce33e0b
fix some doc issues
2023-09-14 09:58:04 +02:00
JacksonCampolattaro
c4e6ad77f7
Update documentation for Orthtree member functions.
2023-09-13 09:19:33 +02:00
JacksonCampolattaro
ed32969908
Prefer `using` over `typedef` universally, for consistency
2023-09-08 12:42:20 +02:00
JacksonCampolattaro
3e20800b7f
Update documentation for Traits concepts
2023-09-08 12:13:27 +02:00
JacksonCampolattaro
32c6d61f27
Eliminate Array and Construct_point_d_from_array
2023-09-07 11:44:14 +02:00
JacksonCampolattaro
bf5bbcc0f1
Add `construct_point_d_object` to traits classes
...
Not yet documented by the OrthtreeTraits concept. Will replace construct_point_d_from_array.
2023-09-06 14:23:47 +02:00
JacksonCampolattaro
039b693b61
Add support for trees with non-cubic bounding boxes
...
High-order orthtrees break, because Epick_d::Point is somehow defined as an array
2023-09-02 17:37:34 +02:00
JacksonCampolattaro
fd34fb5302
`root_node_contents` now produces a Bbox directly
...
Some tests fail due to non-cubic bounding boxes
2023-09-02 16:49:32 +02:00
JacksonCampolattaro
51aae3a6a8
Bbox construction functor is no longer necessary; Bbox_d type must be constructible from a pair of points
2023-09-02 15:19:07 +02:00
JacksonCampolattaro
40b2c0dff0
Convert nearest neighbor methods to free functions
2023-09-01 17:16:54 +02:00
JacksonCampolattaro
77f240b1b6
Delete Orthtree::Node class, now used nowhere
2023-08-31 12:48:52 +02:00
JacksonCampolattaro
2d8f7d483d
Rename Properties.h for clarity
2023-08-30 15:32:38 +02:00
JacksonCampolattaro
07c671e6e9
Convert methods to functor objects for consistency (proof-of-concept)
2023-08-29 19:13:11 +02:00
JacksonCampolattaro
8fe57f5adf
Rename traverse_indices to traverse (now that it's the only traversal function)
2023-07-27 09:49:20 +02:00
JacksonCampolattaro
5bc0962b81
Eliminate non-index versions of split predicates & traversals
2023-07-26 14:13:00 +02:00
JacksonCampolattaro
4998f7bc57
Adapt remaining examples to use the generalized orthtree
2023-07-26 13:48:36 +02:00
JacksonCampolattaro
61a29f0fdb
Fix an issue where side-per-depth wasn't updated when a node was manually split
2023-07-26 09:57:44 +02:00
JacksonCampolattaro
cfdb167e35
Fix a couple of small issues which came up during LCC conversion
2023-07-18 10:35:48 +02:00
JacksonCampolattaro
03cda70191
Replace boost::optional with std::optional
2023-07-09 17:49:12 +02:00
JacksonCampolattaro
dc18e1b1db
Replace `tree.points(node)` with `tree.data(node)`
2023-06-27 14:58:13 +02:00
JacksonCampolattaro
b08eabae93
Move point-specific functionality to traits class
...
(only Point_3 is currently supported)
2023-06-26 16:59:02 +02:00
JacksonCampolattaro
c41faf1274
Delete independent `Node` type, move relevant typedefs to Orthtree.h
2023-06-25 13:54:19 +02:00
JacksonCampolattaro
01aad4af7a
Add a minimal test of custom node properties
2023-06-25 12:42:24 +02:00
JacksonCampolattaro
774aa1f324
Add node-access convenience functions, and simplify tests
2023-06-22 15:24:39 +02:00
JacksonCampolattaro
bfe584590e
Orthtree no longer instantiates Node types
2023-06-22 14:44:38 +02:00
JacksonCampolattaro
08b418bda2
Ensure properties of a moved-from tree are also moved-from
2023-06-22 14:11:30 +02:00
JacksonCampolattaro
ed9266e70f
Add parallel node system using properties
...
bug: moved-from is not reset
2023-06-22 10:23:29 +02:00
JacksonCampolattaro
d1ac73d087
Use index-based access for split predicates
2023-06-21 17:34:26 +02:00
JacksonCampolattaro
b09e4d0fa6
Add a property container with all aspects of the nodes (currently unused)
2023-06-21 16:39:17 +02:00
JacksonCampolattaro
9a52cf7026
Add a "Maybe" type hiding the boost::optional implementation detail
2023-04-25 16:07:00 +02:00
JacksonCampolattaro
53b3278d3f
root() now returns an index, like parent() and child()
2023-04-25 15:21:02 +02:00
JacksonCampolattaro
e7f236678e
Replace children() helper with individual child() access
2023-04-25 13:48:21 +02:00
JacksonCampolattaro
33358ae838
Only access node properties through helpers
...
This will make later refactoring to use property maps much simpler
2023-04-25 12:15:46 +02:00
JacksonCampolattaro
0707300f99
reassign_points() implemented in terms of indices
2023-04-25 11:32:11 +02:00
JacksonCampolattaro
43b7543d3b
nearest_k_neighbors() implemented in terms of indices
2023-04-25 11:24:56 +02:00
JacksonCampolattaro
8712032193
adjacent_node() implemented in terms of indices
2023-04-25 11:11:53 +02:00
JacksonCampolattaro
d761f6ebc0
adjacent_node() now returns an optional index
2023-04-25 10:57:56 +02:00
JacksonCampolattaro
825abd1727
Locate now returns a node index
2023-04-24 14:01:01 +02:00
JacksonCampolattaro
782561598e
Intersection writes indices to the output iterator
2023-04-24 13:49:13 +02:00
JacksonCampolattaro
b267403b95
Recursive intersection now uses indices
2023-04-24 13:38:05 +02:00
JacksonCampolattaro
c0a8bbf2c9
Topology equality is done by index
2023-04-20 11:57:35 +02:00
JacksonCampolattaro
b9ed5a4221
Relative node access is now done only by index
2023-04-19 19:11:59 +02:00
JacksonCampolattaro
b4f04645f1
Level traversal is done by index, has a new unit test
2023-04-19 18:44:30 +02:00
JacksonCampolattaro
62fa9db7a6
Preorder traversal is now implemented in terms of indices
2023-04-19 10:42:48 +02:00
JacksonCampolattaro
07968655f6
Add support for traversal by index
2023-04-18 14:45:00 +02:00
JacksonCampolattaro
8c12fd3bc7
Implement desired behavior for repeated refinement
2023-04-12 12:10:53 +02:00
JacksonCampolattaro
4e3fc7edf6
Add shims for using functions with indices
2023-04-12 11:17:57 +02:00
JacksonCampolattaro
9103affe72
Splitting is done by index (internally)
...
Pre-allocating nodes is no longer necessary, since refine() isn't broken by pointer invalidation
2023-04-11 17:52:52 +02:00
JacksonCampolattaro
a5a92ad795
Traversal is now done by index (internally)
2023-04-11 12:17:32 +02:00
JacksonCampolattaro
1a1ca5cf28
Node access is now done solely by index
...
Nodes no longer hold references to their parents and children
2023-03-31 15:58:42 +02:00
JacksonCampolattaro
14726a1e41
Add functions to get node indices & retrieve nodes by index
2023-03-29 22:46:52 +02:00
JacksonCampolattaro
6dec072b00
Node parent access is now done through the tree
2023-03-29 16:38:45 +02:00
JacksonCampolattaro
45244da9e1
Node can no longer directly access its children without the tree
...
This is necessary for the next step, but makes the API a pain to use. Some sort of `Node_handle` type is definitely worthwhile.
2023-03-27 18:12:20 +02:00
JacksonCampolattaro
353acb57ed
Nodes are allocated in an std::vector, and contain a boost::span of children
...
This reference-based approach breaks when the vector re-allocates. This is a stepping-stone to using indices.
2023-03-27 12:20:57 +02:00
JacksonCampolattaro
d8b42fd3f3
Remove subscript operator for direct access to children of root
...
This operator will be used for access by node ID in the future, and this functionality was less clear than tree.root[].
2023-03-26 21:32:55 +02:00
JacksonCampolattaro
035db48542
Nodes can't split, unsplit, or copy themselves.
...
This ensures allocating and deallocating nodes is strictly the responsibility of the orthtree object.
2023-03-26 16:50:06 +02:00
JacksonCampolattaro
4f6d249c1f
Eliminate heap allocated `Data *m_data`
...
This required changing return types to `Node *` in many cases. All unit tests have been updated to account for the new interface.
2023-03-23 09:58:20 +01:00
albert-github
01a7852f70
Merge branch 'master' into feature/bug_documentation_spell_20221113
...
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
Synchronize with master
2022-11-16 13:58:05 +01:00
Laurent Rineau
c01757bc80
Merge pull request #7028 from afabri/Orthtree-CC-GF
...
Orthtree: Fix memory leak
2022-11-15 17:01:29 +01:00
albert-github
45478184de
spelling corrections
...
Some spelling corrections (Directories starting with `E`-` L`),
some backward work
some forward work
2022-11-15 13:39:40 +01:00
Andreas Fabri
331ea2898a
Orthtree: Fix memory leak
2022-11-09 08:47:54 +00:00
Andreas Fabri
191e99adc8
Fix Orthtree
2022-05-17 10:41:26 +01:00
Simon Giraudot
24aa93dcaf
Use raw pointers instead of shared pointers (and let Orthtree manage memory)
2021-04-07 14:26:50 +02:00
Simon Giraudot
4d761ed9cd
More corrections from review
2021-04-01 14:21:01 +02:00
Simon Giraudot
2fa19c2818
Fix more warnings
2021-03-17 08:12:53 +01:00
Simon Giraudot
a14dfc4e96
Fix bbox init for EPECK compatibility
2021-03-16 12:01:27 +01:00
Simon Giraudot
e1cd919ea4
Fix warnings
2021-03-15 09:36:12 +01:00
Simon Giraudot
349717097f
Fix doc warnings
2021-03-11 10:21:07 +01:00
Simon Giraudot
ea17a54671
Fix max() Windows error
2021-03-11 08:32:30 +01:00
Simon Giraudot
e95dea12cd
Fix missing include
2021-03-03 15:00:49 +01:00
Simon Giraudot
5aeb07d654
Minor fixes
2021-02-02 08:27:44 +01:00
Simon Giraudot
8d30b39b73
More fixes from review
2021-02-02 08:17:54 +01:00
Simon Giraudot
1db1829b91
Insist on the points not being copied
2021-01-27 10:36:57 +01:00
Simon Giraudot
a0c24379ce
Fixes from review
2021-01-27 09:31:55 +01:00