Commit Graph

182 Commits

Author SHA1 Message Date
Laurent Rineau 3e4b177506 Merge pull request #4116 from MaelRL/Kernel_23-Generalize_ray_point_method-GF
Change ray_23 and line_23's point(int) function to point(FT)
2019-08-19 12:54:38 +02:00
Mael Rouxel-Labbé 6c8a8f347d Change ray/line.point(int --> FT)
There is no real requirement on it being an 'int', except some symmetry with
the segment.
2019-07-26 15:59:52 +02:00
Andreas Fabri 4581f1b7a8 Morte replacements 2019-06-05 08:39:55 +02:00
Laurent Rineau 90782d4b7f Revert the merge of two pull-requests that target CGAL-4.14-branch
- Revert "Merge pull request #3857 from MaelRL/CGAL-Fix_duplicate_non_manifold_vertices-GF"
- Revert "Merge pull request #3898 from lrineau/Mesh_3-stop_during_protection-lrineau"
2019-05-14 17:50:45 +02:00
Andreas Fabri e60f69e669 Compute sqrt only once 2019-04-11 09:48:32 +02:00
Andreas Fabri 42af962bc2 Add overload for two vectors 2019-04-11 09:48:32 +02:00
Andreas Fabri 0e75cea23c Simplify the code 2019-04-11 09:48:30 +02:00
Andreas Fabri d62d88196e Add a function to compute the angle between three 3D points 2019-04-11 09:48:30 +02:00
Sébastien Loriot 1d908c1c0b remove code for CGAL_INTERSECTION_VERSION 1 2019-03-29 13:28:32 +01:00
Sébastien Loriot 0685423ae8 update from cgal/master 2018-11-02 11:32:31 +01:00
Sébastien Loriot 0202bc879e add an extra operator for plane-line(pt,pt) 2018-06-04 17:21:01 +02:00
Andreas Fabri 0d3ac75518 Introduce namespace Intersections 2018-05-04 08:57:56 +02:00
Maxime Gimeno 67ca3f9dcb fixes 2018-04-27 09:18:48 +02:00
Maxime Gimeno b20d0e0908 Optimization 2018-04-26 10:02:43 +02:00
Maxime Gimeno bcfb7afead Add an operator for a Ray_3 to ConstructProjectedpoint_3 2018-04-25 15:32:36 +02:00
Sébastien Loriot 0698f79aff add SPDX identifier for files under the LGPL-3+ license 2017-11-12 10:17:50 +01:00
Laurent Rineau 9076ecaddf Add K::Has_on_bounded_side_3(Sphere_3, Sphere_3, Point_3, Point_3) 2017-10-13 15:57:02 +02:00
Mael Rouxel-Labbé 11786a7b90 Fixed minor mistakes from a rebase 2017-06-28 10:16:23 +02:00
Andreas Fabri b949b667ab Use Construct_point_3 inside functor 2017-06-28 10:14:35 +02:00
Sébastien Loriot ae900ae297 force the usage of CGAL compare function
this fixes an issue detected whenusing LEDA without GMP
2017-05-22 09:43:36 +02:00
Andreas Fabri 432a40df72 improve implementation as suggested by @mglisse 2017-05-12 09:49:41 +02:00
Andreas Fabri 9ccc9c1178 Fix compare_slope() 2017-05-12 09:49:39 +02:00
Andreas Fabri 061a9b1ecd Kernel:23 Add Compare_slope_3 2017-05-12 09:48:21 +02:00
Mael Rouxel-Labbé c79e2d4b36 Added Compute_power_product_2 to the 2D kernel predicates
doc + test included
2017-04-21 13:07:40 +02:00
Mael Rouxel-Labbé bb086ff739 Added power_side_of_bounded_power_circle_2 to the 2D kernel predicates
A partial implementation was deleted from the Alpha_shapes_2 package without
moving the functions to the kernel...
This implementation adds the missing overloads (4, 3, and 2 points)

Test + doc included
2017-04-21 11:37:27 +02:00
Mael Rouxel-Labbé a751464ab6 Minor fixes to weighted functors (doc + cleaning) 2017-04-21 11:31:13 +02:00
Mael Rouxel-Labbé 232c38cee1 Removed documentation of degenerate cases of power_side_of_oriented_* predicates
See Issue https://github.com/CGAL/cgal/issues/2067
2017-04-20 12:54:39 +02:00
Mael Rouxel-Labbé 1223f5f5a0 Improved readability of weighted point-related functors (no real changes)
Fixed indentation, trailing whitespace, english, etc.
2017-04-19 11:40:58 +02:00
Mael Rouxel-Labbé dd2e7f3a0c Made compute_squared_smallest_orthogonal_circle_2() a kernel functor
and documented, tested, etc. it

Previously in Alpha_shape_2
2017-04-19 11:06:14 +02:00
Mael Rouxel-Labbé 365cfd0566 Fixed predicate Power_side_of_oriented_power_sphere_3
The Homogeneous kernel doesn't know how to run that predicate
for 3 or 4 arguments so it must be defined in Kernel/function_objects until
those operators are added
2017-04-06 21:57:21 +02:00
Sébastien Loriot 9ae7b37845 Merge pull request #1745 from sloriot/Polyhedra_corefinement-enhancements-sloriot
Add corefinement operations in PMP
2017-01-12 12:05:18 +01:00
Sébastien Loriot cba8456715 add constructions for the intersection point of a plane by a line and of 2 lines
this is undocumented and allow to have a lazy node for this construction
2017-01-02 19:23:48 +01:00
Laurent Rineau 7e9d909602 Fix comments with wrong statements 2016-12-30 16:44:08 +01:00
Andreas Fabri 226da32579 std::max() does only take two arguments 2016-12-21 09:42:33 +01:00
Maxime Gimeno b0dd7d25cb Add Compute_L_infinity_distance_3. 2016-12-21 09:41:33 +01:00
Andreas Fabri eb7e38493c Add the function FT l_infinity_distance(Point_2, Point_2)
as well as the corresponding functor

This is a function where the implementation is in the file
Kernel_23/include/CGAL/Kernel/function_objects.h

When the implementation is different for Cartesia and Homogeneous coordinates
the code should go into the function_objects.h files
in the packages Cartesian_kernel and Homogeneous_kernel
2016-12-21 09:40:53 +01:00
Laurent Rineau bbf430b0b1 Merge pull request #585 from afabri/Kernel-Weighted_point-GF
Introduce Kernel::Weighted_point_3 together with functors
2016-12-20 19:52:02 +01:00
Laurent Rineau 2f4a32f089 fix Construct_projected_point_3 with degenerate triangles
`Construct_projected_point_3::operator()(Point_3, Triangle_3)` now
checks if the triangle is degenerated (actually it checks if its
supporting plane is degenerated). If it is, it falls back to
`operator()(Point_3, Segment_3)` with the segment that is equivalent to
the triangle. When using non-exact floating point numbers, it chooses
the edge of the triangle that has the biggest l-infinity length.
2016-12-02 13:14:14 +01:00
Jane Tournois e633fb0a3b add missing "-" needed for conversion from Sign to Bounded_side 2016-11-24 16:53:55 +01:00
Jane Tournois 6af2db1b91 Use Power_side_of_bounded_power_sphere instead of Side_of_bounded_orthogonal_sphere
both functors made the same computation, up the sign of the result.

The return type now is CGAL::Bounded_side, which makes things easier
 to understand and use
2016-11-03 14:55:39 +01:00
Jane Tournois f3a021a195 rename in_smallest_orthogonal_sphereC3 to power_side_of_bounded_power_sphereC3 2016-11-03 14:53:54 +01:00
Andreas Fabri ad9d2c369c Rename tests following Olivier's recommendations 2016-11-03 14:53:54 +01:00
Andreas Fabri f488b9baf9 Changes after Laurent's review 2016-11-03 14:53:15 +01:00
Andreas Fabri dcf5f32dc0 Improve the doc 2016-11-03 13:07:50 +01:00
Andreas Fabri ea50fb811d Cleanup. The 2D and 3D triangulation testsuite pass 2016-11-03 13:07:50 +01:00
Andreas Fabri c2ee0ae9a8 Use Quotient<RT> as weight in the H2 power_tests 2016-11-03 13:07:50 +01:00
Andreas Fabri 9dde08c414 WIP 2016-11-03 13:07:50 +01:00
Andreas Fabri 9e94ee6178 Change the Power_test 2016-11-03 13:07:17 +01:00
Andreas Fabri 1375cd5c0a Rename Compute_critical_squared_radius_3 to Compute_power_distance_to_power_sphere_3 2016-11-03 13:07:17 +01:00
Andreas Fabri 34eb29cac5 Documentation 2016-11-03 13:07:17 +01:00
Andreas Fabri aee3b86b1f cleanup 2016-11-03 13:06:42 +01:00
Andreas Fabri af6c2e185e remove Compute_point_3 2016-11-03 13:06:02 +01:00
Andreas Fabri 6a8f77c5ff Added CGAL::Weighted_point_3<K> and the predicates and constructions of the Regular Traits to the kernel
- The Regular 3 testsuite passes
- only 3D
- not documented
2016-11-03 13:04:43 +01:00
Laurent Rineau c6cf01c7f6 Merge pull request #1562 from afabri/Kernel_Compute_dihedral_angle-GF
Add doc of functor class and concept corresponding to dihedral_angle()
2016-10-20 09:48:05 +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 423242be31 dihedral_angle() -> approximate_dihedral_angle() 2016-10-11 15:35:20 +02:00
Sébastien Loriot 5c02296eb9 move internal code 2016-10-11 11:31:19 +02:00
Andreas Fabri c58582b5ec Add global function dihedral_angle() 2016-09-30 15:23:15 +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
Sébastien Loriot c8495dea58 add missing return type for Intersect_2 when using intersection API v1 2013-09-25 18:06:06 +02: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
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 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
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
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
Laurent Rineau 146aa66bca Remove commented code. 2009-08-25 14:58:19 +00:00
Laurent Rineau 22798366ad Add a new predicate in the Kernel: Compare_dihedral_angle_3. 2009-08-25 14:48:41 +00:00
Sylvain Pion 8573fe26ce Rename CGALi to internal. 2009-08-24 17:10:04 +00:00
Laurent Rineau b9fcb4ff62 Revert that change:
-----------------------------------------------------------------
   | New Revision: 51399
   | Author: lrineau
   | Date: 2009-08-21 16:01:46 +0200 (Fri, 21 Aug 2009)
   |  
   | Log message:
   |  
   | Add a CGAL_kernel_assertion_code, in
   | Construct_circle_2::operator()(Point_3, Point_2, Point_2), to avoid some
   | unneeded calculus to be performed when NDEBUG is defined.
   -----------------------------------------------------------------
2009-08-24 09:52:55 +00:00
Laurent Rineau b0b7c5b629 Add a CGAL_kernel_assertion_code, in
Construct_circle_2::operator()(Point_3, Point_2, Point_2), to avoid some
unneeded calculus to be performed when NDEBUG is defined.
2009-08-21 14:01:46 +00:00
Andreas Fabri 9b6425f55c Forward argument 'orientation' 2008-12-08 14:47:16 +00:00
Pedro Machado Manhaes de Castro 8960a3dd58 Some forgotten operators on functors for Circle_3 2008-10-02 16:31:35 +00:00
Pedro Machado Manhaes de Castro 642a419079 Is_degenerate_3 functor for Circle_3 2008-09-16 12:48:45 +00:00
Pedro Machado Manhaes de Castro 0ce9d35d32 Construct_supporting_plane => Construct_plane, Construct_diametral_sphere => Construct_sphere 2008-09-16 12:45:08 +00:00
Sylvain Pion 4c79d1d5cf Rename Bool_type to Boolean. 2008-08-26 13:40:26 +00:00
Sylvain Pion 0a76cd42f7 Remove the deprecated linear kernel functors Construct_supporting_line_2 and
Construct_supporting_line_3.  (they were deprecated in 2004).
2008-07-28 16:07:28 +00:00
Michael Hoffmann 8dd4cd38ca Remove functional_base include. 2008-07-23 14:50:58 +00:00
Sylvain Pion 79864c0c8e Remove Arity_tag. 2008-07-22 12:29:01 +00:00
Pedro Machado Manhaes de Castro e8663963f2 Constructing a Circle_3 passing through three points p, q, r 2008-07-17 14:08:50 +00:00
Sylvain Pion 173ef7c590 Allow propagation of Uncertain-ty in more places, to reduce the number of exceptions.
- Use K::Bool_type, K::Orientation... instead of bool, CGAL::Orientation...
- More functions around Uncertain<> : make_certain(), extract_singleton(),
                                      possible conversions tightenning.

Many conversions still remain, e.g. for switch and if statements, &&, ||...
2008-07-16 13:45:13 +00:00