Commit Graph

469 Commits

Author SHA1 Message Date
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
Sébastien Loriot 21cf39655e reserve to speed up allocation 2012-05-14 12:07:34 +00:00
Sébastien Loriot 79affebe42 make the traversal and expand using the traits class
stored in the AABB_tree
2012-05-14 11:54:16 +00:00
Sébastien Loriot ce41bc6925 id() should be const with no ref 2012-05-11 12:14:21 +00:00
Sébastien Loriot 6c2ef90a21 remove default constructor 2012-05-10 16:41:23 +00:00
Sébastien Loriot 8a3d8e1d01 rename cache_primitive -> cache_datum 2012-05-10 16:18:33 +00:00
Sébastien Loriot be1de01b22 *update AABB_primitive: the property maps must operate on Id!
*correct and complete implementation for HalfhedgeGraph models
2012-05-10 15:51:45 +00:00
Sébastien Loriot 388d53e0a3 correct enable_if 2012-05-10 08:19:38 +00:00
Sébastien Loriot 31d6ebe9bf *add primitive types for HalfedgeGraph and FaceGraph (wip)
*clean up triangle and segment primitive
2012-05-09 17:11:09 +00:00
Sébastien Loriot 6efd7f7954 * remove a template parameter to primitive caching
* add a generic class that has two property map as template parameter to define a aabb_tree primitive
2012-05-09 07:14:49 +00:00
Sébastien Loriot 6e72bfd1a7 add a point property map to access reference_point, with a default that uses datum() 2012-05-04 14:59:14 +00:00
Sébastien Loriot ed6ac1f4fd rename Property maps template parameter
set primitive caching to false by default
2012-05-04 14:49:27 +00:00
Sébastien Loriot 58156fb1e9 merge from next 2012-05-04 12:24:50 +00:00
Philipp Möller 17797b7271 Merge next into this branch. There have been conflicts in the
AABB_tree documentation, Intersections_3 and Arrangement_on_surface_2.

The merge also introduced a regression for a bug fixed in R68387 which
fixed a bug in Triangle_3 Segment_3 intersections. The relevant
testcase is in triangle_other_intersection_test.cpp.
2012-04-24 15:06:19 +00:00
Laurent Rineau b435af6afd Add svn:eol-style=native. Rewrite EOLs accordingly. 2012-02-15 13:03:09 +00:00
Laurent Rineau e0bc688832 Bug fix
<CGAL/internal/AABB_tree/nearest_point_segment_3.h> was doing stupid things
if there was a degenerate segment in the AABB tree.
2012-02-15 13:02:25 +00:00
Laurent Rineau 09d86739d0 Recode eol of two files: dos2unix, and add the eol-style=native svn property 2012-02-14 10:43:34 +00:00
Laurent Rineau 8f59fd9592 Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Philipp Möller 376b6309f4 Adapted AABB_tree to the new concept and documented the API changes 2011-11-15 17:13:09 +00:00
Philipp Möller bddbfcc8e4 Adapted AABB_tree for new intersections 2011-11-10 16:00:22 +00:00
Andreas Fabri 77b9fd79db Remove ETHZ copyright, as Camille's contribution during his postdoc was minor 2011-09-29 15:34:00 +00:00
Sébastien Loriot 5e0c09d8ce For backward compatibility reasons and according to this article:
http://gotw.ca/gotw/006.htm, accelerate_distance_queries and 
clear_search_tree should be const.

To guarantee the read-only thread-safety, a mutex for the construction
of the internal kd-tree is used.
At the same time, optimize accelerate_distance_queries() to not
redo computation if nothing has changed in the aabb_tree.

Note that clear_search_tree does not need to be thread-safe as it is private.
2011-09-09 08:31:38 +00:00
Sébastien Loriot c93ba3a215 remove temporary comment 2011-09-08 16:03:23 +00:00
Sébastien Loriot f8449dcec4 more efficient usage of mutex. The lock is only done
if the build need to be done. We have an extra "if (m_need_build)"
but otherwise we would need to use mutex::try_lock() which results
in more code and as efficient.
2011-09-08 15:54:44 +00:00
Sébastien Loriot a09f6640f5 remove non-const version of root_node added in r65337
for backward compatibility. It is not documented and not
used (in a non-const context).
2011-09-08 12:02:06 +00:00
Sébastien Loriot 795ab80486 use a mutex in const function root_node to protect the non const call to
build()

The class AABB_tree is now read-only thread-safe
2011-09-08 08:56:16 +00:00
Sébastien Loriot eed2074f7f Fix constness issues in AABB_tree
*remove mutable data members
  *accelerate_distance_queries is not const
  *clear_search_tree is not const
  *root_node() const returns a const Node*
  *add root_note() non-const version
  *update documentation of AABB_tree class. function constness was not documented
  *update changes.html
2011-09-07 09:55:59 +00:00
Sébastien Loriot 578d41a962 deprecate AABB_polyhedron_*_primitive
add triangle and segment property_map from polyhedron simplices
update examples to use these property maps with modified primitive classes.
2011-07-25 06:22:05 +00:00
Sébastien Loriot 7a0b2326e1 add property_map as template parameter of segment and triangle primitive
and add a template parameter to enable or disable the caching of the
or object inside the primitive.

Pb to handle: in case the object is not cached, point() might be
expansive
2011-07-20 21:59:14 +00:00
Laurent Rineau 72f323a5dd The bbox() of AABB_tree can return a const reference. 2011-04-07 12:54:35 +00:00
Laurent Rineau 6f390c482e Add a missing #include of OpenGL headers. 2011-01-10 16:26:44 +00:00
Sébastien Loriot 12e8540bbe merge from candidate branch. 2011-01-10 10:46:16 +00:00
Laurent Rineau 8b08eb2b5b Fix -pedantic error. 2010-09-28 21:23:13 +00:00
Sébastien Loriot 1daecf3943 move BBox vs {sphere,plane,triangle} do_intersect from AABB_tree to Intersections_3,
and update accordingly include directives. Update testsuite

remove unneed CMakeLists.txt from AABBtree testsuite

Remove Triangle_3_Plane_3 intersection from AABB_tree (I define it in Intersections_3 some days ago, thus a conflict)
2010-09-01 08:49:24 +00:00
Sébastien Loriot 4aa953888f all polyhedron primitives to be constructed from non compact container iterators 2010-08-31 13:45:38 +00:00
Stéphane Tayeb 813d775fba Add missing #include. 2010-07-08 07:35:44 +00:00
Andreas Fabri 54f913051c int -> size_type/std::size_t 2010-06-21 15:38:26 +00:00
Sébastien Loriot 52317dd49f add python script (replace_CGAL_NAMESPACE.py) to replace CGAL_BEGIN_NAMESPACE and CGAL_END_NAMESPACE
by namespace CGAL { and } //namespace CGAL. in all .h and .cpp files
in a directory.
Apply it to all packages in the trunk
Remove macro definition from the config.h file.
2010-06-09 07:37:13 +00:00
Stéphane Tayeb afdd14bb62 Fix compilation on x86-64_Linux-2.6_llvm-clang-with-g++-4.4.1_F11: use fully qualified name for cross_product call. 2010-05-20 07:02:05 +00:00
Laurent Rineau a65e49133b Fix: in <CGAL/AABB_intersections.h>,
Kernel::Do_intersect_3()(Triangle_3, Bbox_3) was available
but not Kernel::Do_intersect_3()(Bbox_3, Triangle_3).
2010-05-05 14:54:49 +00:00
Sébastien Loriot 15557626cc remove not needed break instructions (avoid warning with g++ (Debian 4.3.4-6) 4.3.4) 2010-03-31 08:45:58 +00:00
Andreas Fabri 0758e61952 fix for the case that one of the triangle vertices is on the plane 2010-02-25 11:55:20 +00:00
Sylvain Pion 85dc12f2a7 Remove empty lines at beginning and end of files
(apply Scripts/developer_scripts/remove_empty_lines.pl).
2010-02-01 12:55:28 +00:00
Stéphane Tayeb 90288a058b Move do_intersect(Bbox,Bbox/Line/Ray/Seg) and intersection(Triangle,Line/Ray/Seg) to Intersections_3. 2009-12-18 15:13:30 +00:00
Stéphane Tayeb e476966856 Change License to LGPL. Fix Copyrights. 2009-12-18 14:35:34 +00:00
Stéphane Tayeb cab2982563 Implement Sylvain's comments:
+ add missing includes
  + avoid object copies
  + replace CGAL_kernel_assertion(false) by CGAL_error()
  + use is() function of CGAL::Object
  + improve style (remove spaces, white lines...)
2009-12-16 17:03:17 +00:00
Stéphane Tayeb ab503ac11f * Fix triangle_other test
* Fix Triangle_3_Ray_3_intersection.h header
2009-11-24 13:07:45 +00:00
Stéphane Tayeb 7ff50b95a0 * Rename test files which have to be moved to kernel
* Fix header protection names
2009-11-20 17:02:39 +00:00
Stéphane Tayeb 836d042180 Fix previous commit (thanks to compiler cache...). 2009-11-20 16:57:44 +00:00
Stéphane Tayeb 6550224744 Move and rename files (prepares integration into kernel). 2009-11-20 16:38:02 +00:00
Stéphane Tayeb 854fef2f8a * Update (triangle, seg/line/ray) intersection computation
* Enrich (triangle, seg/line/ray) test suite
* Minor formatting change in Bbox_3_line_3_do_intersect.h
2009-11-20 13:09:08 +00:00
Stéphane Tayeb 4f50028d7b Minor formatting clean. 2009-11-18 08:51:51 +00:00
Stéphane Tayeb c095f38e66 Rewrite (seg/ray/line - bbox) predicates without divisions. 2009-11-17 16:41:57 +00:00
Stéphane Tayeb 3f1a416bc0 Fix syntax error. 2009-11-16 12:48:11 +00:00
Stéphane Tayeb f7a63d0ec5 revert r52901-52902 (moving predicate from AABB_tree to Intersections_3) 2009-11-10 16:58:02 +00:00
Stéphane Tayeb b869d0956d Move intersection predicates and constructions from AABB_tree to Intersection_3. 2009-11-09 12:10:23 +00:00
Pierre Alliez ca4f73b860 fix #ifdefs 2009-10-29 10:42:53 +00:00
Laurent Rineau 83912b2952 Massive fix of svn:keywords properties, and $URL$ keyword. 2009-10-20 08:59:26 +00:00
Laurent Rineau 7bf0990dbb Minor fix: the correct way to construct a FT from 0 or 1, that is
documented to work with all FT, is FT(0)/FT(1), and not
(FT)(0.0)/(FT)(1.0). The concept Field refines FromIntConstructible:
See:
  http://www.cgal.org/Manual/last/doc_html/cgal_manual/Algebraic_foundations_ref/Concept_Field.html
and follow the "refines" chain until:
  http://www.cgal.org/Manual/last/doc_html/cgal_manual/Algebraic_foundations_ref/Concept_FromIntConstructible.html
2009-10-20 07:34:13 +00:00
Stéphane Tayeb 1e4358dc07 Fix warning. 2009-10-20 07:03:58 +00:00
Stéphane Tayeb 99a5c3160a Fix compilation error. 2009-10-15 06:40:45 +00:00
Stéphane Tayeb aa3e601755 Computation and code factorization (to avoid early roundings). 2009-10-14 08:22:24 +00:00
Stéphane Tayeb cfa88ab257 * Fix Triangle_3_line_3_intersection.h (implementation inspired from Triangle_3_line_3_do_intersect.h)
* Add test for triangle_3/line_3 intersection (should be enriched maybe) in file aabb_intersection.cpp
* Test exact_exact kernel in aabb_do_intersect_test.cpp
2009-10-09 14:09:14 +00:00
Stéphane Tayeb 9ba530384f * Fix Triangle_3_segment_3_intersection.h (implementation inspired from Triangle_3_segment_3_do_intersect.h)
* Add test for triangle_3 segment_3 intersection (should be enriched maybe)
* Test more kernels in aabb_do_intersect_test.cpp
2009-10-05 09:41:47 +00:00
Stéphane Tayeb 5f464aec46 Merge [r51090:51960]
From branches/CGAL-3.5-branch/AABB_tree to trunk/AABB_tree

r51953 | stayeb | 2009-09-16 13:17:12 +0200 (Wed, 16 Sep 2009) | 1 line
* Fix AABB_tree missing default ctor.

r51936 | stayeb | 2009-09-14 19:37:18 +0200 (Mon, 14 Sep 2009) | 2 lines
* Fix ray_bbox & line_bbox do_intersect predicates for filtered kernels
* add a small test for do_intersect(seg/ray/line, bbox) queries

r51932 | lrineau | 2009-09-14 15:32:24 +0200 (Mon, 14 Sep 2009) | 3 lines
* Fix predicates of <CGAL/AABB_intersection.h>, so that they are correctly filtered when called from the global function template CGAL::do_intersect

r51931 | stayeb | 2009-09-14 15:22:12 +0200 (Mon, 14 Sep 2009) | 1 line
* Fix bbox_3_segment_3 intersection for filtered kernels.

r51868 | lrineau | 2009-09-07 17:01:48 +0200 (Mon, 07 Sep 2009) | 2 lines
* Fix the non-filtering of BBox_3-Segment_3 intersection.
2009-09-18 12:49:03 +00:00
Pierre Alliez 63d3ba8f0d default constructor. 2009-09-15 10:36:40 +00:00
Pierre Alliez bfaee9aae4 adds default constructor. 2009-09-15 10:01:58 +00:00
Sylvain Pion 8573fe26ce Rename CGALi to internal. 2009-08-24 17:10:04 +00:00
Laurent Rineau ccd0fcc73f Merged revisions 51083 via svnmerge from
svn+ssh://scm.gforge.inria.fr/svn/cgal/branches/CGAL-3.5-branch

........
  r51083 | stayeb | 2009-08-06 09:48:42 +0200 (Thu, 06 Aug 2009) | 1 line
  
  Minor fix: include CGAL/intersections.h instead of CGAL/intersection_3.h.
........
2009-08-18 14:13:54 +00:00
Pierre Alliez d987180d75 fix copyrights. 2009-08-07 18:57:08 +00:00
Sylvain Pion 7e0db3191b Fix & homogenize Copyright header lines :
- Copyrigth -> Copyright
- ETHZ (Suisse) -> ETH Zurich (Switzerland)
2009-08-07 11:18:32 +00:00
Laurent Rineau f81561f3d4 Add copyright and license header 2009-07-31 21:06:50 +00:00
Laurent Rineau 968b31d684 Move the non-documented AABB_polyhedral_oracle.h to the polyhedron demo. 2009-07-22 14:06:10 +00:00
Stéphane Tayeb 0a784e8d1f Fix AABB_polyhedral_oracle (needed by Polyhedron_demo). 2009-07-22 08:18:13 +00:00
Pierre Alliez 8baebaeded some cleaning 2009-07-16 12:39:08 +00:00
Camille Wormser 6261018859 memory check 2009-07-16 12:25:46 +00:00
Pierre Alliez eb645bed0c AABB tree: fix quibble in comment. 2009-07-16 06:11:29 +00:00
Pierre Alliez cd199a7504 AABB tree: added one message to track the last remaining error in the test suite. 2009-07-16 06:07:41 +00:00
Stéphane Tayeb b92c3902f5 Fix a bug for demo benchmark. KD-Tree is now build right after its construction (instead of at the first query). 2009-07-09 11:46:28 +00:00
Pierre Alliez 72ef5cb900 AABB tree: intersection benchmark code made much shorter and more accurate (the random generation of queries is made once for all before benchmarking, hence the timings are more precise). 2009-07-08 22:27:55 +00:00
Laurent Rineau 0d7cc0b6b5 Fix: AABBTraits must not require size_type. The size_type is an
implementation detail of the class template AABB_tree, and traits classes
cannot know that type.
2009-07-08 16:16:15 +00:00
Pierre Alliez 1b26c8d562 AABB tree: fix one table line of the benchmark. 2009-07-08 12:17:31 +00:00
Pierre Alliez de47ee0a27 AABB tree: do_intersect now calls the First_primitive traversal traits (much faster)
performance section updated
2009-07-08 12:02:28 +00:00
Pierre Alliez 7b0f96ca06 aabb tree: attempt to fix warning:
message is Triangle_3_segment_3_intersection.h:93: warning: control reaches end of non-void function
laurent (R) - can you take a look at it?
2009-07-06 19:40:54 +00:00
Pierre Alliez 9772610e5f AABB tree: benchmark across kernels and updated intersection tests (more accurate).
need to fix compilation issue with EPIC kernel (I guess one include missing)
2009-07-05 13:58:00 +00:00