Laurent Rineau
f2391a30a5
Merge pull request #2562 from afabri/Filtered_kernel-Do_intersect_2-GF
...
Add Static Filters for the Exact Construction Kernel
2017-12-19 16:29:53 +01:00
Sébastien Loriot
0698f79aff
add SPDX identifier for files under the LGPL-3+ license
2017-11-12 10:17:50 +01:00
Andreas Fabri
2f95a05e1c
make filtering with static filter generic
2017-10-27 15:27:20 +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
Andreas Fabri
5573e5d15e
Is_degenerate_{2,3} and Collinear_{2,3} are division free
2017-07-11 20:31:28 +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é
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
Mael Rouxel-Labbé
12f5cf82ee
Fixed cubic equation solver
2017-06-22 16:14:55 +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
Sébastien Loriot
05fcab830e
Add deprecation message
2017-05-15 10:09:19 +02:00
Sébastien Loriot
ed704ea0f3
protect deprecated code with deprecation macro
2017-05-12 10:02:08 +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
5f8bc52082
Add angle(Point_3, Point_3,Point_3,Vector_3)
2017-05-12 09:48:23 +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é
2ae17980fe
Added weighted point-related functions to global functions
2017-04-07 03:44:59 +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
Andreas Fabri
32e3d1bebd
Division free functors may use Mpzf
2017-03-01 17:16:31 +01: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
306323d45c
make doc and doc consistent
...
- add "model of Concept" as much as possible in the modified classes/concepts
- fix some links
- update package description of Kernel_23
2016-11-03 14:55:39 +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
842aad6e76
Fix which predicates can be done without division
2016-11-03 13:10:27 +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
514765a784
Documentation
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
cf1e513c83
cleanup
2016-11-03 13:04:43 +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
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
Andreas Fabri
c58582b5ec
Add global function dihedral_angle()
2016-09-30 15:23:15 +02:00
Laurent Rineau
1aefb3b0f3
include <CGAL/config.h>, not <CGAL/basic.h>
2016-09-30 15:23:14 +02:00
Andreas Fabri
c12f285ee4
Dispatch the files in Kernel_23, Cartesian, Homogeneous
2016-09-22 08:38:53 +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
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
a89ffb7be3
Add squared radius for a point to make kernels model of the alpha shape traits class
2009-07-07 10:33:38 +00:00
Andreas Fabri
9b6425f55c
Forward argument 'orientation'
2008-12-08 14:47:16 +00:00
Andreas Fabri
bde0aee592
In deep derivation hierarchies VC8 has problems when we use the same name for a template parameter at several hierarchy levels, so we rename it here
2008-10-21 12:29:38 +00:00
Pedro Machado Manhaes de Castro
a65aceddf2
radical line as well
2008-10-20 14:44:37 +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
7d5dda0438
Propagate Uncertain-ty.
2008-08-22 15:22:00 +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
Sylvain Pion
32a9d86ec2
Fix header inclusion order problem by #including <CGAL/config.h> instead of <CGAL/basic.h>.
...
Really: <CGAL/basic.h> should go away!
2008-07-12 21:09:38 +00:00
Pedro Machado Manhaes de Castro
4527058121
Fixing Lazy for Circle_3
2008-06-26 14:26:49 +00:00
Pedro Machado Manhaes de Castro
69c2b4d186
add radical_plane
2008-06-04 09:04:45 +00:00
Pedro Machado Manhaes de Castro
5cf2eb63cd
fixing the 03/06/2008 red mosaic
2008-06-04 07:52:01 +00:00
Pedro Machado Manhaes de Castro
fc45f43179
Adding Circle_3 object to the Kernel.
2008-06-03 12:17:16 +00:00
Andreas Fabri
b997c33952
Added compare_squared_radius, its functor, doc, testsuite
2008-05-28 14:25:42 +00:00
Sylvain Pion
0ba9bfbca4
Move that preliminary stuff to internal CGAL::Access namespace.
2008-04-17 14:43:41 +00:00
Sylvain Pion
7eeb87cf71
Add a Dimension typedef to the d-dim kernels.
...
Swap the order of the arguments of the Point<2, K> so that there can be a default for the dimension.
2008-04-17 14:02:06 +00:00
Sylvain Pion
bbd100121b
Add barycenter computation.
2008-04-15 15:13:17 +00:00
Sylvain Pion
4477a9d986
Updates after the new d-dim stuff changes.
2008-04-15 13:53:58 +00:00
Sylvain Pion
02e543a294
Add Dimension<T, K> whose nested "value" is the dimension of the ambiant
...
space. A special constant CGAL::Dynamic_dimension (equal to INT_MAX)
indicates the case where the dimension is only known at run time.
2008-04-11 21:03:22 +00:00
Sylvain Pion
ef71559164
Remove the Kernel Concept Archetypes.
2008-04-11 19:26:21 +00:00
Sylvain Pion
4873e53de2
Move:
...
<CGAL/Kernel/Cartesian_coordinate_iterator_2.h>
<CGAL/Kernel/Cartesian_coordinate_iterator_3.h>
To:
<CGAL/Filtered_kernel/Cartesian_coordinate_iterator_2.h>
<CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h>
2008-04-09 18:06:00 +00:00
Sylvain Pion
11bbf3e2de
Vector_2 and Vector_3 now also provide a Cartesian_const_iterator.
2008-04-09 17:58:57 +00:00
Sylvain Pion
1d8779b171
Rename the following functions:
...
det2x2_by_formula
det3x3_by_formula
det4x4_by_formula
det5x5_by_formula
det6x6_by_formula
to:
determinant
How cute... a name independent of the dimension, and even readable !
2008-04-09 13:35:34 +00:00
Andreas Fabri
7f258ba048
Added functors to archetype kernel
2008-01-19 15:11:50 +00:00
Andreas Fabri
a322da0f0e
Added preconditions and made it more efficient
2008-01-18 13:42:39 +00:00
Andreas Fabri
e1f07a4bde
Added normal and unit_normal function ans functors
2008-01-18 12:56:56 +00:00
Sylvain Pion
b976aea1b6
Remove 2 workarounds which are not needed anymore by the latest SunPRO:
...
CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG
CGAL_CFG_DEDUCABLE_CONTEXT_BUG
2007-08-24 12:57:55 +00:00
Sylvain Pion
a90de08bf3
Remove obsolete config flag CGAL_CFG_MATCHING_BUG_4 and its dependency CGAL_WRAP.
2007-08-08 15:15:20 +00:00
Sylvain Pion
79eb2c8ffa
Remove unused parameters.
2007-04-17 22:09:34 +00:00
Sylvain Pion
bda89ba1d6
Use CGAL_CFG_DEDUCABLE_CONTEXT_BUG to partially (but most probably sufficiently)
...
work around SunCC bug.
2007-03-30 17:18:22 +00:00
Andreas Fabri
b0a58d5601
removed unused parameters
2007-03-17 09:51:49 +00:00
Andreas Fabri
49df0a4603
Removed template member function. It is not clear why it is needed and causes trouble for the Circular_kernel_3 testsuite for VC++
2007-02-01 16:18:38 +00:00
Sylvain Pion
70b3bee5af
Move 3D .bbox() to the functors to make Lazy_kernel pass, and enhance the test-suite to test .bbox()
2006-12-27 23:26:06 +00:00
Sylvain Pion
fbe285ca94
New predicates :
...
compare_squared_distance(Point_[23], Point_[23], FT), with
CompareSquaredDistance_[23] functors.
2006-10-24 05:24:31 +00:00
Andreas Fabri
1cdfe0a29b
Added a circle constructor with two points and bulge
2006-09-01 13:25:52 +00:00
Sylvain Pion
ed36e763c7
Second part of Return_base_tag changes.
2006-08-16 16:38:49 +00:00
Sylvain Pion
2eb12d7441
- First part of introduction of Return_base_tag workaround for lack
...
of "forwarding constructors".
Quoting some comment in the code:
"
This is a simple tag which is used as additional (first) argument in
some kernel functors, to tell them to return the base (rep) class,
instead of the main type (e.g. Kernel_base::Point_2 instead
of Kernel::Point_2). This is a minor optimization which prevents
useless copies of the "reps".
Those functors are only those used in the constructors of the kernel
types like Point_2, so it's limited.
The real solution will be to use "forwarding constructors", when they
will be available in C++.
In the mean time, this should be a mostly/hopefully internal hack.
"
2006-08-16 14:56:11 +00:00
Andreas Fabri
6830557518
fixed min/max problem
2006-08-16 14:08:44 +00:00
Sylvain Pion
daee2152ec
Make the return type of the function operator() of the
...
Construct_point_2 functors be the Rep class (the base).
This avoids conversions Rep -> Point_2 -> Rep, hence
useless copies of objects.
The result_type of the functors does not change
(we therefore return a type which is only convertible
to result_type, but hopefully this is fine, and what standard
requirements on functors are anyway).
A real fix for this would require the language addition of
"forwarding constructors".
2006-08-11 11:48:16 +00:00
Sylvain Pion
c50783f08f
Bad luck: "equi-distant" -> "equidistant" (thanks Andreas).
2006-08-07 16:11:40 +00:00
Sylvain Pion
38853d1b10
- Optimize equi_distant_line() by merging the calls to
...
circumcenter() and cross_product().
- Add ctors to Point_[23] and Vector_[23] that take
int, double, and FT coordinates, instead of only RT.
2006-08-07 15:57:40 +00:00
Sylvain Pion
12838a204a
- Add a distinguishing "int" template parameter
...
to First_if_different, defaulting to 0, which
allows to differentiate it in places where it's
needed.
2006-08-07 15:18:21 +00:00
Sylvain Pion
cb6639b85a
Introduce wmult_hw(), a new abstraction for Homogeneous/Cartesian,
...
similar to wmult(), for calls .hw() on the last argument
(i.e., does absolutely nothing in the Cartesian case).
2006-08-07 12:34:24 +00:00
Sylvain Pion
c9de727dd2
New construction equi_distant_line(3 Point_3), with functor.
2006-08-04 15:03:16 +00:00
Sylvain Pion
fcbacc1284
Have squared_distance(Point_3, Point_3) call its functor.
2006-08-04 12:41:56 +00:00
Sylvain Pion
f4be5b9920
Add overloads of circumcenter() taking only 2 Point_2 (or Point_3),
...
that is, the same thing as midpoint(), but with a uniform notation.
Same thing for the corresponding functor.
2006-08-03 17:07:39 +00:00
Sylvain Pion
ea748e53d4
Add new constructor to Iso_rectangle_2(Point_2, Point_2, int).
...
The additional dummy "int" specifies that the 2 points are
the lower-left and upper-right corner. This is more efficient
when one knows they are already in this configuration.
Same thing for Iso_cuboid_3, and the functors.
Use them in Cartesian_converter and Homogeneous_converter.
2006-08-03 09:40:12 +00:00
Sylvain Pion
64d8c5e77a
- Remove blanks at end of line
...
- Make Assign_[23]::result_type be bool instead of K::Bool_type.
(it can't be Uncertain<bool>).
2006-08-03 08:40:47 +00:00
Sylvain Pion
f84245c8d1
Add determinant() to the kernel archetype as well...
2006-08-02 19:14:03 +00:00
Sylvain Pion
6ee4e656e7
Add determinant(Vector_2, Vector_2)
...
Add determinant(Vector_3, Vector_3, Vector_3)
And corresponding functor.
2006-08-02 18:57:40 +00:00
Sylvain Pion
7b120847c9
Do_intersect_3 is a predicate, not a construction.
2006-08-02 12:17:19 +00:00
Sylvain Pion
b69dd83c5f
Use CGAL_Kernel_obj.
2006-08-02 11:43:40 +00:00
Sylvain Pion
18b1d37259
Add a macro CGAL_Kernel_obj(X) in the same spirit
...
as CGAL_Kernel_pred(X,Y) and CGAL_Kernel_cons(X, Y),
but which lists all kernel objects (Point_2...).
2006-08-02 11:36:26 +00:00
Sylvain Pion
b7614eee4e
More code move towards user classes, and improve 3D support for LazyK.
2006-08-02 11:23:56 +00:00
Sylvain Pion
a63e4909f9
Move some Vector_3 functions to user class level.
2006-08-02 08:32:23 +00:00
Sylvain Pion
38956c9b10
Move yet another bunch of code to user classes...
2006-08-01 16:15:07 +00:00
Sylvain Pion
ca7ca6c0bc
More code move to user classes.
2006-08-01 15:39:37 +00:00
Sylvain Pion
4408fa1c2a
More code move to user classes.
2006-08-01 14:10:09 +00:00
Sylvain Pion
a04f166f1f
- Move more code to the "user classes".
2006-08-01 13:17:03 +00:00
Sylvain Pion
cbd6fc9417
Move .transform() in the 3D user classes.
...
Move some functions in the 3D user classes instead of the internal
rep classes.
2006-08-01 12:09:47 +00:00
Sylvain Pion
0c5460ccfa
- Have free operator== and != call the Equal_3 functor for 3D kernel objects.
...
- Introduce .rep() in 3D kernel objects.
2006-08-01 07:56:38 +00:00
Sylvain Pion
5db77ed5d1
Add Compare_yx_2 functor to the kernel archetype.
2006-07-31 22:59:54 +00:00
Sylvain Pion
ead2e93fdb
- Add missing functor for compare_yx().
2006-07-31 16:22:08 +00:00
Efi Fogel
d083fa1323
renamed Bool to Bool_type to avoid a conflict between a macro of the same name defined in Xlib.h
2006-06-13 14:35:40 +00:00
Andreas Fabri
02497d2b97
Removed the general operator in Equal_2
2006-04-20 08:32:23 +00:00
Laurent Saboret
312353dd51
Global fix of svn:executable property in trunk
2006-04-14 15:07:17 +00:00
Laurent Saboret
db6a8f948c
Change CVS keywords to SVN style
2006-02-16 14:30:13 +00:00
Laurent Saboret
1aad55d4cb
Change CVS keywords to SVN style
2006-02-14 10:08:15 +00:00
Laurent Saboret
a0a9b777bc
Move packages to trunk root
2006-02-14 08:58:16 +00:00