Commit Graph

4272 Commits

Author SHA1 Message Date
Adam Wulkiewicz
1cafdc6d43 [densify] Fix default strategy type and remove wrong template parameter. 2018-01-15 19:23:43 +01:00
Adam Wulkiewicz
f35a4f927e [doc][densify] Add documentation for densify algorithm and strategies.
Change strategies from structs to classes as this is the requirement of
the docs generating tool.
2018-01-12 03:01:01 +01:00
Adam Wulkiewicz
e99370beaa [geometry] Include densify algorithm and strategies in top-most headers. 2018-01-11 18:31:42 +01:00
Adam Wulkiewicz
3daa5956f9 [densify][strategies] Throw on invalid max_distance (in algorithm), assert max_distance > 0 (in strategies). 2018-01-10 23:31:53 +01:00
Adam Wulkiewicz
3dd6413478 [strategies][densify] Support arbitrary dimension in cartesian densify strategy. 2018-01-10 23:23:33 +01:00
Adam Wulkiewicz
63562cc81b [densify] Refactor densify_range, implement using iterators. Now it requires FwdRng. 2018-01-10 23:03:52 +01:00
Adam Wulkiewicz
27c82ca4c6 [densify][strategies] Take AssignPolicy instead of RangeOut in strategies.
This allows moving range handling, e.g. push_back() calls from strategies
to algorithm.
2018-01-09 12:35:31 +01:00
Adam Wulkiewicz
b04a0b97b7 [densify] Rename complexify algorithm and strategies to densify. 2017-12-06 16:15:06 +01:00
Adam Wulkiewicz
80003b79c1 Merge branch 'develop' into feature/complexify 2017-12-04 22:35:47 +01:00
Adam Wulkiewicz
9e882889f4 [formulas] Fix thomas direct formula for meridian segments (azi=0, lat1<0). 2017-12-04 22:31:26 +01:00
Adam Wulkiewicz
ff2aaf1ce5 [complexify] Fix compilation errors (includes, tparams, names). 2017-12-04 22:11:31 +01:00
Adam Wulkiewicz
149d817d48 [complexify] Add variant support and make interface consistent with simplify. 2017-12-01 04:12:58 +01:00
Adam Wulkiewicz
9a23ca90f0 [strategies] Add cartesian complexify() strategy. 2017-12-01 02:52:22 +01:00
Adam Wulkiewicz
69a2516373 [strategies] Add spherical and geographic complexify() strategies. 2017-11-30 01:36:16 +01:00
Adam Wulkiewicz
f7de658c2c [algorithms] Add complexify() algorithm. 2017-11-30 01:35:28 +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