Commit Graph

8536 Commits

Author SHA1 Message Date
Menelaos Karavelas
ee906b2f40 [algorithms][is_valid] avoid potential infinite loop in has_spikes
(such an infinite loop can happen if the points in the range have NaN coordinates)
2015-07-09 11:50:59 +03:00
Menelaos Karavelas
327df52ec5 [algorithms][envelope] enrich comments regarding the implementation of
envelope_multi_range_on_spheroid
2015-07-09 11:32:40 +03:00
Menelaos Karavelas
388c77cf25 [algorithms][envelope] update copyright headers to follow latest license-related wording;
rewrite envelope_multi_range and envelope_multi_range_on_spheroid algorithms in a more
clear form;
2015-07-09 11:21:53 +03:00
Menelaos Karavelas
7947be9bf5 [algorithms][expand] update copyright headers to follow latest license-related wording 2015-07-09 11:21:07 +03:00
Barend Gehrels
47c5c726ad [intersection] comment some cases not supported for no-robustness 2015-07-08 20:34:29 +02:00
Barend Gehrels
91ccb7e6e3 [buffer] re-enable support for no-robustness policy
Influence on polygon geometries is limited (countries also little influence)
2015-07-08 20:34:07 +02:00
Barend Gehrels
bc4db40121 [test] fix expectactions for intersection geos_2 where in rare cases
a tiny rectangle is generated (due to rescaling)
2015-07-08 11:12:45 +02:00
Barend Gehrels
359e5ea139 Merge branch 'bg-prepare' 2015-07-08 09:38:15 +02:00
Barend Gehrels
6f6fef46f4 Merge branch 'develop' into bg-prepare 2015-07-08 09:28:12 +02:00
Menelaos Karavelas
1bfae2e79e Merge pull request #313 from mkaravel/fix/sym_difference_areal
Fix/sym difference areal
2015-07-07 07:41:26 +03:00
Menelaos Karavelas
ba8bc966b1 [algorithms][envelope] merge implementation of envelope for linestrings
and multilinestrings into a single file for linear geometries
2015-07-07 04:32:30 +03:00
Menelaos Karavelas
fc7ed8f7ab [algorithms][envelope] remove Dimension and DimensionCount template parameters from bg::dispatch::envelope 2015-07-07 04:29:58 +03:00
Menelaos Karavelas
b376567de9 [algorithms][expand] remove Dimension and DimensionCount template parameters from
bg::dispatch::expand
2015-07-07 04:11:21 +03:00
Adam Wulkiewicz
db3474943b [algorithms][strategies] Simplify the geographic geodesic formulas.
Get rid of formulas objects and implement the formulas as a struct
template taking parameters enabling the formula parts (e.g. distance
and/or azimuth) with apply() static member function. This way the code is
more clear as all temporary values are created directly in the algorithms.
Furthermore there are no uninitialized values and it's not required to
keep a flag indicating if the distance or azimuth can be calculated.

Use the new implementation of formulas in geographic distance and side
strategies.

Alter the unit test.
2015-07-06 17:12:02 +02:00
Adam Wulkiewicz
eec0091bc0 [get_turns][strategies] Optimize get_turns().
The optimization is based on the fact that in the most cases the segments
handled in the TurnInfoPolicy are disjoint. For disjoint segments first
the points are rescaled, then the test for disjoint is run, next the
TurnInfoPolicy just returns and the next pair of segments is handled.
Therefore to optimze the get_turns() this commit changes two things:
1. the cart_intersect strategy may return just after the calculation of sides
   for the first segment (2 sides calculation instead of 4),
2. the points are rescaled only one time in the intersection_helper,
   already rescaled points are passed into the intersection strategy
2015-07-03 21:38:43 +02:00
Menelaos Karavelas
67c33b68bb Merge branch 'develop' of github.com:boostorg/geometry into feature/envelope_and_expand_for_spherical_cs 2015-07-03 02:28:13 +03:00
Menelaos Karavelas
bfe3279990 [algorithms][envelope] initialize consistently with assign_inverse() 2015-07-03 00:26:06 +03:00
Menelaos Karavelas
07f0faad7c [test][algorithms][envelope] update results for empty geometries 2015-07-03 00:25:13 +03:00
Menelaos Karavelas
3f80fe7ce6 [test][algorithms][envelope] fix testing of empty geometries 2015-07-03 00:24:45 +03:00
Menelaos Karavelas
921d666227 [test][algorithms][sym_difference] update test results for the sym_difference algorithm 2015-07-02 20:52:42 +03:00
Menelaos Karavelas
4bd96072bc [algorithms][sym_difference] re-factor common code 2015-07-02 20:51:36 +03:00
Adam Wulkiewicz
2fe55e07dd [test][difference] Add failing case. 2015-07-02 12:03:29 +02:00
Adam Wulkiewicz
18607a9b38 [test][is_valid] Add failing case. 2015-07-02 12:03:10 +02:00
Adam Wulkiewicz
2e43017894 [math][policies] Rename round to rounding_cast and remove the use of boost::math::round() for performance reasons. 2015-07-02 12:02:12 +02:00
Menelaos Karavelas
e3e7116c4c [test][algorithms][sym_difference] add very simple unit test for testing the symmetric
difference of two areal geometries
2015-07-02 00:45:31 +03:00
Menelaos Karavelas
8b282aeaf8 [algorithms][sym_difference] implement symmetric difference for areal geometries as follows:
* step 1: compute difference(g1, g2)
* step 2: compute difference(g2, g1)
* step 3: return the union of the two differences in previous two steps (as opposed to returning
          the concatenation of the previous two steps)
2015-07-02 00:43:38 +03:00
Barend Gehrels
b4c598e732 Merge branch 'develop' of https://github.com/boostorg/geometry into develop 2015-07-01 14:03:06 +02:00
Barend Gehrels
b1f208d29c [test] buffer, update expectations and tolerances
(after changing rounding/rescaling)
2015-07-01 14:02:30 +02:00
barendgehrels
a737721bed Merge branch 'develop' of github.com:boostorg/geometry into develop 2015-07-01 12:39:41 +02:00
barendgehrels
4ab0cdc442 [doc] update buffer doc 2015-07-01 12:39:15 +02:00
Adam Wulkiewicz
18ff29297e [index] Add a comment about the Box initialization in pack_create. 2015-07-01 02:55:14 +02:00
Adam Wulkiewicz
b258281b42 Merge pull request #312 from black-tomato/patch-1
Without boost::geometry:: compiler try to use distance defined in my …
2015-06-29 14:26:03 +02:00
black-tomato
8be10f33a3 Without boost::geometry:: compiler try to use distance defined in my custom point class.
Microsoft Visual Studio 2008
2015-06-29 12:26:16 +03:00
Adam Wulkiewicz
d5f6714d28 Result processing test 2015-06-28 21:28:49 +02:00
barendgehrels
63359548bd [doc] update release notes 2015-06-28 12:29:12 +02:00
barendgehrels
8b3072abf5 Merge branch 'bg-prepare' 2015-06-27 15:06:43 +02:00
barendgehrels
8dfe494f94 Merge branch 'develop' into bg-prepare
Conflicts:
	extensions/test/Jamfile.v2
	extensions/test/gis/Jamfile.v2
	extensions/test/gis/io/wkb/read_wkb.cpp
	extensions/test/gis/projections/Jamfile.v2
	extensions/test/gis/projections/projection_epsg.cpp
	extensions/test/gis/projections/projections.cpp
	include/boost/geometry/extensions/contrib/ttmath_stub.hpp
	include/boost/geometry/extensions/gis/geographic/strategies/dms_parser.hpp
	include/boost/geometry/extensions/gis/io/wkb/detail/ogc.hpp
	include/boost/geometry/extensions/gis/io/wkb/detail/parser.hpp
	include/boost/geometry/extensions/gis/io/wkb/utility.hpp
	include/boost/geometry/extensions/gis/projections/factory.hpp
	include/boost/geometry/extensions/gis/projections/impl/aasincos.hpp
	include/boost/geometry/extensions/gis/projections/impl/base_dynamic.hpp
	include/boost/geometry/extensions/gis/projections/impl/base_static.hpp
	include/boost/geometry/extensions/gis/projections/impl/pj_auth.hpp
	include/boost/geometry/extensions/gis/projections/impl/pj_ell_set.hpp
	include/boost/geometry/extensions/gis/projections/impl/pj_fwd.hpp
	include/boost/geometry/extensions/gis/projections/impl/pj_gauss.hpp
	include/boost/geometry/extensions/gis/projections/impl/pj_init.hpp
	include/boost/geometry/extensions/gis/projections/impl/pj_inv.hpp
	include/boost/geometry/extensions/gis/projections/impl/pj_mlfn.hpp
	include/boost/geometry/extensions/gis/projections/impl/pj_phi2.hpp
	include/boost/geometry/extensions/gis/projections/impl/pj_tsfn.hpp
	include/boost/geometry/extensions/gis/projections/impl/proj_mdist.hpp
	include/boost/geometry/extensions/gis/projections/impl/projects.hpp
	include/boost/geometry/extensions/gis/projections/proj/aea.hpp
	include/boost/geometry/extensions/gis/projections/proj/aeqd.hpp
	include/boost/geometry/extensions/gis/projections/proj/airy.hpp
	include/boost/geometry/extensions/gis/projections/proj/aitoff.hpp
	include/boost/geometry/extensions/gis/projections/proj/august.hpp
	include/boost/geometry/extensions/gis/projections/proj/bacon.hpp
	include/boost/geometry/extensions/gis/projections/proj/bipc.hpp
	include/boost/geometry/extensions/gis/projections/proj/boggs.hpp
	include/boost/geometry/extensions/gis/projections/proj/bonne.hpp
	include/boost/geometry/extensions/gis/projections/proj/cass.hpp
	include/boost/geometry/extensions/gis/projections/proj/cc.hpp
	include/boost/geometry/extensions/gis/projections/proj/cea.hpp
	include/boost/geometry/extensions/gis/projections/proj/chamb.hpp
	include/boost/geometry/extensions/gis/projections/proj/collg.hpp
	include/boost/geometry/extensions/gis/projections/proj/crast.hpp
	include/boost/geometry/extensions/gis/projections/proj/denoy.hpp
	include/boost/geometry/extensions/gis/projections/proj/eck1.hpp
	include/boost/geometry/extensions/gis/projections/proj/eck2.hpp
	include/boost/geometry/extensions/gis/projections/proj/eck3.hpp
	include/boost/geometry/extensions/gis/projections/proj/eck4.hpp
	include/boost/geometry/extensions/gis/projections/proj/eck5.hpp
	include/boost/geometry/extensions/gis/projections/proj/eqc.hpp
	include/boost/geometry/extensions/gis/projections/proj/eqdc.hpp
	include/boost/geometry/extensions/gis/projections/proj/fahey.hpp
	include/boost/geometry/extensions/gis/projections/proj/fouc_s.hpp
	include/boost/geometry/extensions/gis/projections/proj/gall.hpp
	include/boost/geometry/extensions/gis/projections/proj/geocent.hpp
	include/boost/geometry/extensions/gis/projections/proj/geos.hpp
	include/boost/geometry/extensions/gis/projections/proj/gins8.hpp
	include/boost/geometry/extensions/gis/projections/proj/gn_sinu.hpp
	include/boost/geometry/extensions/gis/projections/proj/gnom.hpp
	include/boost/geometry/extensions/gis/projections/proj/goode.hpp
	include/boost/geometry/extensions/gis/projections/proj/gstmerc.hpp
	include/boost/geometry/extensions/gis/projections/proj/hammer.hpp
	include/boost/geometry/extensions/gis/projections/proj/hatano.hpp
	include/boost/geometry/extensions/gis/projections/proj/imw_p.hpp
	include/boost/geometry/extensions/gis/projections/proj/krovak.hpp
	include/boost/geometry/extensions/gis/projections/proj/labrd.hpp
	include/boost/geometry/extensions/gis/projections/proj/laea.hpp
	include/boost/geometry/extensions/gis/projections/proj/lagrng.hpp
	include/boost/geometry/extensions/gis/projections/proj/larr.hpp
	include/boost/geometry/extensions/gis/projections/proj/lask.hpp
	include/boost/geometry/extensions/gis/projections/proj/latlong.hpp
	include/boost/geometry/extensions/gis/projections/proj/lcc.hpp
	include/boost/geometry/extensions/gis/projections/proj/lcca.hpp
	include/boost/geometry/extensions/gis/projections/proj/loxim.hpp
	include/boost/geometry/extensions/gis/projections/proj/lsat.hpp
	include/boost/geometry/extensions/gis/projections/proj/mbt_fps.hpp
	include/boost/geometry/extensions/gis/projections/proj/mbtfpp.hpp
	include/boost/geometry/extensions/gis/projections/proj/mbtfpq.hpp
	include/boost/geometry/extensions/gis/projections/proj/merc.hpp
	include/boost/geometry/extensions/gis/projections/proj/mill.hpp
	include/boost/geometry/extensions/gis/projections/proj/mod_ster.hpp
	include/boost/geometry/extensions/gis/projections/proj/moll.hpp
	include/boost/geometry/extensions/gis/projections/proj/natearth.hpp
	include/boost/geometry/extensions/gis/projections/proj/nell.hpp
	include/boost/geometry/extensions/gis/projections/proj/nell_h.hpp
	include/boost/geometry/extensions/gis/projections/proj/nocol.hpp
	include/boost/geometry/extensions/gis/projections/proj/nsper.hpp
	include/boost/geometry/extensions/gis/projections/proj/nzmg.hpp
	include/boost/geometry/extensions/gis/projections/proj/ob_tran.hpp
	include/boost/geometry/extensions/gis/projections/proj/ocea.hpp
	include/boost/geometry/extensions/gis/projections/proj/oea.hpp
	include/boost/geometry/extensions/gis/projections/proj/omerc.hpp
	include/boost/geometry/extensions/gis/projections/proj/ortho.hpp
	include/boost/geometry/extensions/gis/projections/proj/poly.hpp
	include/boost/geometry/extensions/gis/projections/proj/putp2.hpp
	include/boost/geometry/extensions/gis/projections/proj/putp3.hpp
	include/boost/geometry/extensions/gis/projections/proj/putp4p.hpp
	include/boost/geometry/extensions/gis/projections/proj/putp5.hpp
	include/boost/geometry/extensions/gis/projections/proj/putp6.hpp
	include/boost/geometry/extensions/gis/projections/proj/robin.hpp
	include/boost/geometry/extensions/gis/projections/proj/rouss.hpp
	include/boost/geometry/extensions/gis/projections/proj/rpoly.hpp
	include/boost/geometry/extensions/gis/projections/proj/sconics.hpp
	include/boost/geometry/extensions/gis/projections/proj/somerc.hpp
	include/boost/geometry/extensions/gis/projections/proj/stere.hpp
	include/boost/geometry/extensions/gis/projections/proj/sterea.hpp
	include/boost/geometry/extensions/gis/projections/proj/sts.hpp
	include/boost/geometry/extensions/gis/projections/proj/tcc.hpp
	include/boost/geometry/extensions/gis/projections/proj/tcea.hpp
	include/boost/geometry/extensions/gis/projections/proj/tmerc.hpp
	include/boost/geometry/extensions/gis/projections/proj/tpeqd.hpp
	include/boost/geometry/extensions/gis/projections/proj/urm5.hpp
	include/boost/geometry/extensions/gis/projections/proj/urmfps.hpp
	include/boost/geometry/extensions/gis/projections/proj/vandg.hpp
	include/boost/geometry/extensions/gis/projections/proj/vandg2.hpp
	include/boost/geometry/extensions/gis/projections/proj/vandg4.hpp
	include/boost/geometry/extensions/gis/projections/proj/wag2.hpp
	include/boost/geometry/extensions/gis/projections/proj/wag3.hpp
	include/boost/geometry/extensions/gis/projections/proj/wag7.hpp
	include/boost/geometry/extensions/gis/projections/proj/wink1.hpp
	include/boost/geometry/extensions/gis/projections/proj/wink2.hpp
	include/boost/geometry/extensions/gis/projections/project_inverse_transformer.hpp
	include/boost/geometry/extensions/gis/projections/projection.hpp
	include/boost/geometry/extensions/index/rtree/rtree.hpp
	include/boost/geometry/extensions/iterators/segment_returning_iterator.hpp
	include/boost/geometry/extensions/nsphere/index/detail/rtree/linear/redistribute_elements.hpp
	include/boost/geometry/extensions/nsphere/strategies/cartesian/point_in_nsphere.hpp
2015-06-27 12:35:52 +02:00
barendgehrels
dd347254d1 [test] remove conditional from spike30 (round) because output is OK 2015-06-27 12:31:28 +02:00
barendgehrels
4025867a85 [test] pending changes/fixes in SVG generation 2015-06-27 12:30:56 +02:00
barendgehrels
2357569dac [test] fix removed method 2015-06-27 12:16:00 +02:00
barendgehrels
c3f1eb9b06 [test] remove two conditionals because these cases now also succeed,
either after selecting IP differently, or after rescale/rounding (or both)
2015-06-27 12:12:21 +02:00
barendgehrels
ea940461d9 [test] move SVG creation upwards to avoid invalid SVG if buffered result is empty 2015-06-27 12:04:54 +02:00
barendgehrels
606cb236af [buffer][test] update expected values after change to rounding in rescaling,
and increased the tolerance.
Largest difference was 1.3e-05% (it100 deflate, 9087m2) and results are checked visually
2015-06-27 12:04:10 +02:00
barendgehrels
f77f0652b1 [buffer] update expected values and tolerance for mikado3 case 2015-06-27 11:44:12 +02:00
Adam Wulkiewicz
3db50a42ec [intersection][test] Alter the expected result one case.
With MSVC and MinGW the results are quite different so pick a value
between the ones calculated with those two compilers.
2015-06-25 20:18:25 +02:00
Adam Wulkiewicz
5fa509783d [buffer][test] Alter the expected result and tolerance for one MLs case.
Increase the tolerance two times. With MSVC and MinGW the results are so
different that the currently used tolerance is too small.
2015-06-25 18:51:33 +02:00
Adam Wulkiewicz
5c03dd10d6 [union] Update expected test results, syncronize with the change in rescale policy (rounding). 2015-06-25 17:29:56 +02:00
Adam Wulkiewicz
f1d39a4385 [intersection] Update expected test results, syncronize with the change in rescale policy (rounding). 2015-06-25 17:29:40 +02:00
Adam Wulkiewicz
dddc0bb055 [difference] Update expected test results, syncronize with the change in rescale policy (rounding). 2015-06-25 17:29:24 +02:00
Adam Wulkiewicz
c372b628d1 [overlay] Update expected test results, syncronize with the change in rescale policy (rounding). 2015-06-25 17:28:57 +02:00