Commit Graph

225 Commits

Author SHA1 Message Date
Jane Tournois df47a35e67 fix more conversion warnings for msvc 2017 2017-02-14 12:00:05 +01:00
Sébastien Loriot 50510c05ea add include directive for license of all GPL header files
done using:
ack-grep "^GPL" */package_info/*/license.txt -l | awk -F "/" '{print $1}' > /tmp/gpl_packages
for i in `cat /tmp/gpl_packages | \
          grep -v Operations_on_polyhedra | \
          grep -v Algebraic_kernel_for_circles | \
          grep -v Algebraic_kernel_for_spheres | \
          grep -v Polyhedron_IO`;
do
  echo $i
  python Scripts/developer_scripts/add_license_in_pkg_header.py $i
done
python Scripts/developer_scripts/add_license_in_pkg_header.py Operations_on_polyhedra Polygon_mesh_processing
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_circles Circular_kernel_2
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_spheres Circular_kernel_3
python Scripts/developer_scripts/add_license_in_pkg_header.py Polyhedron_IO Polyhedron
2017-01-19 15:20:25 +01:00
Laurent Rineau 9551ca5945 Merge pull request #1623 from lrineau/SDG_2-fix_include-lrineau
Fix a missing #include with -DCGAL_PROFILE
2016-11-03 11:03:33 +01:00
Laurent Rineau 4963de5a27 Fix a missing #include with -DCGAL_PROFILE 2016-10-27 10:28:31 +02:00
Marc Glisse 9f9a201d50 Specify the type for expression templates. 2016-10-21 13:47:00 +02:00
Laurent Rineau 9658e6e1f9 Merge pull request #1591 from afabri/SDG-set_failbit-GF
SDG_2: Set the failbit if the operator>> for Site fails.
2016-10-20 09:47:58 +02:00
Laurent Rineau c826500c7d Merge pull request #1551 from mglisse/Number_types-gmpxx_coercion-glisse
Misc GMPXX fixes
2016-10-20 09:47:39 +02:00
Andreas Fabri 664fb7dd5f set the failbit 2016-10-18 12:32:54 +02:00
Laurent Rineau 038a310a1a Merge pull request #1446 from sloriot/CGAL-remove_dont_submit
Getting rid of the remaining dont_submit files
2016-10-17 10:01:30 +02:00
Laurent Rineau 5bde261394 Merge pull request #1427 from afabri/SDG_2-static-GF
SDG_2: No need for thread local storage as readonly
2016-10-17 10:00:57 +02:00
Marc Glisse 2c31c41529 Specify the type for expression templates. 2016-10-15 19:54:51 +02:00
Andreas Fabri 37c6367058 Forgot to go from error to warning for the hierarchy 2016-10-14 08:40:07 +02:00
Andreas Fabri 27d40d45b0 turn the error in a warning again 2016-10-13 15:41:32 +02:00
Sébastien Loriot 09030a3b02 move to archive and remove replaced header file 2016-10-06 09:53:39 +02:00
Andreas Fabri 40c834a298 Move Filtered_construction from SDG_2 to Filtered_kernel 2016-09-30 15:23:15 +02:00
Andreas Fabri 182fd87426 Produce error message 2016-09-07 09:27:04 +02:00
Andreas Fabri 8d0e4d6d8e no need for static 2016-09-06 17:03:07 +02:00
Andreas Fabri 5de61c882f changes after LR's remarks 2016-09-06 16:01:30 +02:00
Andreas Fabri 6ce1a348f6 get rid of static data 2016-09-06 13:02:04 +02:00
Andreas Fabri 92ba8a3c1e simplify 2016-09-06 12:25:53 +02:00
Andreas Fabri 96ab62cfc1 no need for static tags. They are light weight 2016-09-01 16:20:28 +02:00
Andreas Fabri d44ba8e43e Switch to boost::transform_iterator, as it deals correctly with temporary objects 2016-09-01 12:38:59 +02:00
Andreas Fabri 939de5f680 Make variables thread local or they are const as read only 2016-08-31 16:50:20 +02:00
Sébastien Loriot 7f3772a50b replace the usage of raw pointer as property map
It was deprecated in boost 1.55
http://www.boost.org/users/history/version_1_55_0.html
2016-07-13 13:53:00 +02:00
Andreas Fabri a7d82f70a5 Declare 'SDG_hierarchy_2::nearest_neighbor()' const 2016-02-27 08:19:16 +01:00
Andreas Fabri f68ddb6ee8 Do not use "or" instead of "||" ; Use typedef in testsuite instead of derivation" 2015-04-29 11:58:02 +02:00
Panagiotis Cheilaris aa03af229d use a tag to choose bisector constructions
The SDG traits define a tag named Tag_has_bisector_constructions
that is either Tag_false or Tag_true.

If it is Tag_false, the bisector constructions are the hard-coded
ones from the algorithm (essentially they are the L2 ones).

If it is Tag_true, the bisector constructions are taken from the
traits. This is how the Linf traits are implemented.

This way, we avoid SFINAE.
2015-04-29 11:58:01 +02:00
Panagiotis Cheilaris 1b272060c9 use NULL instead of nullptr in SDG L2 2015-04-29 11:58:01 +02:00
Panagiotis Cheilaris 92bda0623c point to insert_point_on_segment with ITag
Point to &Self::insert_point_on_segment only if the traits
support intersection. Otherwise, point to nullptr.
2015-04-29 11:58:01 +02:00
Panagiotis Cheilaris 8cf9a96b45 pointers for insert point on segment functions
Introduce pointers for functions that insert a point on a segment.
For L2, to keep the same functionality as before, the pointers
point to insert_exact_point_on_segment and insert_point_on_segment
functions.

Classes derived from Segment_Delaunay_graph_2 can change the
pointers to point to more specialized functions. For example, the
Linf implementation will point to different specialized function
defined in the Linf class.
2015-04-29 11:58:01 +02:00
Panagiotis Cheilaris 13db2022ce template parameter of SDG graph in SDG hierarchy
Use an additional optional parameter (SDGLx) in the segment
Delaunay hierarchy template to be able to change the segment
Delaunay graph class that is used per level of the hierarchy.
Since this is the last optional parameter, there is no change
for users of the L2 segment Delaunau graph and hierarchy.

This parameter is necessary to support the Linf segment Delaunay
graph and hierarchy. Again, it is intended that the user of the
Linf classes does not have to be aware of this parameter.

Some additional classes are declared as friends of
Segment_Delaunay_graph_2.
2015-04-29 11:58:01 +02:00
Panagiotis Cheilaris 942d44cb99 choose constructions from traits if they exist
If construction templates for bisectors (line, segment, ray)
exist in the traits, then use them, otherwise, use the L2 traits.
The check is implemented by a type Has_bisector_constructions_type
that might be included in the traits and using the
"Substitution failure is not an error" (SFINAE) principle.
2015-04-29 11:58:01 +02:00
Panagiotis Cheilaris 4bf6a7fc86 more symmetric face finding in split
This is also needed for correct Linf predicates.
2015-04-29 11:58:01 +02:00
Panagiotis Cheilaris c07ae4ba42 general oriented_side to also accomodate Linf
The oriented_side predicate is used with a face corresponding to
the interior of a segment that is split by a vertex contained in
the segment. For an infinite such face the code has to become more
general in order to accomodate the Linf case. For example, in L2
the number of such infinite faces is 0, 2, or 4, whereas in Linf,
it can be any even non-negative integer.

Moreover, the existing code for infinite faces is L2 specific and
ignores the interior of the segment for its decision. In Linf the
interior of the segment is important. For this reason, there is a
new case of the predicate that is general enough to also
accomodate Linf:

// computes the oriented side of the Voronoi vertex of s1, s2, inf
// wrt the line that passes through the point p and its direction
// is the direction of the supporting line of s, rotated by 90
// degrees counterclockwise.
Oriented_side operator()(const Site_2& s1, const Site_2& s2,
                         const Site_2& s, const Site_2& p) const

The Oriented_side_C2 class is also adapted for L2 to use the new
form of the predicate, which internally calls the old form.
2015-04-29 11:58:00 +02:00
Panagiotis Cheilaris 88bc8d9458 change of n_inf assertion to support Linf case
In Linf, there can be many Linf-parabolae contained in the region
of the interior of a non-axis parallel segment.
2015-04-29 11:58:00 +02:00
Panagiotis Cheilaris 18532c962a make Voronoi edge primal agnostic to L2 2015-04-29 11:58:00 +02:00
Panagiotis Cheilaris 1a9b0dc079 vertex conflict for insert_third
Use vertex conflict instead of orientation in insert_third for
the case of three points. This change is to make SDG more L2
agnostic.

Given are three point sites s1, s2, s3.

The orientation of (s1,s2,s3) is not collinear if and only if the
two vertex conflict quadruples (s1,s2,inf,s3) and (s2,s1,inf,s3)
are of opposite signs.

The orientation of (s1,s2,s3) is right turn if and only if the
vertex conflict quadruple (s2,s1,inf,s3) is NEGATIVE.
2015-04-29 11:58:00 +02:00
Sébastien Loriot 4c53434328 remove extra template parameter and missing const 2013-12-02 22:55:54 +01:00
Andreas Fabri 6c547e5663 Mainly added includes 2013-09-13 22:24:30 +02:00
Sébastien Loriot 8b7c074e7f hide variable when not used 2013-07-09 07:43:22 +02:00
Sébastien Loriot 42fa044273 fix warnings 2013-07-08 07:58:56 +02:00
Sébastien Loriot 51c5a5c5ed remove unused variable warnings 2013-07-05 11:36:06 +02:00
Sébastien Loriot 72f117839f update the insert function to dispatch according to the value-type 2013-07-02 19:51:34 +02:00
Sébastien Loriot 1aa8ab8afa add function to insert a range of segments 2013-07-02 18:49:02 +02:00
Sébastien Loriot 1799dc232a add function to insert a range of segments from points and pairs of indices 2013-07-02 14:35:46 +02:00
Sébastien Loriot b9d1183cd0 add function to insert a range of points using spatial sorting 2013-07-02 11:58:40 +02:00
Sébastien Loriot 2fb80f6520 add Less_x_2 and Less_y_2 in the traits concept and its models
this is needed to use the spatial sorting
2013-07-02 11:57:02 +02:00
Andreas Fabri 1952bf7382 remove unused variables 2013-03-04 14:49:30 +01:00
Andreas Fabri 6f08686b71 obvious fix in an unused function 2013-02-27 13:55:06 +01:00
Andreas Fabri 10e495d897 Replace WARNING with ATTENTION to avoid a 'W' in the testsuite page 2013-02-27 13:42:18 +01:00
Laurent Rineau 68e2b709e2 Use CGAL_assertion_code to remove warnings about unused variables 2013-02-20 18:56:13 +01:00
Philipp Möller 833a32660d Replace boost/random.hpp with more precise headers 2012-12-14 17:29:14 +01:00
Philipp Möller 79b30908d5 WARNFIX: Silence a good part of unused variable/parameter warnings.
Wextra results in a dreadful wall of yellow in the test-suite and is
scary when using CGAL. Reduce some of the noise by silencing the
obvious cases with CGAL_USE or comments.
2012-08-07 11:04:32 +00:00
Sébastien Loriot 40e636e8e5 more warnings removed 2012-07-27 10:38:58 +00:00
Menelaos Karavelas 13ff351666 fixed bugs reported by Marc Moerig <marc@moerig.com>;
these bugs have been directly incorporated into next after approval by
Laurent, and after running the SDG testsuite locally on my machine;
2012-01-18 09:33:13 +00:00
Laurent Rineau 8f59fd9592 Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Menelaos Karavelas a241eb1572 removed Notre Dame University from copyright headers;
still some headers contain FORTH as copyright headers;

this was done (incorrectly on the trunk (r65713) and reverted by Laurent; it is now properly done in ^/branches/next
2011-10-06 08:12:38 +00:00
Sébastien Loriot d5c2355419 merge the modification from experimental packages to
the candidate branch of the feature + few name bug fixes
2011-04-12 11:34:37 +00:00
Sébastien Loriot e5a96255ba *remove warnings.
In particular remove UNTESTED_XXXXXXXXXXX unused variable that possibly hide true warnings. 
In those cases, the string printed while executed now starts with "NOTE: ".
*CGAL internal code no longer rely on depecrated features
2011-02-28 15:28:28 +00:00
Andreas Fabri a8ffcea556 int -> size_t and the other way round for level as it cannot get that big 2010-06-22 10:15:50 +00:00
Sébastien Loriot d53e01f1a1 remove package namespace macro 2010-06-09 08:45:58 +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
Andreas Fabri 6698aab158 Replace struct with class 2010-05-25 08:37:38 +00:00
Andreas Fabri 10716e81c1 Replace struct with class 2010-05-25 08:37:26 +00:00
Andreas Fabri 4acea23434 Add using statements for ansi-compliance 2010-05-18 08:12:56 +00:00
Andreas Fabri ceec03efbb Add 'using' for ansi compliance 2010-05-17 07:31:04 +00:00
Menelaos Karavelas 17463fae28 removed experimental code from branch 2010-05-12 10:46:05 +00:00
Menelaos Karavelas 6db1c586c4 added class that implements the filtered traits using also static filters
when possible;
benchmark_nox.cpp uses now the filtered traits with static filters by default;
this is activated by the CGAL_SDG_TRAITS_WITH_STATIC_FILTERS macro;
Vertex_conflict_C2.h: added operator() that takes four points;
Traits_wrapper_2.h: the Side_of_oriented_circle_2 class is now implemented
using the Vertex_conflict_2 class from the base traits;
2010-04-22 07:49:57 +00:00
Menelaos Karavelas 99f1616c26 removed code that was trying to insert a site using flips 2010-03-31 08:30:30 +00:00
Menelaos Karavelas 5b04684c3f fixed bug in arrangement type predicate for non-interseting segments;
added some types and some assertions in edge lists (both regular and in-place);
fixed bugs in post-increment operators of edge list circulators (edge_list.h)
2010-03-31 08:15:14 +00:00
Menelaos Karavelas 6d4a9bfb7c added iterator to the edge list (edge_list.h)
added various macros in double.cpp so that the fastest choices are made
2010-03-31 07:15:33 +00:00
Menelaos Karavelas f239e1bba4 created a face base for SDG;
moved face data in face base of SDG;
modified benchmark files about this change;
now using the SDG face base everywhere as the default face base;
2010-03-30 20:24:19 +00:00
Menelaos Karavelas 25e7a03b50 one more optimization in edge list iterator 2010-03-30 18:01:12 +00:00
Menelaos Karavelas 2acb84c4de added code for Segment Delaunay graph that does not support intersections;
the sites now store two points and currently there is no additional container
for input sites; info is not supported yet.
2010-03-30 07:54:45 +00:00
Menelaos Karavelas 75563e6124 no need to include the face with info now 2010-03-29 19:44:35 +00:00
Menelaos Karavelas 1a7f7eb32d local implementation of the in-place edge list; it assumes that the face data
in TDS2 is activated
2010-03-29 19:41:23 +00:00
Menelaos Karavelas b617e8ed31 modifications so that the code works with the in-place edge list stored in
the tds_data (face data)
2010-03-29 19:39:43 +00:00
Menelaos Karavelas aeb6c47cdb added alternate sym_edge implementation by AF.
the alternate implementation is used by defining the macro:
CGAL_SDG_ALTERNATE_SYMEDGE_IMPLEMENTATION_BY_AF
2010-03-26 09:25:51 +00:00
Menelaos Karavelas 8425a5647c fixed bug that made the SDG testsuite red (CGAL-3.7-Ic-23) 2010-03-24 08:57:12 +00:00
Menelaos Karavelas c2b48cb014 wrote code for the arrangement_type predicate that is specific to
non-intersecting segments; the code is activated by defining the
CGAL_SDG_USE_SIMPLIFIED_ARRANGEMENT_TYPE_PREDICATE macro, which is currently done in the benchmark program
2010-03-22 10:19:22 +00:00
Menelaos Karavelas 23ac67113c added support for an in-place edge list stored at the faces; the edge list is used to represent the boundary of the conflict region;
added support for in-place storage (at the faces) of the faces that define the conflict region; also the sign of the incircle test is cached there; this uses the Face_data that now exists in TDS2;

to activate the in-place storage of the faces of conflict regions define the macros: CGAL_TDS2_DATA and CGAL_SDG_NO_FACE_MAP

the file Triangulation_face_base_with_in_place_edge_list_2.h implements an in-place edge list for the boundary of the conflict region
2010-03-16 14:42:27 +00:00
Menelaos Karavelas 017b047b06 when computing the Voronoi vertex in the point() method, we first check if
we are in the special case where the Voronoi vertex is degenerate (which happens
when the Voronoi vertex is defined by two segments and a point, where the point
is the common endpoint of the two segments)
2010-03-16 14:26:15 +00:00
Menelaos Karavelas 63b5291b04 added public that returns the Voronoi vertex as a point. 2010-03-16 14:14:48 +00:00
Menelaos Karavelas 0d94090199 renamed Incircle_operator_sqrt_field_C2.h to Voronoi_vertex_sqrt_field_new_C2.h;
removed file Incircle_sqrt_field_C2.h: the code in there is superseeded by the
code in Voronoi_vertex_sqrt_field_new_C2.h;
the code used now by default for computing the incircle test is that in the file
Voronoi_vertex_sqrt_field_new_C2.h; the old code can be activated by defining
the macro CGAL_SDG_USE_OLD_INCIRCLE; also by defining the macro
CGAL_SDG_CHECK_INCIRCLE_CONSISTENCY the incircle test is evaluated by both codes
and if they are different an error is shown in std::cerr
2010-03-08 19:59:01 +00:00
Menelaos Karavelas 2fecbfe72e lots of changes to increase the performance. this will be the new vertex conflict code 2010-03-08 19:26:34 +00:00
Menelaos Karavelas d672394d1a within a macro block called CGAL_SDG_CHECK_INCIRCLE_CONSISTENCY,
we check if the results of the old and new incircle tests are the same
2010-03-08 19:24:42 +00:00
Menelaos Karavelas d781e8698a removed static stuff; some stylistic changes 2010-03-08 19:23:09 +00:00
Menelaos Karavelas d938466a5b added code that dumps to a file quadruples of sites for which the
incircle test is called; the code is surrounded by the macro
CGAL_PROFILE_SDG_DUMP_INCIRCLE
2010-03-05 09:25:41 +00:00
Menelaos Karavelas 7f78f9946e now using the algebraic structure traits; this is the first step towards
automatizing the method the traits are evaluated
2010-03-04 19:00:46 +00:00
Menelaos Karavelas c80efd7f05 two more ways for computing the incircle test for segments 2010-03-04 18:59:20 +00:00
Menelaos Karavelas 9bbfaf3cce modified the exactness check again so as not to use the deprecated check_tag function 2010-03-01 09:53:07 +00:00
Menelaos Karavelas 172714f57a removed Check_exact.h and related calls; now using existing CGAL functionality 2010-03-01 09:49:13 +00:00
Menelaos Karavelas 1a00096bb7 replaced unnecessary "else if" by else, thus removing compiler warning;
bug supplied by Andreas on 1/3/2010 (email)
2010-03-01 09:21:49 +00:00
Menelaos Karavelas c73424e9a0 this file contains a functor checking if the number type used is exact 2010-03-01 09:15:16 +00:00
Menelaos Karavelas 1ea01fc2a3 added code for dumping sites producing a filter failure when CGAL_PROFILE is defined 2010-03-01 09:14:03 +00:00
Menelaos Karavelas 1d1d38ee0e modified compute_vertex so as to do fewer tests on whether objects are semgents
or points;
added a special case check for a PPS Voronoi vertex computation,
namely whether two points are aligned with the x or y-axis and at the same time 
the segment
is parallel to the supporting line of the two points.
2010-03-01 09:12:21 +00:00
Andreas Fabri 4a41a07234 better invert the ifdef 2010-02-25 16:59:21 +00:00
Andreas Fabri fef21871b7 Added #ifdefs so that we can more easily bench geometric filtering 2010-02-25 16:33:45 +00:00
Menelaos Karavelas de0a95f1a2 added one more test for the PSS case that reduces the number of filter failures 2010-02-08 23:48:21 +00:00
Menelaos Karavelas cb8976b1f7 added comments to indicate code added by Andreas and Monique 2010-02-08 19:26:20 +00:00