Commit Graph

2628 Commits

Author SHA1 Message Date
Adam Wulkiewicz
ece229983f [algorithms] Add iterations counter to vincenty_inverse for robustness. 2014-12-06 19:34:56 +01:00
Adam Wulkiewicz
e3a7bce127 [strategies] Add side_by_azimuth agnostic strategy. 2014-11-25 01:14:00 +01:00
Adam Wulkiewicz
bf60a40dfd [algorithms] Add bg::detail::azimuth() algorithm. 2014-11-25 01:13:13 +01:00
Adam Wulkiewicz
545c58a824 [strategies] Move andoyer and vincenty distance strategies from extensions. 2014-11-24 22:51:58 +01:00
Adam Wulkiewicz
f1eb897615 [extensions][test] Fix reverse azimuth calculation and tests for vincenty strategy and vincenty_inverse.
Enable tests for reverse azimuth.
Add more tests.
2014-11-21 01:18:25 +01:00
Adam Wulkiewicz
e2f2a90054 [extensions] Tweak a formula calculating u^2 in vincenty inverse.
Use lesser number of operations, theoretically it should also be more precise.
Modify tests to expect units used in spheroid, not always kilometers.
2014-11-20 17:21:59 +01:00
Adam Wulkiewicz
4a45d0eef6 [extensions] Optimize part of vincenty_inverse and add more tests.
Replace trigonometric functions (6 calls) with identity using sqrt (2
calls).

One new test is failing. The tests for azimuth21 are still disabled.
2014-11-20 16:26:24 +01:00
Adam Wulkiewicz
96153340a5 [extensions] Add tests for vincenty inverse formula azimuths calculation (only 1->2 enabled for now). 2014-11-20 04:37:45 +01:00
Adam Wulkiewicz
b18ba98934 [extensions] Rewrite vincenty formula algorithm to allow calculation of azimuths.
Enclose the formula in vincenty_inverse class, calculate the common part in the ctor, allow calculating of distance and azimuths using member functions.

Use this new implementation in vincenty distance strategy.
2014-11-20 01:42:07 +01:00
Adam Wulkiewicz
2ce1e45ed6 [extensions] Move vincenty inverse formula (distance) algorithm into separate file. 2014-11-20 00:36:48 +01:00
Adam Wulkiewicz
11d627808a Merge pull request #160 from awulkiew/fix/read_wkt
Fix/read wkt
2014-11-19 17:57:48 +01:00
Adam Wulkiewicz
fa0986c1b3 Merge pull request #181 from awulkiew/feature/geographic
Feature/geographic
2014-11-19 17:49:28 +01:00
Adam Wulkiewicz
8de33edb16 [core] Replace radius access 1-character tparams names with meaningful words. 2014-11-19 17:48:36 +01:00
Adam Wulkiewicz
202a9939f1 [core] Move spheroid and sphere from cs::model to srs namespace.
Change reference_sphere_tag and reference_spheroid_tag to srs_sphere_tag
and srs_spheroid_tag respectively.
Adapt algorithms, strategies and tests to the new namespace and tags.
2014-11-19 16:21:51 +01:00
Barend Gehrels
e24bede36a [warn] avoid unused variable warning in distance concept 2014-11-19 15:22:07 +01:00
Barend Gehrels
43c19312a3 [buffer][overlay][fix] Fix order in tangencies iu/iu case 2014-11-19 15:21:30 +01:00
Barend Gehrels
3ca0aa80fe [overlay] change default_order using index instead of address 2014-11-19 15:19:29 +01:00
Barend Gehrels
c37a66419c Merge branch 'develop' of github.com:boostorg/geometry into develop 2014-11-19 13:07:07 +01:00
Barend Gehrels
d71a67d93c [buffer] Performance boost: added trivial check which in some cases
can speed up the buffer process 50%
2014-11-19 13:06:56 +01:00
Adam Wulkiewicz
78a890efdd [index] Replace struct with class keyword in specialization of allocators<> for variant-based static-size node. 2014-11-19 02:33:31 +01:00
Adam Wulkiewicz
d36f40b6b3 [algorithms][extensions] Add detail flattening() algorithm and use it in andoyer and vincenty strategies. 2014-11-17 20:03:39 +01:00
Adam Wulkiewicz
1d4b7d7102 [core] In spheroid, replace if with ?: operator. 2014-11-17 19:35:23 +01:00
Adam Wulkiewicz
17f4453330 [index] Remove unneeded create_node<> specializations. 2014-11-17 15:50:01 +01:00
Adam Wulkiewicz
8ff9d6fd5d [index] Remove unneeded file. 2014-11-17 14:30:42 +01:00
Adam Wulkiewicz
2b1d7e3767 [extensions] Use Spheroid in andoyer and vincenty strategies.
Replace RadiusType template parameter of those strategies with Spheroid.
Replace member function radius() with model() and typedef radius_type with
model_type.
Use get_radius(), calculate flattening "manually".
Tweek calculations (conversion warnings, common multiplier).
Remove detail::ellipsoid<>.
2014-11-17 02:27:47 +01:00
Adam Wulkiewicz
694aaa9d31 [core] Add sphere and spheroid reference models.
Add new tags for reference sphere/spheroid concepts.
Add cs::model::sphere<> and cs::model::spheroid<>.
Add get_radius(), set_radius() and radius_type<> functions/metafunctions.

Add tests.

Refactor [extensions] nsphere to use the official functions.
2014-11-16 18:26:48 +01:00
Barend Gehrels
9a9e16f936 [buffer] major fix: we now create concave helper-pieces differently
In the past there was one with a straight line going from one piece to the next.
Now there are two, going from one piece to the point on the geometry, and the
second going from the point on the geomety to the next piece.
They are now zero-volume.
They fix:
1) crossings of sides with flat-ends (unit-test cases curve, field_sprayer, bend_near_start)
2) joins with limited number of points (unit-test cases concave_b_rough, italy_part, nl_part)
3) joins with large distances
4) many self-intersections on remaining aimes-cases
2014-11-12 13:59:29 +01:00
Barend Gehrels
1fcdbc7c54 [buffer] small change, use Piece i.o. typename .... 2014-11-12 13:43:54 +01:00
Barend Gehrels
36f47c4638 [buffer] fix error in comment 2014-11-12 13:40:19 +01:00
Barend Gehrels
37519ab36a Merge branch 'develop' of github.com:boostorg/geometry into develop 2014-11-12 13:36:13 +01:00
Adam Wulkiewicz
226272833b [extensions] Remove unneeded constructors from andoyer strategy and ellipsoid. 2014-11-12 11:46:24 +01:00
Adam Wulkiewicz
2fbe01ae46 [extensions] Fix ellipsoid one-argument ctor. 2014-11-12 01:10:15 +01:00
Barend Gehrels
472346704d [buffer] reverse negative rings if necessary (for concave pieces and
one-sided buffers)
2014-11-09 17:01:31 +01:00
Barend Gehrels
a62e2d2e84 [buffer][performance] add boolean to indicate concave rings:
in non concave rings, no turn calculation is necessary
2014-11-09 17:00:56 +01:00
Menelaos Karavelas
6defb7643a [strategies][concepts][distance strategies] polish code in various places;
add missing checks in point-segment distance strategy concept;
add BOOST_MPL_ASSERTs to check for the possible value(s) of the strategy tags;
2014-11-07 12:35:42 +02:00
Menelaos Karavelas
ffb90fcc48 [strategies][spherical][cross_track] fix return type in result_from_distance meta-struct 2014-11-07 12:34:03 +02:00
Barend Gehrels
8c75d81fff [overlay] fix behaviour of u/u turns for difference. This fixes
the assemble unit test which broke in earlier commits today
2014-11-06 18:54:55 +01:00
Barend Gehrels
16fb689217 [overlay] fix indexing in range which was wrong for open polygons (ticket #10719) 2014-11-06 16:49:51 +01:00
Barend Gehrels
4bb18c982e [overlay] ticket #10719 add safety checks 2014-11-06 16:36:54 +01:00
Barend Gehrels
c5417f6f43 [overlay] fix ticket #10108: rings only touching should check for u/u turns
and don't call point_on_border because that might be located on the border of the
other geometry. This also avoids passing the mid_point boolean, and including
within_code in ring_properties
2014-11-06 14:29:35 +01:00
Barend Gehrels
552ff581d4 [overlay] 'fix' wrong name Code to Properties 2014-11-06 11:13:23 +01:00
Barend Gehrels
d6201ef573 [overlay] refactor counting turns
This prepares next phase where we handle uu separately
2014-11-06 11:02:39 +01:00
Barend Gehrels
a758552c5d [overlay] rename variables in selection map 2014-11-05 22:41:53 +01:00
Barend Gehrels
347eaa580c [extensions][dissolve] use rescaling for dissolve, see ticket 10713 2014-11-05 13:59:08 +01:00
Barend Gehrels
690427a135 [buffer] re-add count which is still used if occupation info is used 2014-11-05 13:39:57 +01:00
Barend Gehrels
448040613d [overlay][fix] fix rescaling when coordinate-differences are larger than recaling range,
which is unfortunately slipped through. This fixes ticket #10747
2014-11-05 13:38:12 +01:00
Menelaos Karavelas
8daa62a3be [strategies][cartesian][cart_intersect] update copyright notice 2014-11-05 08:50:40 +02:00
Adam Wulkiewicz
f0c5554190 Merge pull request #129 from mkaravel/feature/disjoint-1.57
Feature/disjoint 1.57
2014-11-04 22:25:35 +01:00
Menelaos Karavelas
b2683f48f2 [strategies][cartesian][cart_intersect] fix bug in Cartesian segment-segment
intersection strategy;
Bug: when exactly one segment degenerates to a point and is collinear with
the other segment, the strategy always sets the intersection count to 1;
Fix: check if the degenerate segment lies within the non-degenerate one
before setting the intersection count; if the point is outside the non-degenerate
segment declare the two segments as disjoint;
2014-11-04 22:02:47 +02:00
Menelaos Karavelas
7b3ced0c6a Merge branch 'develop' of https://github.com/boostorg/geometry into feature/disjoint-1.57 2014-11-04 15:16:42 +02:00