Commit Graph

130 Commits

Author SHA1 Message Date
Laurent Rineau 2d90c88b6a Fix warnings
```
Kernel_23/include/CGAL/Kernel/nearest_point_segment_3.h:86:26: warning: typedef ‘FT’ locally defined but not used [-Wunused-local-typedefs]
   typedef typename K::FT FT;
                          ^~
Kernel_23/include/CGAL/Kernel/nearest_point_triangle_3.h:176:26: warning: typedef ‘FT’ locally defined but not used [-Wunused-local-typedefs]
   typedef typename K::FT FT;
                          ^~
```
2016-10-10 18:22:11 +02:00
Sébastien Loriot a44e21b8eb use Kernel functor instead of free functions 2016-09-01 16:36:01 +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
Andreas Fabri 5c1a2bd835 Add global function scalar_product(Vector_2,Vector_2) 2016-07-07 14:42:57 +02:00
Andreas Fabri 6273a0a247 Add global function scalar_product(Vector_3,Vector_3) 2016-07-07 14:30:10 +02:00
Andreas Fabri 2613be3c1b Add specializations for Compare_distance_3 for points/segments 2016-04-13 12:35:00 +02:00
Sébastien Loriot 0230e979e2 Merge branch 'CGAL-use_leda-GF-OLD' into CGAL-use_leda-GF
Conflicts:
	Arrangement_on_surface_2/test/Arrangement_on_surface_2/construction_test_suite_generator.cpp
	Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_construction.cpp
	Documentation/doc/Installation.txt
	Kernel_23/include/CGAL/Exact_predicates_exact_constructions_kernel.h
2014-06-18 22:50:06 +02:00
Laurent Rineau 6500bd907f Add Angle_3(Vector_3, Vector_3)
...by similarity with Angle_2.
2014-05-21 12:18:49 +02:00
Laurent Rineau 191b01b13b Add Angle_3()(Point_3, Point_3, Point_3, Point_3) 2014-05-21 11:04:59 +02:00
Sébastien Loriot c8495dea58 add missing return type for Intersect_2 when using intersection API v1 2013-09-25 18:06:06 +02:00
Sébastien Loriot c67ba90514 Merge branch 'Kernel-replace_object-pmoeller-old' into Kernel-replace_object-pmoeller
Conflicts:
	Circular_kernel_2/include/CGAL/Circular_kernel_2/Circular_arc_2.h
	Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_circle_2.h
	Installation/changes.html
	Kernel_d/doc/Kernel_d/CGAL/intersections_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Center_of_sphere_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Compare_lexicographically_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Component_accessor_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Compute_coordinate_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Contained_in_affine_hull_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Contained_in_linear_hull_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Contained_in_simplex_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Equal_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Has_on_positive_side_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Intersect_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Less_coordinate_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Less_lexicographically_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Less_or_equal_lexicographically_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Lift_to_paraboloid_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Linear_base_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Linear_rank_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Linearly_independent_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Midpoint_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Orientation_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Oriented_side_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Orthogonal_vector_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Point_dimension_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Point_of_sphere_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Point_to_vector_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Project_along_d_axis_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Side_of_bounded_sphere_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Side_of_oriented_sphere_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Squared_distance_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Value_at_d.h
	Kernel_d/doc/Kernel_d/Concepts/Kernel--Vector_to_point_d.h
2013-05-23 13:13:08 +02:00
Sébastien Loriot a50888d25d replace the recommanded boost way to have variadic variant by a macro
This is usually not something I like but the type generated by
the recommanded approach is an internal obfuscated type while
the macro produces a variant<A, B, C> type
2013-03-22 11:36:26 +01:00
Andreas Fabri 18dc806094 qualify compare with CGAL:: to avoid Koenig lookup 2013-03-19 08:31:32 +01:00
Sébastien Loriot 91943b0df1 remove result_type from Intersect_2 to avoid having it defined in derived class
also fix the compilation loop in Intersect_2::operator()
2013-03-15 19:00:00 +01: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
Marc Glisse 5373cff1b3 Split some predicates into CGAL_Kernel_pred_RT. 2013-01-14 14:19:51 +01:00
Philipp Möller c5f3c7b4f4 Use angle-bracket includes 2012-12-14 18:19:57 +01:00
Philipp Möller a214d62bd6 Integrate boost::variant with Lazy kernels interaction
This requires changing the way Lazy_construction_XXX wrappers are
selected and some code to unpack variants.
2012-12-06 17:27:23 +01:00
Philipp Möller 8415eb6484 Upgrade type mapper to handle variantS and optionalS
Add the necessary specializations of Type_mapper_impl to do deep
inspection of boost::variant and boost::optional.
2012-12-06 17:27:23 +01:00
Philipp Möller 215ef53720 Intersection_2 fixup 2012-12-05 12:13:10 +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
Laurent Rineau 5ef5350f04 Fix headers of Kernel_23
Mostly missing #include, but I had to create a <CGAL/kernel_config.h> from
<CGAL/kernel_basic.h>, to reduce dependency problems.
2012-10-08 09:02:18 +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
Philipp Möller 542f5d9c51 Merged ^/branches/next here 2012-04-16 08:53:21 +00:00
Philipp Möller 659d2295d0 Added tests to verify the types returned by boost::result_of match the
real tests and ajusted the type of Construct_vertex_3 for Iso_cuboid_3
2011-12-13 15:13:07 +00:00
Philipp Möller 0e0a200646 * Using result_of instead of Qualified_result_of
* limited refactoring in the lazy kernel
* still bugs in circular_3
* still specialization problem with iso_rectangle
2011-11-23 17:52:38 +00:00
Philipp Möller 94affd589d Moved the Intersection_result concept into the functors and adapted code in the lazy kernel to that change. 2011-11-15 15:40:22 +00:00
Philipp Möller 9051768cea Introduced Intersection_results as a Kernel concept for use in public APIs in favor over Intersection_traits. 2011-11-15 13:41:14 +00:00
Philipp Möller 450f438518 IT shortcut not circumvents specifying a kernel making it an actual shortcut and nicer for exposure in APIs 2011-11-10 11:06:26 +00:00
Philipp Möller a6f4cb16ae Macro for versioning the intersections and support for both versions in the top level function. 2011-11-08 11:56:57 +00:00
Sébastien Loriot 91a5327fa8 change LGPLv2 -> LGPLv3 2011-10-10 13:48:25 +00:00
Sébastien Loriot dff6dda8b3 Remove from copyright holder
Freie Universitaet Berlin (Germany), Martin-Luther-University Halle-Wittenberg
(Germany) and RISC Linz (Austria) as they transfer the copyright to other
sites.
2011-09-21 19:46:31 +00:00
Philipp Möller 5b925d6f6e * Reworked Intersection_traits into a single traits, adjusted
intersections accordingly, turned on IT<....> as return type
* removed result_type from the intersection functors
2011-08-25 10:18:31 +00:00
Philipp Möller 2f9b36d618 * intersection and do_intersection now pick their appropriate
overloads automatically;

* a test for the availability of all calls has been added
2011-07-12 16:53:49 +00:00
Sébastien Loriot 78a8e36522 small features to add additional operator() to Angle_2.
This is a merge from the branch /branches/experimental-packages/More_robust_Triangulation_2-branch
2011-01-07 10:45:13 +00:00
Sébastien Loriot ace9c87934 revert dirty commit 60628 2011-01-07 10:37:54 +00:00
Sébastien Loriot 99dda59784 add operator() to Angle_2 functor (code,global function,doc,test).
That was submitted as small feature.
2011-01-07 10:04:06 +00:00
Laurent Rineau 5b22e449e0 Kernel::Compare_distance_[23] with three objects, similar to
compare_distance_to_point, but with any object types
2010-10-11 11:10:32 +00:00
Christian Helbling 837409ebdc adding compare_lexicographically for Point_2 and Point_3 to improve compatibility with Point_d 2010-09-20 12:30:45 +00:00
Sylvain Pion 9d9b178cb7 Optimize solve().
before : 22 +, 48 *, 3 /
after  : 14 +, 24 *, 3 /
It might even be slightly more stable numerically.
2010-08-27 21:27:07 +00:00
Laurent Rineau 351c3233be - Deprecate operator()(T1, T2, T3, T4) of Kernel::CompareSquaredDistance_[23]
and move it to Kernel::CompareDistance_[23].
- Add CGAL::compare_distance(T1, T2, T3, T4).

(Test suite OK.)
2010-08-03 14:22:25 +00:00
Laurent Rineau 665c0ea8c1 Kernel::Compare_Squared_distance_[23]::operator() has now the following
overloads:

  template <typename T1, typename T2> 
  Comparison_result 
  operator()(T1, T2, Kernel::FT);

and 

  template <typename T1, typename T2, typename T3, typename T4> 
  Comparison_result 
  operator()(T1, T2, T3, T4); // compare distances |t1, t2|^2 and |t3, t4|^2.

Before that revision, the types T_i were hardcoded to Kernel::Point_3
without any reason.

And Kernel::Compare_Squared_distance_2 and
Kernel::Compare_Squared_distance_3 now have the same implementation, and
almost the same documentation (but the set of admitted input types). The
implementations could even have been factorized.

(The Kernel_23 testsuite passes on Linux, as well as the doc_tex testsuite.)
2010-06-30 12:19:54 +00:00
Laurent Rineau a97730f073 Move Compare_squared_distance_[23] from Cartesian and Homogeneous to
Kernel_23: their implementation were identical.
2010-06-30 10:04:49 +00:00
Sébastien Loriot 2a1e9fe728 vertex function of triangle use Has_qrt
add specialization of Qualified_result_of for Iso_cuboid

(added because I needed to have const ref on triangle points)
2010-06-22 07:17:59 +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
Sébastien Loriot 86d9865f2e add operator() with one point to compare_squared_radius functor 2009-10-13 08:34:43 +00:00
Laurent Rineau 4a383b3197 In Compare_dihedral_angle_3, add the comparison between the dihedral angle
defined by four points (or three vectors), and a FT. The FT represents the
cosine of the angle.

The code passes the testsuite. Documentation coming...
2009-08-26 11:31:51 +00:00
Laurent Rineau a210c87658 Let's use v.squared_length() instead v*v. 2009-08-25 15:48:33 +00:00
Laurent Rineau 09c4682e0b Typo: s/cosinus/cosine/.
(Thanks to Sylvain for his review of my patch r51491.)
2009-08-25 15:26:08 +00:00