Commit Graph

3957 Commits

Author SHA1 Message Date
barendgehrels
ff79fe7bd0 [traverse][debug] change debug info for candidates and re-add them in cc 2017-03-22 12:08:29 +01:00
barendgehrels
273d1bf4a1 [overlay] pending commit, add strategy to self_turns 2017-03-22 11:51:51 +01:00
barendgehrels
0f9ab8b23a [traverse] Fix remaining distance, like when starting, cc should get first
turn (#mysql_23023665 in buffer).
This also fixes overriding when traverse is not possible (no testcase)
2017-03-22 11:50:36 +01:00
barendgehrels
ace8bdb7f0 [overlay] discard ii turns where two interior rings touch, for union operations.
This fixes case #80. Also, added case #105, testing that in a different way
(limiting solutions)
2017-03-18 20:17:22 +01:00
barendgehrels
404bd889f5 [traverse] fix case #129/rec boxes_4 by avoiding finalized operations in aggregation 2017-03-13 17:44:28 +01:00
barendgehrels
3cb3d373fb [traverse] remove unused visited_regions parameter 2017-03-13 17:29:37 +01:00
barendgehrels
f9e2119d32 Merge branch 'develop' into feature/intvalid
# Conflicts:
#	include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp
#	test/algorithms/set_operations/intersection/test_intersection.hpp
2017-03-13 16:22:58 +01:00
barendgehrels
a826d5b536 [get_turns] fix: fix distance_measure 2017-03-13 16:09:18 +01:00
barendgehrels
32c422f745 [traverse] fix case #130, starting with cc, using remaining_distance 2017-03-13 15:36:13 +01:00
barendgehrels
5fbf6358bd [overlay] move get_next_turn_index to method of enrichment info, to reuse it later 2017-03-13 15:33:14 +01:00
barendgehrels
1b5fb4444e [traverse] Major commit. Avoid discarding ii turn on interior rings. Detect isolatated
regions (usually inner rings) differently: only once instead of on the
fly, and store it. Set visited in clusters for all parts of the cluster.
2017-03-13 10:52:27 +01:00
Adam Wulkiewicz
51f85b6fe2 [partition] Replace size()==0 with empty() and size()>0 with !empty(). 2017-03-12 00:04:07 +01:00
Adam Wulkiewicz
fd72a1aa16 [algorithms] Support interruption of partition().
- partition() is interrupted if visitor.apply() returns false.
- This mechanism is used instead of throwing self_ip_exception in
  1-geometry (self) get_turns implementation.
2017-03-09 05:40:20 +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
barendgehrels
e2781e147a Merge branch 'develop' into feature/intvalid
# Conflicts:
#	include/boost/geometry/algorithms/detail/overlay/overlay.hpp
#	include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp
#	include/boost/geometry/algorithms/intersects.hpp
#	include/boost/geometry/algorithms/touches.hpp
2017-02-25 20:01:08 +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
barendgehrels
676aa45c6c Minor changes 2017-02-22 09:40:44 +01:00
barendgehrels
caf0b9f7e9 [traverse] fix validity when two holes meet eachother and exlude an
area which should become a separate ring (#43), by passing the already visited
region_ids (which make them less local). It does not solve #35 yet.
2017-02-18 13:32:46 +01:00
barendgehrels
0d95185060 [traverse] fix cases where isolated regions have more turns in between
(cases #41/#128)
2017-02-17 16:24:52 +01:00
barendgehrels
5223efcd58 [traverse] fix operation index 2017-02-17 16:14:45 +01:00
barendgehrels
3fa70829d3 [traverse] fix bug in new code, should have been rwd.turn_index 2017-02-17 11:27:32 +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