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 |