Commit Graph

3916 Commits

Author SHA1 Message Date
Adam Wulkiewicz
4e1c644563 [algorithms][io] Throw exceptions using BOOST_THROW_EXCEPTION. 2017-03-08 22:39:08 +01:00
Adam Wulkiewicz
7b5db5b06b [strategies] Replace InverseFormula with FormulaPolicy in geographic strategies.
- Add strategy::andoyer, strategy::thomas and strategy::vincenty policies.
- By default use strategy::andoyer in all strategies consistently.
- Further improve the consistency of parameters by adding default
  Spheroid = srs::spheroid<double> where it's missing.
2017-03-07 20:09:37 +01:00
Adam Wulkiewicz
5985e49d2b [strategies] Rename files in order to make them more consistent across coordinate systems.
CS/algorithm_CS.hpp -> CS/algorithm.hpp
cartesian/cart_intersect.hpp -> cartesian/intersection.hpp
geographic/intersection.hpp -> geographic/intersection_elliptic.hpp
geographic/geodesic_intersection.hpp -> geographic/intersection.hpp
2017-03-07 17:52:54 +01:00
Adam Wulkiewicz
d113eb8cfd [strategies] Improve consistency of strategies.
- In every geographic strategy use the same order of template parameters:
  Formula[, Order], Spheroid, CalculationType.
- Calculate default Order based on Formula.
- Remove ExpandEpsN and LongSegment from template parameters.
- Make strategies' constructors explicit
- Rename relate_cartesian_segments to cartesian_segments,
  relate_geodesic_segments to geographic_segments,
  relate_spherical_segments to spherical_segments, etc.
- Use radius 1 by default in area::spherical strategy for backward
  compatibility.
2017-03-07 16:54:09 +01:00
Adam Wulkiewicz
95a982e492 [core] Improve accuracy of default srs::sphere radius being mean Earth's radius. 2017-03-07 16:49:25 +01:00
Adam Wulkiewicz
62acebb640 [algorithms] Update doc-related description of set operations, is_simple and is_valid.
Distinguish between versions taking and not taking strategies.
2017-03-05 20:22:01 +01:00
Adam Wulkiewicz
db052113a8 [area][strategies] Update doc-related description of area() and related strategies. 2017-03-05 20:19:12 +01:00
Adam Wulkiewicz
d8513265a2 [strategies] Fix compilation errors in geodesic_intersection.
Remove static keyword from strategies getters.
Rename template parameter to avoid shadowing.
2017-03-02 19:24:05 +01:00
Adam Wulkiewicz
a06e6bbb79 [strategies] Rename strategy side::detail::by_azimuth to side::geographic. 2017-03-02 19:23:31 +01:00
Adam Wulkiewicz
6f733b64a9 [index] Add explicit modifier to dynamic_* parameters ctors. 2017-03-02 19:20:49 +01:00
Adam Wulkiewicz
bdd2d2c60c [formula] Fix errors in inverse formulas (manifesting near poles).
vincenty - fix error in formula (missing sqr)
differential_quantities - fix error in formula (wrong equation and lack of normalization)
andoyer - wrong azimuth at south pole
2017-03-02 16:54:36 +01:00
Adam Wulkiewicz
3f7b2ecb35 [strategies] Add area and distance strategies getters to geodesic intersection strategy.
Also fix typos.
2017-02-27 19:30:02 +01:00
Adam Wulkiewicz
98546ec1dd [strategies] Add general geographic distance strategy taking formula and use it in existing strategies. 2017-02-27 19:12:41 +01:00
Adam Wulkiewicz
0e0f432f27 Merge branch 'develop' into feature/geo_intersection2 2017-02-27 14:44:18 +01:00
Adam Wulkiewicz
447db8358b Merge pull request #381 from awulkiew/feature/setops_strategies
Strategies and variant support in set operations, is_valid and is_simple.
2017-02-27 14:35:16 +01:00
Adam Wulkiewicz
54e29a5157 Merge pull request #322 from meastp/add_read_multi_wkb
Support for reading and writing Multi-geometries
2017-02-26 20:09:49 +01:00
Adam Wulkiewicz
f9d9cc2178 [relops] Alter doc comments (versions taking strategies). 2017-02-26 01:37:54 +01:00
Adam Wulkiewicz
b03da047a8 [index] Add workaround for libstdc++ bug (gcc 4.8.2) - segfault in nth_element. 2017-02-25 18:50:13 +01:00
Adam Wulkiewicz
682cb65f62 [equals] Use area and distance strategies in equals() TrivialCheck. 2017-02-17 05:04:03 +01:00
Adam Wulkiewicz
b3da05740a [is_valid] Add support for strategies. 2017-02-17 05:03:11 +01:00
Adam Wulkiewicz
6bd28d96e6 [is_simple] Add support for strategies. 2017-02-17 05:02:57 +01:00
Adam Wulkiewicz
6f7beaf01a [setops] Support strategies in intersection, difference, sym_difference and union_. 2017-02-17 05:00:57 +01:00
Adam Wulkiewicz
e95d85c552 [strategies] Add area and pt-pt distance strategies getters to intersection strategies. 2017-02-17 04:58:45 +01:00
Adam Wulkiewicz
376f777f58 [strategies] Fix compilation error in spherical area strategy. 2017-02-09 16:42:08 +01:00
Adam Wulkiewicz
18a2ed317d Merge pull request #379 from vissarion/feature/fix_envelope
[envelope] [test] Fix the envelope algorithm and add corrected values to tests
2017-02-08 14:32:45 +01:00
Vissarion Fysikopoulos
410536e331 [envelope] [test] Fix the envelope algorithm and add corrected values to tests 2017-02-08 15:18:49 +02:00
Adam Wulkiewicz
7a76400754 [strategies] Store and use Spheroid model object in relate_geodesic_segments strategy. 2017-02-07 23:59:50 +01:00
Adam Wulkiewicz
40cb0f9490 Merge branch 'develop' into feature/geo_intersection2
Conflicts:
	include/boost/geometry/algorithms/detail/azimuth.hpp
	include/boost/geometry/formulas/spherical.hpp
	include/boost/geometry/strategies/spherical/intersection.hpp
	include/boost/geometry/strategies/strategies.hpp
	test/strategies/segment_intersection_sph.cpp

Also modify the interface of relate_geodesic_segments intersection
strategy - take Policy by apply() function argument.
2017-02-07 23:21:26 +01:00
Adam Wulkiewicz
98a655bf42 Merge pull request #378 from awulkiew/feature/relops_strategies
Support for strategies in relational operations.
2017-02-07 20:13:58 +01:00
Adam Wulkiewicz
fe2bdfd169 [disjoint] Rename PiGStrategy to Strategy. 2017-02-07 20:11:45 +01:00
Adam Wulkiewicz
6a1d758416 [formulas][strategies] Propagate Spheroid model from envelope strategy to vertex_latitude formula. 2017-02-07 14:22:33 +01:00
Adam Wulkiewicz
cb35d55b9e [algorithms] Add missing header in detail/azimuth. 2017-02-07 14:21:24 +01:00
Adam Wulkiewicz
98dfb5c349 [formulas] Fix std::min and std::max calls in area_formulas. 2017-02-07 14:20:34 +01:00
Adam Wulkiewicz
13199da09e [envelope] Fix return_envelope, pass missing strategy to resolve_variant::envelope::apply(). 2017-02-07 03:52:33 +01:00
Adam Wulkiewicz
99221ba09c Merge pull request #367 from vissarion/feature/envelope_expand_geo
Feature/envelope expand geo
2017-02-06 22:54:20 +01:00
Adam Wulkiewicz
4e80fab8d9 [strategies] Replace get_radius member function with free function call in geographic area strategy. 2017-02-06 13:52:02 +01:00
Vissarion Fisikopoulos
436c589f41 Merge branch 'develop' into feature/envelope_expand_geo 2017-02-02 13:41:34 +02:00
Vissarion Fysikopoulos
dbe31d9428 [envelope] Resolve conflicts 2017-02-02 13:25:56 +02:00
Adam Wulkiewicz
c277a6c99a Merge pull request #359 from vissarion/feature/area
Feature/area
2017-02-02 00:49:33 +01:00
Vissarion Fysikopoulos
cbf0dd77bf [area] Minor clean of comment 2017-02-01 20:15:42 +02:00
Vissarion Fysikopoulos
fd12b69ee6 [area] Addressing comments 2017-01-31 17:55:00 +02:00
Vissarion Fysikopoulos
99c001873d [envelope] Move envelope computation back to algorithm level 2017-01-31 17:35:48 +02:00
Adam Wulkiewicz
55e30d6ad9 Merge branch 'develop' into feature/relops_strategies
Conflicts:
	test/iterators/point_iterator.cpp
2017-01-30 03:07:35 +01:00
Adam Wulkiewicz
d067073c69 [algorithms][strategies] Add missing includes, suppress warnings. 2017-01-29 13:20:05 +01:00
Adam Wulkiewicz
cd14e16b0c [buffer] Adapt buffer to the new interfaces of internal utilities.
Internals being default_strategy services, get_turns and partition.
2017-01-28 04:08:32 +01:00
Adam Wulkiewicz
c62cc56df2 [algorithms] Adapt overlay and set operations to new interfaces of internals.
Internals being default_strategy services, get_turns and partition.
2017-01-28 04:07:00 +01:00
Adam Wulkiewicz
85ea847ee1 [algorithms][strategies] Add support for strategies in relational operations.
- add overloads for all relational operations taking strategy.
- change the interface of get_turns, take strategy.
- change the interface of partition, take overlap and expand policies as
  function parameters instead of struct template parameters.
- specialize collect vectors by Side strategy and use this equals()
  optimization only if it's compatible with passed side strategy.
- move the implementation of disjoint Segment/Box from algorithm to
  strategy.
- add default_strategy service for relate, defining intersection or
  within/covered_by strategies depending on input geometries.
- add default strategy service for disjoint, defining relate or specific
  disjoint strategies.
2017-01-28 04:02:31 +01:00
Adam Wulkiewicz
569da3cc53 [strategies] Modify the interface of winding strategy and tweak within/covered_by default_strategy service.
Winding strategy now takes side strategy as template parameter and in
constructor.
default_strategy now casts geometry tags for both geometries and into more
tags so strategies may be dispatched more conveniently.
2017-01-28 03:46:28 +01:00
Adam Wulkiewicz
d70b1ce843 [strategies] Change interface of intersection strategies.
Instead of taking Policy as struct template parameter take it as apply()
method parameter.
Add members defining types of and returning point_in_geometry and side
strategies.
Make intersection strategies default within/covered_by strategies for L/L,
L/A and A/A geometries.
2017-01-28 02:40:59 +01:00
Vissarion Fysikopoulos
930719bad3 [area] Rename area strategy namespace 2017-01-27 19:41:27 +02:00