Commit Graph

4263 Commits

Author SHA1 Message Date
Barend Gehrels
080f0f22f4 [traverse] fix case where hole of one of the inputs formed a
disconnected interior (invalid). In the end it is fixed by only
deleting code. This code is not really old but added to fix some
cases, which are finally fixed in a more generic way.

It fixes a new case and also enhances #case_141_multi
2017-12-06 14:25:42 +01:00
Barend Gehrels
536f001483 [traverse] update debug info with removed fields 2017-12-06 11:33:56 +01:00
Barend Gehrels
d52139934c [traverse] also remove now unused loop setting local region ids 2017-12-06 11:27:12 +01:00
Barend Gehrels
fa6d0ce2ee [traverse] replace switch_source by inspecting region ids locally 2017-12-06 11:23:27 +01:00
Barend Gehrels
d096cc8230 [traverse] use passed turn instead of turn index 2017-12-06 11:06:50 +01:00
Barend Gehrels
8f6cf2681b [traverse] remove from cluster switch_source which is not used anymore 2017-12-06 10:08:58 +01:00
Barend Gehrels
0e9e6caded [buffer][fix] in deflated buffers it could occur that a turn was missed
(so: not within original) and traveled to itself. This is fixed by checking
for deflated buffers (or inflated interior rings) if the minimum number
of turns is 3.
2017-11-29 16:27:01 +01:00
Barend Gehrels
52e26ab6c1 [dissolve] minor, fix line length 2017-11-24 13:32:19 +01:00
Barend Gehrels
bf0ebd31c5 [dissolve][fix] use rescale policy to fix some cases defined as <float> 2017-11-24 13:31:59 +01:00
Barend Gehrels
b65b212f99 [dissolve] make sure that for dissolve both startable and selection of
union operation does not make use of counts
2017-11-24 12:21:59 +01:00
Barend Gehrels
e474309feb [dissolve] fix selecting the right turn for traveling to itself
This fixes the reported testcase #dissolve_mail_2017_10_26_a
2017-11-24 12:01:35 +01:00
Barend Gehrels
3307dc3b2b Merge branch 'develop' of https://github.com/boostorg/geometry into develop 2017-11-23 17:26:52 +01:00
Barend Gehrels
fc8cc479fa [traverse] make select_source more generi 2017-11-23 17:15:48 +01:00
Barend Gehrels
751b05ddc1 [buffer] revert one change (should keep multi_index) and
update tests now that validity is improved (but not yet solved).

Also 2 testcases are added generating uu points
2017-11-23 17:03:41 +01:00
Barend Gehrels
88b9e041ed [buffer] for uu-turns, use piece_index instead of multi_index because
a uu turn might be formed at the same source multi-index
2017-11-23 16:02:33 +01:00
Barend Gehrels
ec454bbce1 [buffer] add the necessary piece-information to operators and debug info 2017-11-23 16:01:49 +01:00
Barend Gehrels
1335aac14d [buffer] remove exception for buffer, it is outdated and its omission
is necessary to calculate switch_source correctly
2017-11-23 15:44:30 +01:00
Adam Wulkiewicz
48d2d99b2b [formulas][strategies] Move updating of state from area formulas to strategy where it should be. This also fixes conversion warning. 2017-11-23 15:32:54 +01:00
Adam Wulkiewicz
0e7614f27d Merge pull request #433 from vissarion/feature_fix_pt_sgmt_pole
Fix pt-sgmt strategy for special meridian segments passing through poles
2017-11-23 02:37:11 +01:00
Adam Wulkiewicz
fde5475144 [overlay] Restore old behavior of union for invalid polygons, changeable with #define. 2017-11-23 00:08:13 +01:00
Adam Wulkiewicz
fda7dbb297 [formulas] Improve robustness and add optimization in sjoberg_intersection formula.
- After newton's method check the resulting longitude and finish only if
  it's between segments' endpoints. If it isn't use more robust method.
- Don't perform spheroidal calculation if model is a sphere.
2017-11-22 18:49:17 +01:00
Adam Wulkiewicz
1e1d050bbd [formulas] In Andoyer formula always generate azimuth=0 for antipodal points (besides when p1 is north pole). 2017-11-22 18:41:40 +01:00
Adam Wulkiewicz
ab5fe53c6b [envelope] Fix segment envelope for antipodal endpoints. 2017-11-20 21:07:51 +01:00
Adam Wulkiewicz
a0ab628707 [formulas] Fix formulas for antipodal endpoints (andoyer inverse, thomas direct, sjoberg intersection). 2017-11-20 21:07:00 +01:00
Barend Gehrels
44f61d05bb Merge branch 'develop' of https://github.com/boostorg/geometry into develop 2017-11-19 16:01:09 +01:00
Adam Wulkiewicz
0b8a704ae9 [core][overlay] Improve/fix add_rings().
Support passing of area strategy into add_rings() and pass it from
overlay, buffer and dissolve.

Add invalid_output_exception and if preprocesor definition is
defined throw it if an intermediate result in add_rings() has negative
area which means that in non-cartesian CS too big polygon is the result.

If area of the intermediate result is 0 ignore it.
2017-11-15 21:23:49 +01:00
Barend Gehrels
1d7d9a9a00 [buffer] fix generation of buffer's interior ring when there is a touching point,
by selecting the right operation
2017-11-15 11:58:27 +01:00
Adam Wulkiewicz
a4ba4dc276 Merge pull request #434 from awulkiew/fix/geographic_union
Fix for union in geographic CS not generating result if it's too big
2017-11-15 00:25:03 +01:00
Adam Wulkiewicz
20a994c8bb [buffer] Add missing function argument when not defined BOOST_GEOMETRY_BUFFER_USE_SIDE_OF_INTERSECTION. 2017-11-12 17:01:55 +01:00
Adam Wulkiewicz
ed21755449 [overlay] For union do not check area of result before adding polygons to the output. 2017-11-11 01:20:51 +01:00
Barend Gehrels
e9b52567fe [buffer] avoid using the flat-end for anything else than linear features,
even if end-strategy is specified for polygons
2017-11-08 17:54:50 +01:00
Barend Gehrels
694299b7c7 [buffer] change last fix by adding is_flat_start/end properties to pieces.
These marks are used to check if a turn is really inside the generated buffer,
or on the flat end (then it should be kept).
This will NOT YET work for one-sided buffers.
2017-11-08 17:47:46 +01:00
Barend Gehrels
f6808f8277 [buffer] fix MYSQL testcase 25662426 2017-11-08 15:37:27 +01:00
Vissarion Fysikopoulos
c2ac26eab9 [strategies] [tests] Fix pt-sgmt strategy for special meridian segments passing through poles 2017-11-07 17:35:05 +02:00
Tristan Carel
b520265946 Fix documentation typos in rtree 2017-11-07 08:59:08 +01:00
Adam Wulkiewicz
a7cf3f347a [io] Add workaround for clang-3.0_3 compilation issue. 2017-11-06 16:58:29 +01:00
Vissarion Fysikopoulos
8d412963c8 [formulas] [strategies] Move point-segment distance formula to strategies 2017-11-01 23:41:36 +02:00
Vissarion Fysikopoulos
730d91c3b7 [formulas] Missing include files and namespaces 2017-11-01 22:05:44 +02:00
Vissarion Fysikopoulos
8d29c629d0 [test] Special case handling for Pt-Sgmt distance when segment contains the pole 2017-11-01 21:01:35 +02:00
Vissarion Fysikopoulos
b1fe2ad934 [formulas] Use new distance function with meridian formula optimization everywhere in point-segment distance formula 2017-11-01 20:02:49 +02:00
Vissarion Fysikopoulos
e099a819e7 [formulas] Clean-up code/comments 2017-11-01 19:55:41 +02:00
Vissarion Fysikopoulos
1c5d10fb77 [formulas] Thomas formula return zero for distance between poles. Fixed by calling meridian formula for this case. 2017-11-01 19:44:28 +02:00
Vissarion Fysikopoulos
f458d8d28e [formulas] [strategies] Distance point-segment use the meridian formula. Use new static version of distance strategy. 2017-11-01 17:42:48 +02:00
Adam Wulkiewicz
b17ad43f7f [strategy] Add missing include in geographic distance strategy. 2017-10-31 16:28:41 +01:00
Adam Wulkiewicz
ede7f02f4f Merge branch 'develop' into feature/meridian_andoyer 2017-10-31 15:50:42 +01:00
Adam Wulkiewicz
88e8e268e0 Merge pull request #410 from vissarion/feature/distance_point_segment
Geographic distance between a point and a segment
2017-10-31 15:46:19 +01:00
Adam Wulkiewicz
14592168c4 [relate] Fix reference to temporary (reported by clang-4.0 asan). 2017-10-27 01:22:01 +02:00
Adam Wulkiewicz
968035415f Merge pull request #424 from awulkiew/fix/geographic_preceding
Fix preceding/exceeding in geographic CS
2017-10-25 23:28:14 +02:00
Adam Wulkiewicz
6665497ecc Merge pull request #423 from awulkiew/fix/setops_la
Fix L/A set operations
2017-10-25 23:28:02 +02:00
Barend Gehrels
36d1fe7657 Merge branch 'feature/intvalid' into develop 2017-10-23 18:39:46 +02:00