Commit Graph

651 Commits

Author SHA1 Message Date
Laurent Rineau 18f4e440db Merge branch 'releases/CGAL-5.0-branch' 2020-07-07 11:44:40 +02:00
Laurent Rineau 2552ec6307 Merge branch 'releases/CGAL-4.14-branch' into releases/CGAL-5.0-branch 2020-07-07 11:44:01 +02:00
Laurent Rineau 0911586ae3
Merge pull request #4836 from CGAL/afabri-patch-3
Update AABB_halfedge_graph_segment_primitive.h
2020-07-07 11:41:33 +02:00
Andreas Fabri 23c29ff060
Update AABB_halfedge_graph_segment_primitive.h
Fix typos
2020-07-07 11:23:45 +02:00
Andreas Fabri f547b947d3
Update AABB_face_graph_triangle_primitive.h
Fix documentation bug.
2020-07-07 11:20:03 +02:00
Sébastien Loriot 137971071c hide for doxygen 2020-04-29 17:02:48 +02:00
Sébastien Loriot 531071907b use relaxed order 2020-04-23 17:22:49 +02:00
Sébastien Loriot f56cd59eb4 add the possibility to pass custom functors to build the tree 2020-04-23 16:13:32 +02:00
Sébastien Loriot 0c98cd8eee fix no-thread 2020-04-22 16:53:36 +02:00
Sébastien Loriot 76aeb96682 fix wrong value 2020-04-22 16:35:11 +02:00
Sébastien Loriot 5ec5ad6c8e doc clean up 2020-04-22 16:23:57 +02:00
Sébastien Loriot c8eddc4efc build() always trigger the reconstruction of the tree
It can be useful for a mesh with update vertex coordinates
2020-04-22 15:56:26 +02:00
Sébastien Loriot cbd7dfc793 document the new behavior 2020-04-22 15:48:33 +02:00
Sébastien Loriot 13f83d6530 simplify constructors 2020-04-22 15:06:39 +02:00
Sébastien Loriot 5f05c610d1 make the construction of the search tree lazy 2020-04-22 14:57:20 +02:00
Sébastien Loriot c5ba7d4621 fix the thread-safety of the lazy construction of the tree
* use c++11 memory model to fix the Double-Checked Locking
2020-04-22 14:41:57 +02:00
Sébastien Loriot 6d6b8426ad (do_not_)accelerate_distance_queries() are non-const methods 2020-04-22 11:09:15 +02:00
Sébastien Loriot e4010a7875 rename variable with ambiguous name 2020-04-22 11:03:04 +02:00
Sébastien Loriot 41ae2c31bb extra run of the script to remove tabs and trailing whitespaces 2020-03-26 19:28:26 +01:00
Sébastien Loriot c67d093ebf Update branch from master after trailing whitespaces and tabs removal 2020-03-26 19:28:07 +01:00
Sébastien Loriot 8bb22d5b2c extra run of the script to remove tabs and trailing whitespaces
right after the merge of the 5.0 release branch

+ manual fix of the files (indentation was changed in the meantime):
   * Spatial_sorting/include/CGAL/Multiscale_sort.h
   * Spatial_sorting/test/Spatial_sorting/test_multiscale.cpp
2020-03-26 14:26:59 +01:00
Sébastien Loriot 8b153fb495 Merge branch 'cgal/releases/CGAL-5.0-branch'
whitespace+tab removal, merged with option -Xignore-space-change
2020-03-26 14:22:32 +01:00
Sébastien Loriot 0779373835 extra run of the script to remove tabs and trailing whitespaces
right after the  merge of 4.14 release branch

+ manual fix on one line in:
    * Arrangement_on_surface_2/include/CGAL/IO/Arr_text_formatter.h
    * .travis/generate_travis.sh
2020-03-26 14:16:06 +01:00
Sébastien Loriot 590612a563 run the script to remove tabs and trailing whitespaces 2020-03-26 13:25:16 +01:00
Ahmed Essam 2b9c2c1634 Test AABBTree move semantics 2020-03-07 04:28:13 +02:00
Ahmed Essam 49465bbcb6 Use stack variable instead of pointer 2020-03-06 16:28:21 +02:00
Ahmed Essam 5f8e3bc3cf
Use lval ref instead of perfect forwarding in set_children
Co-Authored-By: Sebastien Loriot <sloriot.ml@gmail.com>
2020-03-03 15:00:42 +02:00
Ahmed Essam 5e9801839d Add move constructor to AABB tree and use smart pointers 2020-03-01 02:44:34 +02:00
Laurent Rineau 0fa0c4fbb9 Merge pull request #4244 from maxGimeno/AABB_tree-Make_accelerate_distance_queries_default-maxGimeno
AABB_tree: make accelerate distance queries default
2019-12-05 11:05:35 +01:00
Laurent Rineau 3b5d13f023 Merge pull request #4250 from maxGimeno/PMP-Side_of_tm-use_bbox-maxGimeno
PMP: Make Side_of_triangle_mesh faster for disjoint meshes
2019-12-05 11:05:29 +01:00
Maxime Gimeno fb273ea62a Fix indentation 2019-12-03 09:33:09 +01:00
Maxime Gimeno 53458f1f42 Indentation 2019-12-02 16:13:20 +01:00
Maxime Gimeno 7b05052a27 Test if the tree is empty before building the kd-tree (to fix all the execution failures in the tests) 2019-11-18 10:27:04 +01:00
Sébastien Loriot 254d60f642 First pass on removing license notice in header for GPL files 2019-10-19 15:23:19 +02:00
Sébastien Loriot 7356421d80 introduce Commercial license SPDX tag 2019-10-19 12:15:19 +02:00
Sébastien Loriot 9bd9c68b83 update LGPL[23]+ and GPL[23]+ SPDX tags
ack -l --no-svg "SPDX-License-Identifier: GPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-3.0+/SPDX-License-Identifier: GPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-3.0+/SPDX-License-Identifier: LGPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: GPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-2.0+/SPDX-License-Identifier: GPL-2.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-2.0+/SPDX-License-Identifier: LGPL-2.0-or-later/"
2019-10-18 21:57:54 +02:00
Martin Skrodzki 16e0a475f4 Fix traversal order, add comment on benchmark results. 2019-10-14 00:28:08 +02:00
Sébastien Loriot 9221290bef add missing const 2019-10-11 08:07:02 +02:00
Sébastien Loriot 6e73f92fd2 fix nb of primitives 2019-09-27 07:15:17 +02:00
Sébastien Loriot a4aa6a7b77 rework expression 2019-09-26 15:54:43 +02:00
Andreas Fabri 6027b2d5f7 Add Traits::intersection_with_priority() 2019-09-26 15:15:50 +02:00
Maxime Gimeno dd566a2c96 Fixes 2019-09-24 13:49:10 +02:00
Maxime Gimeno 15d42d6cd2 Make the accelerate_distance_query() lazy and add a function to disable it. 2019-09-24 11:38:19 +02:00
Maxime Gimeno 2a3cce88e8 Fix AABB_tree with 1 primitive 2019-07-04 10:31:48 +02:00
Laurent Rineau 23f946a58a Merge pull request #3954 from maxGimeno/AABB_tree-All_intersected_primitives_for_tree-GF
AABB_tree: add do_intersect() for trees
2019-06-17 14:16:09 +02:00
Andreas Fabri 4581f1b7a8 Morte replacements 2019-06-05 08:39:55 +02:00
Maxime Gimeno c873d7bf36 Documents do_intersect() for AABB_trees and add a test file 2019-05-23 16:14:56 +02:00
Sébastien Loriot 1d908c1c0b remove code for CGAL_INTERSECTION_VERSION 1 2019-03-29 13:28:32 +01:00
Sébastien Loriot affaa19327 remove workaround for non support of variadic template 2019-03-29 10:41:49 +01:00
Laurent Rineau 4d66f012c7 Merge pull request #3766 from sloriot/AABB_tree-more_robust_first_intersection
More robust first_intersection
2019-03-19 18:30:50 +01:00
Sébastien Loriot 3c0cc16c68 take the max coordinate instead of the non-zero one 2019-03-12 17:59:28 +01:00
Laurent Rineau 11bf3926e6 Merge branch 'releases/CGAL-4.12-branch' 2019-02-16 14:00:03 +01:00
Laurent Rineau fdd8357915
Merge pull request #3580 from afabri/Stream_support-Color-GF
Fix warnings (Add/remove copy constructors, and other warnings)

Co-authored-by: Laurent Rineau <laurent.rineau@cgal.org>
Co-authored-by: Mael <mael.rouxel.labbe@geometryfactory.com>
Co-authored-by: Maxime GIMENO <maxime.gimeno@gmail.com>
2019-02-13 15:25:07 +00:00
Sébastien Loriot 0f9f217f50 add an important note for first_intersection 2019-02-12 16:10:41 +01:00
Laurent Rineau 0241fdc3eb Compatibility with both Point_3 and Weighted_point_3 2019-02-11 13:46:06 +01:00
Laurent Rineau d216131c79 New undocumented AABB primitive: cells of a 3D triangulation
The `Scene_c3t3_item` from our 3D demos now uses an AABB tree of
cells, instead of an AABB tree of triangles. That divides the number
of primitives by 4, and save times:

Before:
```
C3t3 facets AABB tree built in 22.010006904602051 wall-clock seconds
Scene_c3t3_item_priv::computeIntersections in 0.50893402099609375 wall-clock seconds
```

After:
```
C3t3 cells AABB tree built in 13.072829008102417 wall-clock seconds
Scene_c3t3_item_priv::computeIntersections in 0.41458892822265625 wall-clock seconds
```

The gain seems mostly in the construction of the tree (40% saved), and
the gain on the queries seems lower (about 20%).
2019-02-11 13:22:11 +01:00
Laurent Rineau afc3de2894
Merge branch 'master' into Stream_support-Color-GF 2019-01-23 09:37:08 +01:00
Andreas Fabri 81d4227e57 Fix AABB tree 2019-01-10 18:40:10 +01:00
Andreas Fabri 6cc109f7c4 AABB Tree testsuite 2018-11-28 09:07:36 +01:00
Sébastien Loriot 6400cc5d5a fix doc warning 2018-11-12 11:28:23 +01:00
Sébastien Loriot 9c9d4ea6c6 fix doc warnings 2018-11-02 14:40:53 +01:00
Sébastien Loriot 056c778305 Merge pull request #3370 from maxGimeno/AABB_tree-Change_facegraph_triangle_primitive_id-GF
Aabb_tree: change the id of AABB_face_graph_triangle_primitive and AABB_halfedge_graph_segment_primitive
2018-11-02 10:34:26 +01:00
Sebastien Loriot 5be2958fae
Merge pull request #3386 from maxGimeno/AABB_tree-Override_build_function_with_shared_data-GF
AABB_tree: Add an overload to build() for shared data
2018-11-02 10:31:22 +01:00
Sébastien Loriot 34527a3dc3 remove extra template keyword 2018-10-31 06:20:37 +01:00
Sébastien Loriot cdbe19b480 Merge pull request #3369 from maxGimeno/AABB_tree-AABB_transformed_traits-GF
[Small Feature] Add collision detection in PMP
2018-10-30 15:49:38 +01:00
Laurent Rineau 62c33b9df4 Merge pull request #3390 from maxGimeno/AABB_tree-Add_datum_function-GF
AABB_tree: add datum()
2018-10-29 10:27:57 +01:00
Maxime Gimeno c05f2f98f8 Use the helper type but hide it in the doc 2018-10-12 10:21:13 +02:00
Maxime Gimeno 500c2a7200 Only document Datum_reference as return type 2018-10-11 10:13:26 +02:00
Maxime Gimeno 8f6d68152b add doc 2018-10-10 12:16:22 +02:00
Maxime Gimeno eacf880034 Add a const function datum() to AABB_tree and test. 2018-10-10 11:55:23 +02:00
Maxime Gimeno 1b5cfa66e6 Edit after review 2018-10-09 15:06:14 +02:00
Sébastien Loriot eb8e5e5b35 change the Id in the base class + update pmaps to handle also pairs 2018-10-09 14:15:26 +02:00
Maxime Gimeno 4615c636d5 Inherit from the helper class to avoid storing the graph if tag is true. 2018-10-09 14:14:51 +02:00
Maxime Gimeno da01fb43ee fix doc and don't duplicate the id. Use a pointer to the graph. 2018-10-09 14:14:51 +02:00
Maxime Gimeno 1d7e07b954 Fix doc 2018-10-09 14:14:51 +02:00
Maxime Gimeno 1960e01aeb fixes and do the same for the edges 2018-10-09 14:14:51 +02:00
Maxime Gimeno 232373c9ca Change the Id of the AABB_face_graph_triangle_primitive so it contains the mesh if necessary. 2018-10-09 14:14:51 +02:00
Sébastien Loriot baf27bbd6e use const map (non-const map should be convertible to const map in practice) 2018-10-09 10:28:45 +02:00
Maxime Gimeno 3e2d61e29d Move traits in PMP/internal 2018-10-09 10:28:43 +02:00
Sébastien Loriot c32820fe8b reuse conversions 2018-10-09 10:28:43 +02:00
Sébastien Loriot caa5135c18 simplify traits and always use transformed primitives 2018-10-09 10:28:42 +02:00
Sébastien Loriot 8486cff633 add an extra flag to force the evaluation of the transformation 2018-10-09 10:28:42 +02:00
Sébastien Loriot 680191dccd remove trailing whitespaces 2018-10-09 10:28:42 +02:00
Sébastien Loriot 3d50da882e cosmetic changes 2018-10-09 10:28:42 +02:00
Sébastien Loriot e6c7c34783 fix bbox computation and factorize 2018-10-09 10:28:42 +02:00
Maxime Gimeno 622509816b Fix rotation of boxes 2018-10-09 10:24:32 +02:00
Maxime Gimeno f236176d55 Add missing file 2018-10-09 10:24:32 +02:00
Maxime Gimeno 2c23959347 rename and transform primitives. Don't transform mesh in test. 2018-10-09 10:24:32 +02:00
Maxime Gimeno 8e64d49513 WIP: Remove the traits_base 2018-10-09 10:24:32 +02:00
Maxime Gimeno 48c0cc02a2 Add Filtered_predicates support 2018-10-09 10:24:32 +02:00
Maxime Gimeno 36fd62f8c6 Add benchmark for tree intersection 2018-10-09 10:24:32 +02:00
Sébastien Loriot f5ef4b0034 add a naive way to intersect two AABB-trees 2018-10-09 10:24:32 +02:00
Maxime Gimeno d2f4e19e36 Add transformations to the new traits and add a test for it. 2018-10-09 10:24:32 +02:00
Maxime Gimeno a764322b7d Create a dummy traits and fix AABB_traits and AABBTraits implem/doc problems. 2018-10-09 10:24:31 +02:00
Maxime Gimeno 79e54aedd8 indentation 2018-10-08 14:26:44 +02:00
Maxime Gimeno 7990fd4f27 Add an overload to build() for shared data 2018-10-08 14:14:49 +02:00
Sébastien Loriot 3dd0aa112d rename macro not following the convention 2018-10-08 10:28:55 +02:00
Sébastien Loriot a2e8a1c68f add the suffix Ref to doxygen link to reference 2018-10-08 10:26:56 +02:00
Sébastien Loriot 543495e8e0 build the kd-tree only if the AABB-tree is built
this avoid issues when using thread where the kd-tree is used
while being reconstructed
2018-07-18 17:40:09 +02:00
Sebastien Loriot ae70d9ca9f
Merge pull request #3061 from lrineau/AABB_tree-fix_for_MSVC_2017_15.7-GF
A fix for MSVC 2017 15.7 with /permissive-
2018-05-15 22:30:46 +02:00
Andreas Fabri d2b89df177 More Traits:: 2018-05-02 15:14:46 +01:00
Laurent Rineau a8bd3605a7 A fix for MSVC 2017 15.7 with /permissive-
MSVC is probably right that it was not a valid C++ code: the previous
version called a static member function of the enclosing class, without
qualification, and that static member function was defined *after*.
2018-04-26 16:16:10 +02:00
Sébastien Loriot 742a615527 fix doc warnings triggered essentially by the improvement of doxygen 2018-04-25 23:36:21 +02:00
Laurent Rineau 599f7c3b73 Merge pull request #2965 from sloriot/AABB_tree-Add_primitive_constructor
Add a constructor from iterator on id for AABB_primitive
2018-03-30 10:56:38 +02:00
Sébastien Loriot 4befc177c8 update requirements in the doc 2018-03-28 15:44:50 +02:00
Sébastien Loriot f36657ca2b add constructor from iterator 2018-03-27 21:07:24 +02:00
Maxime Gimeno bc2410d4ad Fixes 2018-02-28 11:40:49 +01:00
Maxime Gimeno 2156017402 Remove native gl.h include and native gl code in Surface_mesher/archive 2018-02-28 10:36:26 +01:00
Andreas Fabri 7675141f2b AABB_tree 2018-01-17 19:43:47 +00:00
Andreas Fabri 38b2e57b11 PMP 2018-01-17 17:59:35 +00:00
Sébastien Loriot ee57fc2d6c add SPDX identifier for files under the GPL-3+ license 2017-11-12 10:17:51 +01:00
Sébastien Loriot 081338bbcb remove backticks in arguments of \ref command 2017-08-03 13:22:51 +02:00
Andreas Fabri 360f955415 Adress todo of the github review 2017-07-18 17:20:46 +02:00
Andreas Fabri 6f6985065d fix doc 2017-07-18 17:20:46 +02:00
Andreas Fabri 5bd5fbf825 Document the default 2017-07-18 17:20:46 +02:00
Andreas Fabri 39e6ad9139 Add missing #include 2017-07-18 17:17:34 +02:00
Andreas Fabri aefd26b080 Add a template argument to AABB_traits for a face->bbox property map 2017-07-18 17:17:34 +02:00
Laurent Rineau d878561809 Merge pull request #2102 from afabri/Kernel_Weighted_point_without_conversion-GF
Remove implicit conversions between points and weighted points
2017-07-03 12:08:57 +02:00
Mael Rouxel-Labbé 1624867249 Renamed a variable for clarity 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé dc648c9cc2 Removed unnecessary semicolons 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé e63de324ec Use traits rather than .point() to access the bare point of weighted point 2017-06-28 10:14:35 +02:00
Andreas Fabri 60fa986e1f make the Polyhedron demo mesh_3_plugin work 2017-06-28 10:14:35 +02:00
Sébastien Loriot f348671e03 update doc that should have been updated when FaceGraph has been introduced 2017-06-26 10:08:42 +02:00
Laurent Rineau 376c2dd002 Merge pull request #1852 from maxGimeno/Doxygen_compare-GF
Compare two documentation outputs
2017-06-13 10:18:28 +02:00
Sébastien Loriot 0270ec473a Merge pull request #1255 from afabri/CGAL-license_check-GF
Add a license check mechanism
2017-01-25 17:14:55 +01:00
Sébastien Loriot 2e1e2a28e6 Merge remote-tracking branch 'cgal/releases/CGAL-4.9-branch' 2017-01-25 17:07:10 +01:00
Sébastien Loriot 37cbdd065c handle the case when the ray intersection is a segment 2017-01-24 14:19:56 +01:00
Maxime Gimeno 82860688d1 Fix the doc to avoid diffs between 1.8.4 and 1.8.13 outputs 2017-01-24 09:39:23 +01:00
Laurent Rineau 143f6042f7 Merge pull request #1833 from sloriot/AABB_tree-fix_ray_shooting
.. from a merge of branch 'cgal/releases/CGAL-4.9-branch'.
2017-01-19 17:38:42 +01:00
Sébastien Loriot 50510c05ea add include directive for license of all GPL header files
done using:
ack-grep "^GPL" */package_info/*/license.txt -l | awk -F "/" '{print $1}' > /tmp/gpl_packages
for i in `cat /tmp/gpl_packages | \
          grep -v Operations_on_polyhedra | \
          grep -v Algebraic_kernel_for_circles | \
          grep -v Algebraic_kernel_for_spheres | \
          grep -v Polyhedron_IO`;
do
  echo $i
  python Scripts/developer_scripts/add_license_in_pkg_header.py $i
done
python Scripts/developer_scripts/add_license_in_pkg_header.py Operations_on_polyhedra Polygon_mesh_processing
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_circles Circular_kernel_2
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_spheres Circular_kernel_3
python Scripts/developer_scripts/add_license_in_pkg_header.py Polyhedron_IO Polyhedron
2017-01-19 15:20:25 +01:00
Sébastien Loriot 40a54cf932 fix a typo for computing the relative distance 2017-01-13 16:22:57 +01:00
Maxime Gimeno 1face074bf Add offset support for the Cut_plugin 2016-12-02 12:03:46 +01:00
Sébastien Loriot 84fe181d7c Use functors instead of member functions 2016-10-28 15:07:14 +02:00
Sébastien Loriot 98ebf748e0 add missing requirement for the point type 2016-10-28 11:36:53 +02:00
Laurent Rineau d02ab0c626 Merge pull request #1575 from afabri/Spatial_searching-document_build-GF
Add the documentation for Kd_tree::build()
2016-10-18 11:06:37 +02:00
Laurent Rineau f2e7050364 Merge pull request #1428 from sloriot/AABB_tree-fix_Closest_point
Fix implementation of AABB_traits::Closest_point
2016-10-17 10:03:20 +02:00
Andreas Fabri 64a901a863 Add the documentation for Kd_tree::build() and unify it with AABB_tree::build.
The latter was in a Section 'Advanced' (not \cgalAdvanced, just a \heading).
They are now both in the Section `Creation`.
2016-10-13 10:07:48 +02:00
Laurent Rineau 1c19028e5b Merge pull request #1267 from maxGimeno/Random_generator-GF
Random generator
2016-10-05 13:02:29 +02:00
Sébastien Loriot e2f7efa58a clean up 2016-09-28 10:45:45 +02:00
Maxime Gimeno 35a328b1bf Move Halfedge_and_face_graph_property_maps.h to BGL. 2016-09-28 10:45:45 +02:00
Maxime Gimeno a88981ddf5 Make the doc of the file just basic comments so the clas sis not officially documented. 2016-09-21 15:15:03 +02:00
Maxime Gimeno 5649c3f56b Renaming
- Rename AABB_C3T3_triangle_primitive in AABB_triangulation_3_triangle_primitive and change the doc accordingly.
2016-09-20 12:22:01 +02:00
Sébastien Loriot 8359f3796e remove a no longer needed header 2016-09-01 16:05:04 +02:00
Sébastien Loriot e8939a8db1 using Construct_projected_point_3 in Closest_point as it meant to be documented 2016-09-01 16:05:03 +02:00
Sébastien Loriot c751ab4310 Add operators for segment and triangle types in Construct_projected_point_3
the original implementation comes from the AABB-tree package
2016-09-01 16:04:55 +02:00
Sebastien Loriot 62d06a2b88 Revert "AABB_tree : fix doc vs code inconsistency" 2016-08-23 11:12:33 +02:00
Jane Tournois 2fade16c73 replace Compute_closest_point with Construct_closest_point 2016-08-10 16:48:11 +02:00
Jane Tournois 1f530e0dc8 fix an inconsistency between the code and the doc
doc mentions `Compute_closest_point_3`, and code implements `Closest_point`

since `Compute_closest_point_3` should move to the Kernel at some point, I prefer
keeping this solution.

However, for backward compatibility with possibly existing user code, I keep Closest_point
in the non-documented code.
2016-08-10 15:47:35 +02:00
Maxime Gimeno f8b9520764 Fix for Source_point_from_edge_descriptor::get(). 2016-07-01 16:20:02 +02:00
Laurent Rineau bc457b086a Fix a documentation bug
`boost::get(vertex_point, graph)` may not compile, if the graph is not a CGAL face graph. Example: when it is an OpenMesh, in the `OpenMesh` namespace.
2016-06-09 13:05:32 +02:00
Andreas Fabri 6392adf636 another min max fix for VC++ 2016-05-03 06:28:38 +02:00
Andreas Fabri 970460ec0b Use std::priority_heap if boost version < 1.50 2016-05-02 10:27:55 +02:00
Andreas Fabri 12579a1214 Fix VC++ max problem 2016-05-01 17:37:11 +02:00
Andreas Fabri b56c436ee6 Use boost::lambda::constant() - thank you Philipp 2016-04-26 17:12:17 +02:00
Sébastien Loriot 48a493893f fix indentation issues 2016-04-26 17:12:16 +02:00
Sébastien Loriot 03f9c56c76 Make the code matching the submission
- rename first_intersection_and_primitive to first_intersection
 - update examples and test
 - switch on the function doc
 - add implementation for first_intersected_primitive
2016-04-26 17:12:15 +02:00
Andreas Fabri 37e4ddb107 const& 2016-04-26 17:12:15 +02:00
Andreas Fabri 84ebe802ae Add the second function implementation skeleton 2016-04-26 17:12:14 +02:00
Andreas Fabri 2fabd2c170 Add the second function; change changes.html 2016-04-26 17:12:14 +02:00
Andreas Fabri 285341bb57 Rename ray_intersection() to first_intersection() 2016-04-26 17:12:14 +02:00
Philipp Möller e4e4e48ea5 Unused object warning 2016-04-26 17:12:14 +02:00
Philipp Möller 54d8839ac9 Comment out the do_intersect tests
They caused a performance problem when used with the tweaked AABB_traits
of Surface_mesh_segmentation.
2016-04-26 17:11:09 +02:00
Philipp Möller 3f4d185b1d Use branchless min/max 2016-04-26 17:11:06 +02:00
Philipp Möller 7cd8369ab2 Prevent division by zero 2016-04-26 17:11:04 +02:00
Philipp Möller ce6501a291 Use the original algorithm 2016-04-26 17:11:03 +02:00
Philipp Möller b086fc6ec6 Return 0. for t_near < 0.
If t_near is smaller than 0. it means that the ray starts inside the
bounding box. t_near is the intersection point at the outside of the
box, but the actual intersection is at the start of the ray.
2016-04-26 17:11:02 +02:00
Philipp Möller 0db0027414 Performance bug 2016-04-26 17:11:01 +02:00
Philipp Möller bfb36df712 Add the ability to use skip functor 2016-04-26 17:10:59 +02:00
Philipp Möller 83d7396cd8 Throw in some const 2016-04-26 17:10:57 +02:00
Philipp Möller 4d08cf6d33 Add a do_intersect test before intersection 2016-04-26 17:10:55 +02:00
Philipp Möller b6e60ba6dc Make the correct part of Node_ptr const 2016-04-26 17:10:54 +02:00
Philipp Möller 901c27724b Use boost::priority_queue 2016-04-26 17:10:53 +02:00
Philipp Möller 8eded0292f use visitation instead of get 2016-04-26 17:10:51 +02:00
Philipp Möller ced2b87170 static_assert type equality
Ray is just a template parameter to avoid instantiation of this
function, make sure it is the type we expect.
2016-04-26 17:10:47 +02:00
Philipp Möller e3fdda3bc0 Integrate changes from the submission 2016-04-26 17:10:46 +02:00
Philipp Möller f94a74b93a Document that AABB_traits can also model AABBRayIntersectionTraits 2016-04-26 17:10:41 +02:00
Philipp Möller 08f7efd1d2 Only use functors in Intersection_distance 2016-04-26 17:10:39 +02:00
Philipp Möller 2148ae6d4f Directly use Ray type and avoid a function template 2016-04-26 17:10:37 +02:00
Philipp Möller 4466eb5df3 Simplify types a bit 2016-04-26 17:10:36 +02:00
Philipp Möller 5aef4c4ca5 Add missing base cases 2016-04-26 17:10:35 +02:00
Philipp Möller 33bc6f125f Make child and data of a Node public
This is necessary so that other algorithms can traverse the hierarchy.
2016-04-26 17:10:34 +02:00
Philipp Möller 2540612e97 Drop-in for as_ray_parameter
This needs to be replaced with a non-hacky solution.
2016-04-26 17:10:33 +02:00
Philipp Möller f4a506ed73 Fix wrong identifier names 2016-04-26 17:10:30 +02:00
Philipp Möller 69d7662ddc Fix wrong template arguments 2016-04-26 17:10:29 +02:00
Philipp Möller 0e883861b5 Move Intersection_distance into its own base
This is necessary so that we only define it if the GeomTraits meet the
necessary requirements.
2016-04-26 17:10:27 +02:00
Philipp Möller b1e99b3c71 Add is_ray_intersection_geomtraits
This meta-function can be used to make a somewhat accurate guess if the
argument is a model of the yet to be written
AABBRayIntersectionGeomTraits.
2016-04-26 17:10:26 +02:00
Philipp Möller f6bed4128e Forgot copy-right header 2016-04-26 17:10:25 +02:00
Philipp Möller 7c26fcb8b8 Parenthesis for max and min 2016-04-26 17:10:24 +02:00
Philipp Möller a8f5e3f867 Use the slab method to compute intersection_distance
This code still relies on the types to be CGAL types.
2016-04-26 17:10:22 +02:00
Philipp Möller 01ef95783d Add prototype for Intersection_distance 2016-04-26 17:10:21 +02:00
Philipp Möller 88acc3d1b3 Fix indentation of class intersection
Wrong indentation on nested classes made this tricky to decipher and
worth the change.
2016-04-26 17:10:20 +02:00
Philipp Möller 90542aa0ab Add the doc for ray_intersection 2016-04-26 17:10:18 +02:00
Philipp Möller 2af2aa324d Handle case 2 and 3 2016-04-26 17:10:16 +02:00
Philipp Möller 5cd89bd981 fixup 2016-04-26 17:10:15 +02:00
Philipp Möller e7b3a7a97c Handle both inner nodes 2016-04-26 17:10:13 +02:00
Philipp Möller 3abe4ed2c2 Add basic algorithm outline 2016-04-26 17:10:12 +02:00
Philipp Möller 4cc9d34cb5 Add prototypes and implementation file 2016-04-26 17:10:11 +02:00
Sébastien Loriot b2196fca0c remove non-needed OpenGL instructions 2016-01-18 13:17:41 +01:00
Andreas Fabri 56bfaa2746 merge 2016-01-05 17:06:04 +01:00
Andreas Fabri 88596c38ce bugfix: the datum was a segment not a triangle 2015-12-16 16:58:27 +01:00