Commit Graph

43 Commits

Author SHA1 Message Date
Laurent Rineau 2cec8e6aca Merge pull request #2342 from sloriot/Argt-overlap_intersect_at_insertion
Reworking the handling of overlaps
2017-12-05 18:27:35 +01:00
Sébastien Loriot 8cdfad0d08 add missing URL and Id tags 2017-11-15 22:58:57 +01:00
Sébastien Loriot 8df4fb911f add more comments about why we do it incrementaly 2017-11-14 18:23:36 +01:00
Sébastien Loriot 5fbd297a89 remove comments 2017-11-14 18:04:16 +01:00
Efi Fogel 261bd95fc7 Initialize the hint (pointer to the status line) when the curve is removed from the status line 2017-11-14 17:52:15 +02:00
Sébastien Loriot 7aa680c66a only call _is_right_curve_bigger only when needed 2017-11-14 10:20:58 +01:00
Sébastien Loriot 9dcf23d490 improve is_right_curve_bigger
make sure all the curves were in the set of right curve of the event
to compare them, fall back on geometric test if not
2017-11-14 10:18:17 +01:00
Sébastien Loriot dee84a26e9 avoid creating a new overlapping curve if it has already been created
this avoid some mismatch issues in the left events and the status line
2017-11-14 10:14:50 +01:00
Sébastien Loriot ee57fc2d6c add SPDX identifier for files under the GPL-3+ license 2017-11-12 10:17:51 +01:00
Efi Fogel c454e27a2a Added missing debugging end-of-line 2017-10-02 11:28:09 +03:00
Efi Fogel f0dd482a28 Fixed spelling 2017-08-30 15:06:21 +03:00
Efi Fogel 76f4de545d Introduced Subcurve_vector type and used it 2017-08-30 15:01:27 +03:00
Sébastien Loriot 88f85cb438 handle case when the left curve of an event shouldn't be filled ...
... as it prevents from detecting it is on an overlapping curve
2017-08-25 16:42:32 +02:00
Sébastien Loriot 458ca21e3b fix unused variable warning 2017-08-10 10:59:21 +02:00
Sébastien Loriot a8f5a4c19d Mainly two changes:
- make sure left of an event curves removed by the addition of an overlapping
    curve are by an overlapping curve that has them as a leaf. As a consequence
    we leave more curves on the left but several can be removed by the addition
    of one curve.
    Similarly for right curves of an event, the replacement of a curve on the
    right is done only when all subcurves are contained by an overlapping curve.

  - In case of overlapping of two curves detected when inserting one of the two
    curves on the right of an event, it might happen that the current event is
    not the left end point of the overlapping curve to be computed. In such
    a case, the new overlapping curve will not be added in the current event.
    The modification here pass the current event to the intersection function
    that will pass it to the overlap creation function so that the overlapping
    curve will also be added on the right and on the left of the current event.
2017-08-09 17:58:11 +02:00
Sébastien Loriot 973af4dc31 add missing include directive 2017-08-09 13:27:06 +02:00
Sébastien Loriot b3435d28c4 replace a curve on the left if the new one contains all ancesters of the old one 2017-06-28 10:16:48 +02:00
Sébastien Loriot c31e8596a6 add missing END of 2017-06-28 10:15:42 +02:00
Sébastien Loriot 55bb4d208c a curve no longer needs an event when it is no longer swept 2017-06-27 13:49:07 +02:00
Sébastien Loriot 4b7b5e5a9c deal with overlapping curves with common ancesters before calling Intersec_2
Depending on the arrangement visitors and of the traits class used, it
is assumed in some cases that X_monotone_curves are created without
duplicates (for example some compute the multiplicity of overlap
in Intersect_2 and store the info in X_monotone_curve).
In Boolean Operations, Intersect_2 is overriden and two curves
having a common ancester will never be detected as intersecting

This is WIP, partial overlap is not yet handled fully correctly
2017-06-26 15:38:31 +02:00
Sébastien Loriot f6412c786e handle event on boundary when dealing with overlaps 2017-06-26 15:38:31 +02:00
Sébastien Loriot 00bcb717d2 fix detection of overlap on the boundary of the domain 2017-06-26 15:38:31 +02:00
Sébastien Loriot 757d698aa2 really remove the curve from the right...
copy-paste error
2017-06-26 15:38:31 +02:00
Sébastien Loriot e2d380d14f call update event in all cases (overlap or not) 2017-06-26 15:38:30 +02:00
Sébastien Loriot c67cd48967 add comment + debug info 2017-06-26 15:38:30 +02:00
Sébastien Loriot fa0bab4928 update the filtering mecanism of intersections for overlaps 2017-06-26 15:38:30 +02:00
Sébastien Loriot 9d3e77d8c6 split last_curve of overlapping curves on the right of an event if not done
This happens when the curve on the left and on the right are different
(thus not split in _handle_left_curves()). This happens when there is an
additional overlapping on the left and this overlapping was detected
with overlapping curves having common ancesters
2017-06-26 15:38:30 +02:00
Sébastien Loriot a11f1da495 remove commented code and temporary fix 2017-06-26 15:38:30 +02:00
Sébastien Loriot a4f91b1028 add missing visitor call + always add curve to left 2017-06-26 15:38:29 +02:00
Sébastien Loriot 627b88fc31 generate overlapping curves without duplicates 2017-06-26 15:38:29 +02:00
Sébastien Loriot 7800ac5e4d fix the order of the right curves after an overlap + add todo about how to create
overlapping curves having common input curves
2017-06-26 15:38:29 +02:00
Sébastien Loriot d1e257f7cf small fix 2017-06-26 15:38:29 +02:00
Sébastien Loriot 782b6310da compute all overlap curves in _intersect and handle them in _add_curve_to_right 2017-06-26 15:37:13 +02:00
Sébastien Loriot a20eb3c748 add debug function to get the number of curves overlapping on a subcurve 2017-06-08 17:34:35 +02:00
Sébastien Loriot 5212bb55a6 fix Core dependancies 2017-02-13 17:16:30 +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
andrew morton bfa7aca7c2 Fix spelling of 'matches' 2016-12-17 13:57:54 -07:00
Efi Fogel f69ae3508a fixed _add_curve_to_right() 2016-09-30 09:24:25 +02:00
Efi Fogel d7678c44fb Cleaned up 2016-09-30 09:24:24 +02:00
Efi Fogel 52292c825c Enhanced debug messages & Cleaned up 2016-09-30 09:24:24 +02:00
Efi Fogel 748de06a46 Initialized debugging data members 2016-09-30 09:24:24 +02:00
Efi Fogel 72e114fb3f Enhanced debug messages & Cleaned up 2016-09-30 09:24:24 +02:00
Andreas Fabri 67d72675fe split packages 2015-08-17 23:46:59 +02:00