Commit Graph

284 Commits

Author SHA1 Message Date
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 57fbda8835 pass on the doc but the Orthtree class 2024-01-25 16:06:06 +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 b5945b4219 Fix warning 2024-01-25 07:26:33 +00:00
Andreas Fabri 58d26ed40e Make parameter const& 2024-01-25 07:25:03 +00:00
Sébastien Loriot 95d8d8c48d clean up axis and commodity enum to work in both 2D and 3D 2024-01-24 18:40:43 +01: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 33e09bf1a0 Switch back to the wrong coordinate system 2024-01-24 10:38:05 +00:00
Andreas Fabri 77d95097dd protect min/max 2024-01-24 10:05:46 +00:00
Andreas Fabri f014326c00 Use Traits::Node_index 2024-01-24 09:49:10 +00:00
Andreas Fabri f650c6fe23 Add typedef to base class 2024-01-24 09:32:53 +00:00
Andreas Fabri cdea8cf8bb
Update Orthtree/include/CGAL/Orthtree_traits_face_graph.h 2024-01-18 12:39:46 +01:00
Andreas Fabri 552209ecd2 Add the operators in the concept 2024-01-16 16:21:20 +00:00
Andreas Fabri 95e06ddf15
Update Orthtree/include/CGAL/Orthtree_traits_face_graph.h 2024-01-16 17:00:00 +01:00
Sébastien Loriot 825029a311 improve doc 2024-01-15 12:27:06 +01:00
Sébastien Loriot 25d658f2fa doc the real type 2024-01-15 09:59:40 +01:00
Andreas Fabri f7eaa95099 Remove one group layer 2024-01-15 07:40:55 +00:00
Andreas Fabri 8097ba81bc PointSet -> PointRange 2024-01-14 21:31:03 +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 172044b128 removing old references 2024-01-12 18:43:37 +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 64b232e9e4 deleted unused traits base classes 2024-01-12 16:42:10 +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 2c87155449 Merge remote-tracking branch 'orth/orthtree-generalization' into Kinetic_shape_reconstruction-new_package-soesau 2023-11-15 14:32:21 +01:00
Sven Oesau dceff13bea added missing header 2023-11-15 10:46:28 +01:00
Sven Oesau 8274313a74 fix ci
restored another é
2023-11-15 09:36:44 +01:00
Sven Oesau e94bc9baef ci fix
[skip ci]
2023-11-14 22:15:27 +01:00
Sven Oesau e48d8ba58a fix missing license header & doc 2023-11-14 14:53:37 +01:00
Sven Oesau 22f2b84c85 add missing header 2023-11-14 14:38:38 +01:00
Sven Oesau 2b254121fe merging LCC creation, point on face projection for reconstruction and fixed t-functions 2023-11-08 13:54:41 +01:00
Sven Oesau b26e22bca8 Merge remote-tracking branch 'remotes/orth/orthtree-generalization' into Kinetic_shape_reconstruction-new_package-soesau 2023-11-08 08:58:25 +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
Sven Oesau 5a27f38675 Merge remote-tracking branch 'orth/orthtree-generalization' into Kinetic_shape_reconstruction-new_package-soesau
# Conflicts:
#	Orthtree/include/CGAL/Orthtree.h
2023-10-10 09:44:42 +02:00
Sven Oesau 06904b51e5 doc fix
[skip CI]
2023-10-02 10:11:59 +02: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 ffeb2ae85e Remove reference to Node type in traversal concept 2023-09-24 17:45:58 +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
JacksonCampolattaro 759905b136 Merge remote-tracking branch 'origin/orthtree-generalization' into orthtree-generalization 2023-09-16 10:26:35 +02:00
JacksonCampolattaro 4681f17ca8 Fix a small issue with the Octree definition 2023-09-16 10:24:24 +02:00
Sébastien Loriot 33dce33e0b fix some doc issues 2023-09-14 09:58:04 +02:00
Sébastien Loriot da33014535 Merge remote-tracking branch 'cgal/master' 2023-09-14 09:07:00 +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 ea59877c19 Automatically determine the correct typedefs for an ambient dimension using template specializations & SFINAE 2023-09-07 17:19:04 +02:00
JacksonCampolattaro 750ca578a8 Combine 2d, 3d, and d-d points traits into one template 2023-09-07 13:25:35 +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 99a2d5612f Replace bbox with Iso_rectangle/_cuboid/_box 2023-09-02 15:09:16 +02:00
JacksonCampolattaro 1566750766 Switch license to GPL 2023-09-01 17:45:09 +02:00
JacksonCampolattaro d0fa6ed68b Add missing license header 2023-09-01 17:19:29 +02:00
JacksonCampolattaro 40b2c0dff0 Convert nearest neighbor methods to free functions 2023-09-01 17:16:54 +02:00
JacksonCampolattaro e9ca3cc561 Update face graph traits to use functors 2023-09-01 16:43:26 +02:00
Sébastien Loriot 40a08f1416 add missing license include 2023-09-01 14:52:26 +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 b950c6c494 Add base traits classes with common typedefs for convenience 2023-07-27 13:52:10 +02:00
JacksonCampolattaro 6f31cbddd6 Point traits now share the generic reassign_points method 2023-07-27 10:13:49 +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 dccda38424 Reference type of traversal iterator is a Node_index (and not a reference to one)
This resolves the issue with segfaults during traversal. In some circumstances, the index would go out of scope before being used for access.
2023-07-09 17:51:50 +02:00
JacksonCampolattaro 03cda70191 Replace boost::optional with std::optional 2023-07-09 17:49:12 +02:00
albert-github 301728a8a9 issue #7395 Improvement of layout of model relations
- Completed the cgalModels part
2023-07-09 12:43:36 +02:00
Sébastien Loriot 02e10bf85a add TODO 2023-07-06 09:24:44 +02:00
Sébastien Loriot 4e1dabe0c0 version version of traits for triangle meshes
example currently segfault, to be debugged...
2023-07-03 17:16:10 +02:00
JacksonCampolattaro dc18e1b1db Replace `tree.points(node)` with `tree.data(node)` 2023-06-27 14:58:13 +02:00
JacksonCampolattaro 22e76aac65 Adapt 2D & dD traits for the new system
There's a lot of duplicated code in the traits classes, at the very least `reassign_points` should be shared.
2023-06-26 18:07:17 +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 f2467dea77 Remove unused Node methods 2023-04-25 16:00:24 +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
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