Commit Graph

3818 Commits

Author SHA1 Message Date
Adam Wulkiewicz
fe2bdfd169 [disjoint] Rename PiGStrategy to Strategy. 2017-02-07 20:11:45 +01: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
barendgehrels
8fa80c52b4 Rename op to turn_op to avoid warning 2017-01-18 10:05:56 +01:00
Adam Wulkiewicz
0421a06af5 [policies] Always use FP type for approximation in segment_ratio. 2017-01-06 00:13:01 +01:00
Adam Wulkiewicz
4a488821ab [strategies] Add missing QVM include in matrix_transformers.hpp. 2017-01-04 17:27:03 +01:00
barendgehrels
f334af7d78 [transform] rename ublas_transformer to matrix_transformer 2017-01-04 15:38:43 +01:00
barendgehrels
138879adb9 [transform] use qvm instead of ublas 2017-01-04 11:55:56 +01:00
Oliver Keyes
2be2272e86 Grammar fix
Should presumably be 'too many tokens' rather than 'too much tokens'
2017-01-01 11:50:19 -08:00
Adam Wulkiewicz
676e061978 [index] Add missing equals<> specialization in details of equal_to<>. 2016-12-28 03:44:12 +01:00
Adam Wulkiewicz
b8b1cc5c6b [index] Add missing #includes in parameters.hpp 2016-12-27 16:29:19 +01:00
Adam Wulkiewicz
c5b7468291 [relate] Fix compilation error when both geometries use different point types. 2016-12-27 15:21:24 +01:00
barendgehrels
57250a3fdd [overlay] fix regression (duplicate polygons) due to last enhancements
in validity of intersections
2016-12-07 13:12:03 +01:00
barendgehrels
8d64bb39c2 [overlay] minor, fix indentation 2016-12-07 13:08:11 +01:00
barendgehrels
809e48ae63 Merge branch 'feature/intvalid' into develop 2016-11-30 13:32:37 +01:00
barendgehrels
efecc02866 [traverse] fix certain cases to recognize starting point during intersection
in a broader context
2016-11-30 12:56:48 +01:00
barendgehrels
3c58f15105 [traversal] handle non clustered ii turns using sort-by-side 2016-11-23 17:35:29 +01:00
Barend Gehrels
954bd1b847 Fix github issue #365 : duplicate symbols
Reported as https://github.com/boostorg/geometry/issues/365
2016-11-09 10:18:28 +01:00
Barend Gehrels
9b7ddf85cc [overlay] avoid warning about same_multi1 which is technically redundant
because of template parameter values
2016-11-09 09:30:53 +01:00
Barend Gehrels
71d1d75835 add comment 2016-11-02 15:55:54 +01:00
Barend Gehrels
70e20ddd27 [overlay] fix some validity cases for intersection/difference 2016-11-02 15:55:30 +01:00
Barend Gehrels
794b168817 [overlay] add information about if it is the only turn on a ring, to each op (enriched) 2016-11-02 12:52:46 +01:00
Patrick J. LoPresti
decd1dad72 Silence unused parameter warning from GCC/Clang. 2016-10-21 14:53:10 -07:00
Barend Gehrels
843ddb79bf [overlay] add all_to to ragne aggregation 2016-10-19 17:12:51 +02:00
Barend Gehrels
121db33f47 [overlay] add new algorithm to aggregate sort_by_side output per rank, using
incoming/outgoing rings. Usage of this algorithm not yet committed.
2016-10-12 17:58:26 +02:00
Barend Gehrels
c0fdfb3ceb Merge pull request #357 from norbertwenzel/std_array_point_adaptor
Add C++11 std::array point adaptor
2016-10-05 23:34:25 +02:00
Norbert Wenzel
87cc067e04 Add std::array point geometry adaptor
Copied geometries/adapted/boost_array.hpp to std_array.hpp and changed
array type. No checks for availability of std::array are done. Simply
do not include that file when there is no C++11 std::array available.
2016-10-02 12:21:17 +02:00
Barend Gehrels
26ae7f5bfa [validity] set is_touching for intersection too. Reverse should be done
for intersection too, but that does not work yet.
2016-09-28 15:41:01 +02:00
Barend Gehrels
9201064990 [validity] fix zone count for intersection operations 2016-09-28 12:22:52 +02:00
Barend Gehrels
0d5cf50d97 [colocations] handle todo item, use count from ranked point 2016-08-31 14:07:37 +02:00
Barend Gehrels
e3b424940c [traverse] handle ii as uu for switch_source,
this makes several intersection testcases valid,
and makes one difference case invalid
2016-08-31 13:43:59 +02:00
Barend Gehrels
0ece0dfc75 [intersection] remove the two passes because this is now handled before
by the traversal_switch_detector
2016-08-31 11:44:32 +02:00
Adam Wulkiewicz
0fb9e297ac [algorithms] Fix covered_by() Point/Box and Box/Box in geographic CS. 2016-08-27 02:33:52 +02:00
Adam Wulkiewicz
2f45b5a403 [index] Remove unnecessary includes cycle. 2016-08-22 13:41:56 +02:00
Adam Wulkiewicz
509cb089a5 Merge pull request #355 from awulkiew/feature/geo_intersection
Geographic formulas
2016-08-13 19:38:50 +02:00
Barend Gehrels
7fc45bef3f Avoid using std::cout (unless we debug), ticket #12289 2016-08-12 10:24:50 +02:00
Barend Gehrels
d8ebd49a70 Remove warnings about operation_index, cluster_index 2016-08-12 10:08:20 +02:00
Adam Wulkiewicz
41346c1534 [formulas] Handle special cases, replace temporary constants.
Suppress warnings.
Improve style.
2016-08-11 17:27:25 +02:00
Barend Gehrels
3ce8872b68 [traverse] remove uused type warning 2016-08-10 09:54:57 +02:00
Barend Gehrels
25dbd863e1 Merge pull request #353 from jhunold/set_type
Fix int vs. signed_size_type mismatch
2016-08-03 08:18:13 +02:00
Adam Wulkiewicz
4524125c7f [formulas] Suppress unused variable warnings. 2016-08-02 21:53:30 +02:00
Adam Wulkiewicz
640e91c96a [formulas] Fix and improve accuracy of thomas_direct formula.
Handle special case of azimuth12 in {0, -180, 180} deg.
If |azimuth12| > pi flip the geodesic vertically to keep the azimuth
closer to 0.
Tests showed that if azimuth12 is close to 180 the accuracy is low.
2016-08-02 16:44:19 +02:00
Adam Wulkiewicz
fc1b50b6ef [formulas] Add geographic segments intersection formula using spheroidal gnomonic projection. 2016-07-31 02:48:05 +02:00
Adam Wulkiewicz
39ea7f4bc8 [formulas] Handle geodesics lying on equator in Thomas direct. 2016-07-30 04:20:13 +02:00
Adam Wulkiewicz
2a426d2211 [formulas] Handle segments lying on equator in Sjoberg's intersection. 2016-07-30 04:16:40 +02:00