Commit Graph

77 Commits

Author SHA1 Message Date
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
albert-github eed54a0ae5 spelling corrections
Some spelling corrections (Directories starting with `O`-`S` , first part),
some backward work
some forward work
2022-11-15 18:45:39 +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 d1eca8310f typo 2022-11-09 08:47:37 +00:00
Andreas Fabri efddc4ae84 Orthtree: Fix in test code 2022-06-30 15:57:21 +01:00
Andreas Fabri 2b836ab7ab no need for int D 2022-06-21 17:11:28 +01:00
Andreas Fabri 9a633432ba change order of parameters 2022-06-21 17:05:35 +01:00
Andreas Fabri 329f52175a Orthtree: Fix memory leak in test code 2022-06-21 16:54:27 +01:00
Andreas Fabri 191e99adc8 Fix Orthtree 2022-05-17 10:41:26 +01:00
Simon Giraudot 8f8679e038 Fix uninitialized pointer 2021-04-13 09:42:15 +02: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 616cd5a549 Apply corrections from review 2021-04-01 08:55:51 +02:00
Simon Giraudot 692c7a6f90 Remove unused parameter 2021-03-23 11:44:50 +01:00
Simon Giraudot 9724bed342 Prevent min/max macro substitution on windows 2021-03-22 08:24:44 +01:00
Simon Giraudot 0da0b71980 Fix missing typename 2021-03-17 15:45:43 +01:00
Simon Giraudot 2fa19c2818 Fix more warnings 2021-03-17 08:12:53 +01:00
Simon Giraudot 701f230f24 Fix warning (unsigned is always >= 0) 2021-03-16 12:14:45 +01:00
Simon Giraudot a14dfc4e96 Fix bbox init for EPECK compatibility 2021-03-16 12:01:27 +01:00
Simon Giraudot 39d3051d9f Fix warnings 2021-03-16 08:54:36 +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 57af406402 Fix multiple inclusion guard 2021-03-04 15:55:14 +01:00
Simon Giraudot 67c1f3fad1 Add missing includes 2021-03-04 15:12:23 +01:00
Simon Giraudot 0b1d696c97 Add Orthtree.h include so that Node.h compiles 2021-03-04 08:29:24 +01:00
Simon Giraudot e95dea12cd Fix missing include 2021-03-03 15:00:49 +01:00
Simon Giraudot 0f40608714 Make node comparable 2021-02-03 08:26:25 +01:00
Simon Giraudot c15327a901 Add level traversal 2021-02-03 08:26:03 +01:00
Simon Giraudot 5aeb07d654 Minor fixes 2021-02-02 08:27:44 +01:00