Commit Graph

3475 Commits

Author SHA1 Message Date
Barend Gehrels
4f90bcd4a5 [fix] handle ix/ix as ux/ux
This fixes case #77; case #72 is fixed by earlier changes
2015-12-06 18:21:35 +01:00
Barend Gehrels
99045b5c47 [fix] handle_colocations, discard_colocated was not refreshed 2015-12-06 18:07:48 +01:00
Barend Gehrels
0c9d365d4b [fix] copy_segment_points did not use reverse, fixed. It is now similar to
copy_segments
This somehow influences one unit test case but that will be handled later.
2015-12-06 18:01:19 +01:00
Barend Gehrels
90485acf79 Merge branch 'develop' into feature/fix_tangencies 2015-12-06 17:45:12 +01:00
Adam Wulkiewicz
5d02ff6aed [index] Add workarounds for uninitialized variable warnings reported by GCC-4.4 -O2. 2015-12-01 23:46:11 +01:00
Barend Gehrels
285e0ad61d Merge branch 'develop' into feature/fix_tangencies 2015-11-28 09:10:28 +01:00
Menelaos Karavelas
beabe33efc [strategies][distance][spherical equatorial] fix comment written in Greek characters 2015-11-27 12:29:34 +02:00
Menelaos Karavelas
4dedae6eb7 Merge pull request #335 from mkaravel/fix/is_valid_invalid_coordinates
Boost.Trac ticket 11711
2015-11-26 23:30:58 +02:00
Barend Gehrels
fa202f7821 [enrich] remove now obsolete flag for clustered 2015-11-22 14:11:05 +01:00
Barend Gehrels
17c83298d4 [overlay] remove (handling of) discarded in enrich/traverse.
Discarded is still there but not used or assigned in any sorting
2015-11-22 14:10:02 +01:00
Barend Gehrels
2945201838 [overlay] pass inverse flag for difference and use it
to reverse condition on interior/exterior touch
2015-11-22 14:01:05 +01:00
Barend Gehrels
fdcf6df915 typo 2015-11-21 19:02:00 +01:00
Barend Gehrels
939bf656f9 [intersection/enrich] don' t skip after ii if it is about interior rings,
they should be traversed. This fixes case mysql_21965285_b_inv
and helps for cases #58 (no backtracking)
2015-11-21 19:01:51 +01:00
Barend Gehrels
6fb034581a [traverse] fix situations for ii by checking if in a cc case (where either
one can be selected normally) one of the options leads to the starting turn.

This, together with previous commit (finish early), fixes the many
variants of case #58
2015-11-21 18:56:40 +01:00
Barend Gehrels
88d2276b69 [traverse] fix situations for ii by checking if current ring is
finished immediately (without switching to other source as ii does)
2015-11-21 18:54:00 +01:00
Barend Gehrels
a9903f8c7f [overlay] fix ordering ii-turns and skip turns afterwards 2015-11-18 17:33:23 +01:00
Barend Gehrels
67ac81e5b2 [overlay] fix cases where intersection point is in the middle of the
first segment, and not at the endpoint
2015-11-18 14:53:00 +01:00
Barend Gehrels
a48a935064 [overlay] self-tangencies, similarly as handling side left/right,
handle cases where one leg continues collinearly
2015-11-18 11:14:35 +01:00
Menelaos Karavelas
348b7f7f56 [algorithms][is_valid] check invalid floating-point coordinates using
boost::math::isfinite instead of boost::math::isnan and boost::math::isinfinite;
2015-11-18 10:46:58 +02:00
Menelaos Karavelas
719d0f6f49 [util] apply coding rules 2015-11-18 10:27:20 +02:00
Menelaos Karavelas
045522d9cb Merge branch 'develop' of github.com:boostorg/geometry into fix/is_valid_invalid_coordinates 2015-11-18 09:58:37 +02:00
Barend Gehrels
2e7e21dd31 [overlay] don' t discard for difference too 2015-11-15 12:33:13 +01:00
Barend Gehrels
e2764a795b [overlay] sort on cc too. Also, sort/fix cases where ux is considered for intersection too.
They are discarded now, besides the sorting order is fixed (but that
alone does not help)
2015-11-15 11:55:13 +01:00
Barend Gehrels
c7d419785e [overlay] in less_by_segment_ratio, sort turns where operation occurs
(and not in the other turn) first
2015-11-14 11:23:37 +01:00
Barend Gehrels
d038e58f16 [overlay] check for sides w.r.t. both, this fixes two cases for
intersection
2015-11-13 20:08:14 +01:00
Barend Gehrels
b891bbe741 [overlay] use same functionality also for intersection 2015-11-13 19:29:55 +01:00
Barend Gehrels
e97bbb4da1 [overlay] fix cases where IP is not at endpoint. This fixes the last
union/buffer cases with less_by_segment_ratio instead of handle_tangencies
2015-11-12 19:46:29 +01:00
Jiri Drbalek
cb9c581365 [algorithms][centroid] Fix crash when multi-geometry contains empty geometry 2015-11-11 21:24:26 +00:00
Barend Gehrels
242c619b35 [overlay] handle ux/ui and ui/ui in a more generic way, for union,
checking the relative sides of the outgoing segments (in the sorting)
2015-11-11 21:50:34 +01:00
Barend Gehrels
529b8e804c [overlay] fix ux/ux cases by sort order
(instead of handle tangencies)
2015-11-11 16:18:19 +01:00
Barend Gehrels
6b0be79ff3 [enrich] move indexed_turn_operation/sort to separate source file to
reuse it for handle_touch

Also, remove the unused member variable m_strategy from it

Conflicts:
	include/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp
2015-11-11 15:54:47 +01:00
Barend Gehrels
4a05869d2f [overlay] turn off handle_tangencies 2015-11-11 15:43:29 +01:00
Barend Gehrels
9ec7e5f3d3 Merge branch 'develop' of https://github.com/boostorg/geometry into develop 2015-11-11 10:27:42 +01:00
Menelaos Karavelas
d9317bdba6 Merge pull request #334 from mkaravel/fix/is_simple_for_empty_geometries
Boost.Trac tickets 11709 and 11710
2015-11-10 08:06:17 +02:00
Adam Wulkiewicz
450cfb42be [arithmetic] Add missing include in determinant.hpp 2015-11-08 05:30:07 +01:00
Menelaos Karavelas
a69456a7e3 [algorithms][is_valid] check if the coordinates of a geometry are valid or not;
coordinates are considered invalid if they are off floating point type and either
NaN or infinite;
2015-11-06 12:16:07 +02:00
Menelaos Karavelas
80c706df39 [algorithms][is_simple] patch the is_simple algorithm to address Boost.trac tickets
11709 and 11710;

Ticket 11709 (is_simple segfault): modify the is_simple algorithm to check a linestring
for emptiness; if an empty linestring is discovered, return false; the actual return
value does not really matter as empty linestrings are considered as invalid, which means
that the behavior of is_simple for empty linestrings is undefined; on the other hand,
we do want to avoid segfaults, which is achieved with the patch; the same approach has
been applied to emtpy rings, and as a result to empty polygons;

Ticket 11710 (empty geometry logic): modify the behavior of the is_simple algorithm with
respect to empty multi-geometries; the old behavior was considering empty multi-geometries
as non-simple, whereas the current behavior is the opposite; this change has been made in
order to be consistent with the fact that empty multi-geometries are considered as valid;
2015-11-05 14:56:18 +02:00
Barend Gehrels
cd6bfc54d4 [colocations] extract code to separate function 2015-11-04 13:22:41 +01:00
Barend Gehrels
7ee6bd99b1 [buffer] prefix traits::detail namespace 2015-11-01 11:17:32 +01:00
Barend Gehrels
085d641dab [difference] fix colocations 2015-10-31 20:06:39 +01:00
Barend Gehrels
c1aeab008b [enrich] add overlay_type template parameter
which will be used later
2015-10-31 19:35:18 +01:00
Barend Gehrels
d6b7e052ba [union] fix new case #80 to discard i/i turn of interior ring with
interior ring, in case of a colocation
2015-10-31 18:53:55 +01:00
Barend Gehrels
4cc8112544 [colocations] fix: the condition to select on uu or ux should be there 2015-10-31 12:26:09 +01:00
Barend Gehrels
013420fd07 [colocations] fix debug info 2015-10-31 11:00:41 +01:00
Barend Gehrels
7cfe3dc337 [union] instead of checking on u/u, sort/check
on exterior ring/interior rings such that also cases with u/x are handled

This fixes case mysql_21964049
2015-10-31 10:56:27 +01:00
Barend Gehrels
ac5bc527e7 [union] fix cases where a polygon is touching the interior ring of another
polygon at a point where that interior ring touches its exterior ring
2015-10-28 19:48:34 +01:00
Barend Gehrels
f98e0ed947 Merge pull request #324 from jeremy-murphy/pj_units
Split pj units at divisor, support fractional multipliers.
2015-10-17 10:42:57 +02:00
Adam Wulkiewicz
3e22205687 Merge pull request #329 from springmeyer/fix-lineclip-int
[algorithms][intersection] Fixes liang_barsky for integral data
2015-10-14 23:41:08 +02:00
Dane Springmeyer
6f214c54c6 use select_most_precise + better naming of TemplateType 2015-10-14 11:36:50 -07:00
Barend Gehrels
533543e86b [traverse][robustness] in case of cc, instead of arbitrary candidate,
take candidate with largest remaining distance. This fixes some
errors if rescaling is turned off.
2015-10-14 17:15:53 +02:00