Commit Graph

653 Commits

Author SHA1 Message Date
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
Andreas Fabri 0b2b5ee1e6 Add an AAB tree primitive for C3T3 facets 2015-12-11 16:15:36 +01:00
Andreas Fabri 547be5cd2a Use wrapper for the very basic mutex locking 2015-09-04 08:42:34 +02:00
Maxime Gimeno 89348a1ab9 cut_plugin fixed
- replaced the missing modified files by the originals
- added a reference to a vector of floats in traits so that it fills it instead of drawing the bboxes
2015-04-24 15:59:23 +02:00
Sébastien Loriot 1cc4f732f6 use Default for vertex point property map 2015-01-19 12:16:47 +01:00
Sébastien Loriot 67414ef0c8 fix default point property map used in BGL primitives 2015-01-19 11:57:43 +01:00
Sébastien Loriot aeaed0d18a remove deprecated constructor that conflict with the new one 2014-10-24 10:12:16 +02:00
Sébastien Loriot e5a44099e9 add additional constructor to allow building a primitive from a descriptor 2014-10-23 17:03:48 +02:00
Sébastien Loriot 9999dc8f0e add missing include so that tags are defined 2014-07-04 17:24:06 +02:00
Sébastien Loriot dfe0b88d2f AABB tree primitives should not include Polyhedron specific files
I also renamed a file only used in these primitives
2014-07-04 17:24:05 +02:00
Sébastien Loriot 5d9219c96d AABB-tree bugfix: perfect forward of arguments in C++11 and by ref otherwise
this was a bug because the shared data were copied
2014-07-02 12:23:52 +02:00
Sébastien Loriot 326b604e58 add missing shared data constructor from 2 args 2014-07-02 11:29:32 +02:00
Sébastien Loriot e412f6c2e5 fix the const correctness of FaceGraph and HalfedgeGraph primitives
The BGL is not const correct by design choice. Passing a const Graph as
  template parameter to the primitive type is error prone.
  This will make the life easier to the user.
2014-07-02 11:28:58 +02:00
Sébastien Loriot 6638bff59a add the missing 2 args version 2014-07-02 10:56:10 +02:00
Sébastien Loriot 4791498376 fix availability of a constructor for Polyhedron backward compatibility 2014-07-01 16:43:26 +02:00
Sébastien Loriot 97342ad6f6 backward compatibility with const Polyhedron 2014-06-24 16:38:03 +02:00
Andreas Fabri 67fa385190 A FaceGraph is any model of the concept face graph 2014-06-11 15:15:09 +02:00
Andreas Fabri 56f58c1945 Add backward compatibility code 2014-06-11 10:22:46 +02:00
Sébastien Loriot d0dfac3caa facet_handle -> face_descriptor 2014-06-05 21:29:01 +02:00
Andreas Fabri 3d7d596e6b Use vertex_point property map so that it now also compiled with OpenMesh 2014-06-05 15:29:49 +02:00
Andreas Fabri 2c4c38809d switch internally to BGL API in mesh segmentation. We still have to deal with the point property maps 2014-06-05 12:05:54 +02:00
Andreas Fabri 4a37f74122 switch to new BGL API 2014-06-04 21:28:59 +02:00
Andreas Fabri e95c3d452c Switch to new BGL API in package AABB_tree 2014-05-24 08:55:43 +02:00
Andreas Fabri 2ed7784521 trivial fix for master 2014-04-15 18:22:22 +02:00
Laurent Rineau 48f9c4c06c Fix AABB_tree use of set_shared_data
That function set_shared_data is never tested in CGAL, happened not to
be callable using its documented API. I do not understand why there is
an additional template parameter 'PrimtiveType'. That commit removes it.

(cherry picked from commit 99790a0d39864c3d2e72d18876f41603ab94a5a5)
2014-01-13 18:56:48 +01:00
Laurent Rineau cb6ce3f448 Fix a typo: missing space 2014-01-10 16:44:33 +01:00
Sébastien Loriot ee3ce8985f fix the way the specialization of graph_traits are documentated 2013-12-03 12:03:00 +01:00
Andreas Fabri 5c454cec64 add missing includes 2013-09-13 12:43:01 +02:00
Sébastien Loriot f5f6b034a6 Merge branch 'AABB_tree-fix_graph_primitives-local'
This fixes the graph primitives that were only model of
AABBPrimitiveWithSharedData, and also remove the artificial compatibility
with deprecated primitives that are not needed since we want to make users
use the new method.

Successfully tested in CGAL-4.3-Ic-107
  One example on the platform i686_Linux-2.6_g++-4.1.2_CentOS-5.1-O3 indicates
  an error, but after checking it is a floating point computation threshold
  issue. The example expects an error to be below 1e-10 and it is 1.1e-10.
Approved by the interim release manager
2013-07-31 17:32:15 +02:00
Sébastien Loriot 5666173947 typos and missing static 2013-07-30 07:38:41 +02:00
Sébastien Loriot a5eb2fa0b4 missing backquote 2013-07-30 07:15:11 +02:00
Sébastien Loriot b6737e6b0f fix the graph primitive when they don't have shared data 2013-07-29 18:47:17 +02:00
Sébastien Loriot 0864336a66 remove compatibility with original polyhedron primitives
there is no need to maintain such an artificial compatibility, the old
primitives are still in CGAL.
2013-07-29 17:17:56 +02:00
Sébastien Loriot 29a64aca9c bugfix: OneHalfedgeGraphPerTree was not correctly forwarded 2013-07-29 10:18:02 +02:00
Sébastien Loriot 88f265be1c re-document OneFaceGraphPerTree 2013-07-29 10:16:27 +02:00
Sébastien Loriot ddda698034 inline the nested class Intersection_and_primitive_id in the documentation 2013-07-24 17:06:35 +02:00
Sébastien Loriot c2fc43a8df make doxygen picking the correct return type 2013-07-24 16:59:01 +02:00
Sébastien Loriot 79442d98ee doc typo 2013-07-24 16:43:07 +02:00
Sébastien Loriot 9c0808cad1 fix name of classes that do not respect CGAL naming conventions
AABB_HalfedgeGraph_segment_primitive -> AABB_halfedge_graph_segment_primitive
AABB_FaceGraph_triangle_primitive -> AABB_face_graph_triangle_primitive
2013-07-23 17:46:50 +02:00
Sébastien Loriot 2bf7690f57 rename template parameter cache_datum to CacheDatum
template parameter should be camel case
2013-07-22 14:52:16 +02:00
Sébastien Loriot f61c8acc07 fix warning in the documentation 2013-07-04 19:16:58 +02:00
Sébastien Loriot 6735255fd0 The vertex point property map can be external for non-CGAL graph implementation
This is a bugfix of the API
2013-07-03 12:51:09 +02:00
Sébastien Loriot 940cd2bf33 bugfix: use the traits data member otherwise the shared_data cannot be used 2013-06-27 20:55:16 +02:00
Sébastien Loriot 42dbc14ffe use class in the forward declaration too 2013-06-24 08:45:39 +02:00
Sébastien Loriot f6c016257d fix encoding problem in license header 2013-06-24 08:39:43 +02:00
Sébastien Loriot 45c61f0061 remove Id template parameter from graph primitives that cannot be changed 2013-06-21 17:51:27 +02:00
Sébastien Loriot baac01b0b7 add missing template keyword
detected by Apple clang
2013-06-21 09:42:56 +02:00
Sébastien Loriot df7daacddc fix constness issue 2013-06-20 10:35:44 +02:00
Sébastien Loriot d2bf82c8e5 document FaceGraph triangle primitive to be only for Polyhedron 2013-06-19 19:28:19 +02:00
Sébastien Loriot 9822a1a403 document operations for backward compatibility 2013-06-19 19:15:58 +02:00
Sébastien Loriot c64e8b00cf Revert "backward compatibility is ensured by the 2nd template parameter set to Tag_true"
This reverts commit ca32c286f6.
2013-06-19 19:07:56 +02:00
Sébastien Loriot 9934b020c6 fix the triangle FaceGraph primitive to work with Polyhedron 2013-06-19 18:02:05 +02:00
Sébastien Loriot ca32c286f6 backward compatibility is ensured by the 2nd template parameter set to Tag_true 2013-06-19 17:42:38 +02:00
Sébastien Loriot f395759b35 the segment and triangle primitive are now compatible with the former classes
even if they were not documented, they were used in examples
2013-06-19 16:55:29 +02:00
Sébastien Loriot caf3bdfac8 fix copy-paste error 2013-06-19 16:55:06 +02:00
Sébastien Loriot 876b2c6cfc add a default constructor to AABB_tree 2013-06-19 16:54:21 +02:00
Sébastien Loriot 0f42b2f33b AABB_segment_primitive and AABB_triangle_primitive model AABBPrimitive 2013-06-19 11:34:28 +02:00
Sébastien Loriot 0d3d71d482 fixes after updating the branch and the documentation 2013-06-19 10:55:05 +02:00
Sébastien Loriot 7cb2874da2 doxygen: fix documentation look 2013-06-19 10:40:41 +02:00
Sébastien Loriot 06fc6dc039 add the doxygen documentation corresponding to the doc_tex modifications 2013-06-18 19:55:20 +02:00
Sébastien Loriot 6144e5c45b copy-paste error: triangle should be segment! 2013-06-18 16:30:48 +02:00
Sébastien Loriot e74c1b1df8 move into AABB_tree sub-namespace 2013-06-18 14:14:24 +02:00
Sébastien Loriot 650f9b4295 Merge branch 'AABB_tree-one_primitive_per_object-sloriot-old' into AABB_tree-one_primitive_per_object-sloriot
Conflicts:
	.gitattributes
	AABB_tree/doc_tex/AABB_tree_ref/AABBGeomTraits.tex
	AABB_tree/doc_tex/AABB_tree_ref/AABBTraits.tex
	AABB_tree/dont_submit
	AABB_tree/include/CGAL/AABB_traits.h
	AABB_tree/include/CGAL/AABB_tree.h
	AABB_tree/include/CGAL/internal/AABB_tree/AABB_traversal_traits.h
	AABB_tree/test/AABB_tree/AABB_test_util.h
	AABB_tree/test/AABB_tree/aabb_correctness_triangle_test.cpp
	AABB_tree/test/AABB_tree/aabb_distance_edge_test.cpp
	AABB_tree/test/AABB_tree/aabb_distance_triangle_hint_test.cpp
	AABB_tree/test/AABB_tree/aabb_distance_triangle_test.cpp
	AABB_tree/test/AABB_tree/aabb_intersection_triangle_test.cpp
	Boolean_set_operations_2/examples/Boolean_set_operations_2/bezier_traits_adapter2.cpp
	Installation/cmake/modules/CGAL_Common.cmake
	Installation/cmake/modules/CGAL_CreateSingleSourceCGALProgram.cmake
	Installation/cmake/modules/CGAL_Macros.cmake
	Installation/cmake/modules/CGAL_SetupBoost.cmake
	Installation/cmake/modules/CGAL_SetupDependencies.cmake
	Installation/cmake/modules/CGAL_SetupGMP.cmake
	Installation/cmake/modules/CGAL_SetupGMPXX.cmake
	Installation/cmake/modules/CGAL_SetupLEDA.cmake
	Installation/cmake/modules/CGAL_SetupMPFI.cmake
	Installation/cmake/modules/CGAL_SetupNTL.cmake
	Installation/cmake/modules/CGAL_SetupRS.cmake
	Installation/cmake/modules/CGAL_UseMPFI.cmake
	Installation/cmake/modules/CGAL_UseNTL.cmake
	Installation/cmake/modules/CGAL_UseRS.cmake
	Installation/cmake/modules/CGAL_VersionUtils.cmake
	Interval_skip_list/examples/Interval_skip_list/isl_terrain.pts
	Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3_triangulation.cpp
	Maintenance/svn_server/hooks/Mail/Sender/CType/Ext.pm
	Point_set_processing_3/include/CGAL/property_map.h
	Principal_component_analysis/include/CGAL/linear_least_squares_fitting_cuboids_3.h
	Principal_component_analysis/include/CGAL/linear_least_squares_fitting_segments_3.h
	Principal_component_analysis/include/CGAL/linear_least_squares_fitting_tetrahedra_3.h
	Principal_component_analysis/test/Principal_component_analysis/linear_least_squares_fitting_segments_3.cpp
	Principal_component_analysis/test/Principal_component_analysis/linear_least_squares_fitting_spheres_3.cpp
	Scripts/developer_scripts/list_package_files.rb
	Scripts/developer_scripts/mirror_all_packages.rb
	Scripts/developer_scripts/mirror_package.rb
	Scripts/developer_scripts/mirror_package_files.rb
	Scripts/developer_scripts/remove_package_files_from_build_tree.rb
	Surface_mesh_parameterization/examples/Surface_mesh_parameterization/CMakeLists.txt
	Surface_reconstruction_points_3/demo/Surface_reconstruction_points_3/PS_demo_normal_estimation_plugin.cpp
	Surface_reconstruction_points_3/doc_tex/Surface_reconstruction_points_3/contouring.tex
	Surface_reconstruction_points_3/doc_tex/Surface_reconstruction_points_3/output.tex
2013-06-18 11:50:30 +02:00
Sébastien Loriot c09ec2beaa Merge branch 'Kernel-replace_object-pmoeller'
Successfully tested in CGAL-4.3-Ic-59
Approved by the release manager

Conflicts:
	Kernel_23/doc/Kernel_23/CGAL/intersections.h
	Kernel_23/doc_tex/Kernel_23_ref/intersection.tex
	Kernel_d/doc/Kernel_d/Kernel_d.txt
	STL_Extension/doc/STL_Extension/CGAL/iterator.h
2013-06-14 14:26:05 +02:00
Sébastien Loriot 7a7f9be240 incorrect simplification: empty() is not equivalent to size()>1 2013-06-03 15:29:41 +02:00
Sébastien Loriot 8bb442ae3b fix a memory leak in the destructor of AABB_tree
the primitive container was clear before deleting the nodes
(which was not done since the container was empty)

At the same time I made the delete of the KD-tree done only
if it was constructed
2013-06-03 08:29:40 +02:00
Sébastien Loriot 34362d2a0f update how Intersection_and_primitive_id get the type and update its doc
We use meta programming to remove the optional rather than relying on
Intersection_traits (since it depends on GeomTraits)
2013-05-23 12:31:42 +02:00
Sébastien Loriot 7e6a880aa4 update AABB_tree documentation 2013-05-23 10:56:42 +02:00
Sébastien Loriot 75ebdeaeeb update the replacement of Object_and_primitive_id ...
... to be a pair< variant<XXX>, Primitive_id > rather than
pair<optional<variant<XXX> >, Primitive_id >

The rational is that the optional around the variant here is not needed
since there is one around the pair.
2013-05-21 18:39:23 +02:00
Sébastien Loriot f97d6b8bd9 s/boost::result_of/cpp11::result_of/g 2013-03-14 10:38:13 +01:00
Sébastien Loriot d6905c61be Merge branch 'Kernel-replace_object-pmoeller-old' into Kernel-replace_object-pmoeller
Conflicts:
	AABB_tree/include/CGAL/AABB_tree.h
	Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h
	Intersections_3/include/CGAL/Intersections_3/intersection_3_1_impl.h
	Kernel_23/doc/Kernel_23/CGAL/intersections.h
	Kernel_23/doc/Kernel_23/Concepts/FunctionObjectConcepts.h
	STL_Extension/doc/STL_Extension/CGAL/iterator.h
2013-03-14 10:29:31 +01:00
Philipp Möller e17201c286 Remove superfluous styling 2013-01-25 11:24:12 +01:00
Laurent Rineau 34327e9688 Merge remote-tracking branch 'origin/AABB_tree-fix_documentation-lrineau' 2013-01-22 17:22:41 +01:00
Laurent Rineau 65750effb1 Improve the documentation of the class template AABB_tree
- Group the documented methods that were not.
- Document typedefs that are used in the methods declarations.
- Use \tparam when relevant.
- Fix a comment block that was prefixed with '    ///' or '\t\t///'
  depending on the lines. That one is particularily nasty because the
  difference between lines is invisible. But that was confusing Doxygen.
- plus minor fixes
2013-01-16 15:04:17 +01:00
Laurent Rineau 827a70e110 Fix crashes when the AABB tree contains only one primitive.
An extra test program has been added to test all functions of the API with
a singleton AABB tree.
2013-01-16 10:39:52 +01:00
Laurent Rineau fc3061c822 Bug fix: fix AABB_tree doc and code about preconditions !empty()
The AABB_tree code had several assertions checkinng that the tree was not
empty. Those preconditions were not documented. There was several places in
the code were it was not really required that the tree is not empty.

This patch rationalizes the preconditions: only the function `bbox()` and
the queries about distances or closest things now require that the tree is
not empty.
2013-01-15 17:19:11 +01:00
Sébastien Loriot 4b252e8cc2 add missing backticks 2013-01-08 17:50:28 +01:00
Sébastien Loriot 318c280932 less linking 2013-01-07 19:26:50 +01:00
Andreas Fabri d16be07906 polish AABB Tree 2012-12-27 20:36:04 +01:00
Philipp Möller 2c83dd01c8 AABB_tree now uses result_of 2012-12-07 18:00:46 +01:00
Andreas Fabri e0acf10424 doc_tex -> doxygen of the AABB Tree documentation 2012-12-05 14:37:56 +01:00
Philipp Möller d198458ca7 Merge branch 'origin-gsoc2011-boost_object-pmoeller' into Kernel-replace_object-pmoeller
Conflicts:
	.gitattributes
	AABB_tree/doc_tex/AABB_tree_ref/AABBGeomTraits.tex
	AABB_tree/doc_tex/AABB_tree_ref/AABBTraits.tex
	AABB_tree/doc_tex/AABB_tree_ref/AABB_traits.tex
	AABB_tree/include/CGAL/AABB_traits.h
	AABB_tree/include/CGAL/AABB_tree.h
	AABB_tree/test/AABB_tree/AABB_test_util.h
	Arrangement_on_surface_2/doc_tex/Arrangement_on_surface_2/arr_queries.tex
	Arrangement_on_surface_2/doc_tex/Arrangement_on_surface_2_ref/Arr_trapezoid_ric_point_location.tex
	Arrangement_on_surface_2/doc_tex/Arrangement_on_surface_2_ref/intro.tex
	Arrangement_on_surface_2/include/CGAL/Arr_batched_point_location.h
	Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_generator_base.h
	Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_random_generator.h
	Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_trapezoid_ric_pl_impl.h
	Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_walk_along_line_pl_impl.h
	Arrangement_on_surface_2/include/CGAL/Arr_trapezoid_ric_point_location.h
	Arrangement_on_surface_2/test/Arrangement_on_surface_2/point_location.cpp
	Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h
	Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_3.h
	Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_line_arc_3.h
	Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h
	Filtered_kernel/include/CGAL/Lazy.h
	Filtered_kernel/include/CGAL/Lazy_kernel.h
	Intersections_2/include/CGAL/Triangle_2_Iso_rectangle_2_intersection.h
	Intersections_2/test/Intersections_2/test_intersections_2.cpp
	Intersections_3/test/Intersections_3/test_intersections_3.cpp
	Kernel_23/doc_tex/Kernel_23_ref/intersection.tex
	Kernel_23/include/CGAL/Kernel/Type_mapper.h
	Kernel_d/doc_tex/Kernel_d_ref/Kernel.tex
2012-12-04 17:57:53 +01:00
Sébastien Loriot 533b9f07b3 BUG: typedef has moved 2012-11-28 12:05:02 +01:00
Sébastien Loriot 4ec9529581 Merge branch 'doxy-port-pmoeller'
Conflicts:
	.gitattributes
	Surface_reconstruction_points_3/include/CGAL/Poisson_reconstruction_function.h
	Surface_reconstruction_points_3/include/CGAL/Reconstruction_triangulation_3.h
	Surface_reconstruction_points_3/include/CGAL/k_nearest_neighbor.h
2012-11-27 10:05:41 +01:00
Andreas Fabri 625f9f6cd7 after git merge remotes/origin/hot-fixes-for-Git 2012-11-20 13:02:17 +01:00
Philipp Möller 8f19c3d595 Remove size_type from TraversalTraits.
There is no reason for TraversalTraits to know the size_type (or any
of the other typedefs) and removing it prevents an unnecessary
instantiation of AABB_tree and a funky include.
2012-10-23 14:56:26 +00:00
Sébastien Loriot fb244b47b4 remove empty destructor 2012-10-10 12:41:11 +00:00
Sébastien Loriot 9b44f4f7d8 AABB_tree is finished 2012-10-10 12:31:37 +00:00
Philipp Möller 37778547bf Fix example to point to paths similar to a flat layout 2012-10-01 18:02:44 +00:00
Philipp Möller 864aebe2e5 Merge next.
This commit also updates the respective mock-headers when the
corresponding .tex documentation has changed. This has been the case for:

AABB_tree/doc_tex/AABB_tree_ref/AABBGeomTraits.tex
AABB_tree/doc_tex/AABB_tree_ref/AABBTraits.tex
AABB_tree/doc_tex/AABB_tree_ref/AABB_traits.tex
Mesh_3/doc_tex/Mesh_3_ref/parameters_features.tex
Mesh_3/doc_tex/Mesh_3_ref/parameters_no_features.tex
Number_types/doc_tex/NumberTypeSupport_ref/Interval_nt.tex
Number_types/doc_tex/NumberTypeSupport_ref/Lazy_exact_nt.tex
Spatial_searching/doc_tex/Spatial_searching_ref/Search_traits_2.tex
Spatial_searching/doc_tex/Spatial_searching_ref/Search_traits_3.tex
Triangulation_2/doc_tex/Triangulation_2_ref/Constrained_Delaunay_triangulation_2.tex
2012-09-12 14:14:22 +00:00
Andreas Fabri 632d2c7b76 template parameter AT got replaced by AABBTraits 2012-09-04 11:45:35 +00:00
Philipp Möller e2b79eb9db Manually move AABB_tree here 2012-08-29 15:27:03 +00:00
Sébastien Loriot 8f22de68ce concept bugfix
* CODE+DOC: Bbox_3 is a nested type in CGAL's Kernel; the code uses Bbox_3
* DOC: Add Compute_squared_distance_3 in AABBGeomTraits as it is needed by AABBTraits
* DOC: remove Splitting_direction from AABBTraits as it is not used
* DOC: Squared_distance in AABBTraits is only used between two points
  (I guess the confusion from the fact that nearest_point use the other
   version but without using the AABBTraits model).
* CODE+DOC add the function to construct Squared_distance functor in AABBTraits + AABB_traits
  and use it instead of AABBTraits::Compute_squared_distance_3 which was not in the concept
* DOC: remove from AABB_traits types Ray_3, Line_3 and Segment_3 that are not required by AABBTraits
* CODE: The code was using AABBTraits::Point which is not in the concept. Use Point_3 instead
* CODE: reorder typedefs in AABB_traits to match concept order
2012-08-28 12:21:57 +00:00
Marc Glisse a758751485 Remove / comment out unused local typedefs. Fix one place where FT was used instead of RT (homogeneous coordinates, probably never compiled). 2012-07-28 06:21:06 +00:00
Sébastien Loriot 21283eab97 remove requirements of having get_reference_point and get_datum in the traits 2012-06-04 14:14:11 +00:00
Sébastien Loriot 567e637484 document previous changes
add new concept for primitive with shared data
rename Extra_data -> Shared_data
2012-06-01 15:24:17 +00:00
Sébastien Loriot f57fab0c0a *variadic version of insert, cstr and rebuild of AABB_tree
*the traits now correctly handle the storage of primitive data
*update primitives
2012-05-15 08:46:42 +00:00
Sébastien Loriot a1bdd02f36 The traits now has a base class that is used to access the reference_point
and datum of a primitive. The base class is the one that will store additional
data.
2012-05-14 17:22:07 +00:00
Sébastien Loriot dfc678846f update AABB_primitive to take into account the fact that the property maps
can be stored outside of the primitive
2012-05-14 16:10:00 +00:00