Commit Graph

8536 Commits

Author SHA1 Message Date
Menelaos Karavelas
6fb6863711 [test][algorithms][intersection] add one more test case 2015-09-03 20:01:12 +03:00
Menelaos Karavelas
979b6cda7c [test][algorithms][intersection] add messages in debug mode 2015-09-03 20:00:43 +03:00
Menelaos Karavelas
a19ef71c5e [test][algorithms][difference] add one more test case for difference(L,A) 2015-09-03 15:34:49 +03:00
Menelaos Karavelas
267b54a2ca [test][algorithms][intersection] add more test cases for intersection(L,A) 2015-09-03 15:06:25 +03:00
Menelaos Karavelas
ce7bf46d35 [test][algorithms][difference] add more test cases for difference(L,A) 2015-09-03 15:05:15 +03:00
Menelaos Karavelas
290688c502 [algorithms][difference][intersection] modify intersection and difference algorithm
for L and A geometries to keep (instead of discarding) spikes of liear geometries
2015-09-03 15:04:00 +03:00
Barend Gehrels
45f32bee3b [handle_touch] process operation_continue and added corresponding testcases,
and test cases having u/u from union_multi.cpp
2015-09-02 16:09:49 +02:00
Barend Gehrels
16967cc7f8 [overlay] add handle_touch to examine u/u turns
First phase: check if a u/u turn should be traversed or discarded, including
unit test
2015-09-02 14:27:19 +02:00
Jeremy W. Murphy
a830e16723 Split pj units at divisor, support fractional multipliers.
Use std::atof rather than global namespace atof.
2015-08-30 18:41:41 +10:00
Adam Wulkiewicz
5daa5a78a3 Merge branch 'develop' into fix/rtree_eps2 2015-08-25 16:43:47 +02:00
Adam Wulkiewicz
3dd8d1e689 Merge pull request #320 from awulkiew/fix/box_eps
Different approach for handling Boxes WRT machine epsilon
2015-08-25 16:40:55 +02:00
Adam Wulkiewicz
e293838a50 [test][index][rtree] Remove unused variable. 2015-08-23 15:03:18 +02:00
Adam Wulkiewicz
e090eb5681 [test][index] Add rtree spatial query epsilon-related test. 2015-08-23 15:03:18 +02:00
Adam Wulkiewicz
d69702c492 [test][example][index] Update rtree tests and example WRT latest changes related to epsilon handling. 2015-08-23 15:03:17 +02:00
Adam Wulkiewicz
069316c591 [extensions][nsphere][index] Update index-related nsphere code accoring to the latest changes in the rtree. 2015-08-23 15:03:16 +02:00
Adam Wulkiewicz
1084a124de [index] Enlarge leafs' boxes WRT epsilon for non-Box Values. 2015-08-23 15:03:16 +02:00
Adam Wulkiewicz
342306bf9e [index] Add values_box() and is_leaf_element.
The function values_box() enlarges the box WRT epsilon if the elements are
not of bounding geometry type, so Point or Segment.
2015-08-23 15:03:15 +02:00
Adam Wulkiewicz
f39d37f195 [index] Add is_bounding_geometry and relocate is_indexable. 2015-08-23 15:03:15 +02:00
Adam Wulkiewicz
0addcbb330 [math] In detail::scaled_epsilon call detail::abs instead of math::abs. 2015-08-22 17:36:54 +02:00
Adam Wulkiewicz
4a15918915 [extensions][nsphere][relops] Use raw comparison operators instead of math:: functions. 2015-08-21 20:00:13 +02:00
Adam Wulkiewicz
035a49d417 [extensions][sections] Use raw comparison operators instead of math:: functions. 2015-08-21 19:59:40 +02:00
Adam Wulkiewicz
51591ea883 [test][intersection] Remove tests checking the handling of epsilon for Boxes. 2015-08-21 19:57:32 +02:00
Adam Wulkiewicz
0401f58a78 [test][relops] Remove tests checking the handling of epsilon for Boxes. 2015-08-21 19:56:57 +02:00
Adam Wulkiewicz
3dcfb86cb9 [touches] For Box/Box use operators (e.g. < instead of math::smaller). 2015-08-21 19:54:57 +02:00
Adam Wulkiewicz
0d5c18ea56 [overlaps] For Box/Box use operators (e.g. < instead of math::smaller). 2015-08-21 19:54:28 +02:00
Adam Wulkiewicz
7636aa1a9e [intersection] For Box/Box use operators (e.g. < instead of math::smaller). 2015-08-21 19:54:02 +02:00
Adam Wulkiewicz
c8e65b5082 [within][strategies] For Point/Box and Box/Box use operators (e.g. < instead of math::smaller). 2015-08-21 19:53:18 +02:00
Adam Wulkiewicz
b3c9d963a3 [disjoint] For Point/Box and Box/Box use operators (e.g. < instead of math::smaller). 2015-08-21 19:52:11 +02:00
Adam Wulkiewicz
b22a3c0530 [sections] Enlarge section bounding Boxes WRT epsilon.
This allows the algorithms using sections to check spatial predicates
using raw operators < (e.g. in Box/Box disjoint). There is no need to
use less performant calls to math::smaller.

Replace math::smaller usage in section functions preceeding() and
exceeding() and therefore revert the change done recently.
2015-08-21 19:41:01 +02:00
Adam Wulkiewicz
d248323369 [math][algorithms] Add expand_by_epsilon()
Add math::scaled_epsilon().
Optimize math::smaller().
2015-08-21 19:38:51 +02:00
Adam Wulkiewicz
8f7af3cf63 Merge pull request #319 from awulkiew/fix/nan_coordinates
Take special care of NaN coordinates in relate for MultiLinestring
2015-08-20 14:05:15 +02:00
Adam Wulkiewicz
0d04ad21b8 [test][views][geometries][arithmetic] Rename tests to match categories. 2015-08-19 04:10:25 +02:00
Adam Wulkiewicz
7aa3dd47f8 Merge pull request #318 from awulkiew/fix/box_eps
Take into account machine epsilon when handling Boxes in various algorithms.
2015-08-19 02:41:26 +02:00
Adam Wulkiewicz
31533ddf96 [test][relate] Add tests for geometries containing NaN coordinates. 2015-08-14 17:58:01 +02:00
Adam Wulkiewicz
12ba76ff70 [relate][util] Take special care about NaN coordinates in relate for MultiLinestring.
In places where a check must be performed, if a Point is one of the
endpoints of a Linestring contained in a MultiLinestring, std::sort() and
std::equal_range() algorithms are used. With MSVC the assertion in
std::equal_range() fails if the elements cannot be reliably compared, i.e.
in the case when Points has NaN coordinates.

Add has_nan_coordinate() utility and use it in boundary_checker and
topology_check in relate() implementation.
2015-08-14 17:50:31 +02:00
Adam Wulkiewicz
37eded96ce [test][overlaps][touches] Make the failure message consistent with other relops tests. 2015-08-13 21:44:20 +02:00
Adam Wulkiewicz
8ba5a7f02a [touches] Remove spaces according to coding guidelines. 2015-08-13 21:42:37 +02:00
Adam Wulkiewicz
c9076d59b0 [doc] Add 1.60 release notes (ticket, bug). 2015-08-13 21:17:19 +02:00
Adam Wulkiewicz
b741c36c34 [test][index] Add a test of rtree inserts and removes for various parameters. 2015-08-13 21:09:52 +02:00
Adam Wulkiewicz
8fcbb8e370 [index] Fix the removal of value from an empty rtree.
- Instead of assertion failure there is no effect and 0 is returned.
- Handle the NULL root in a similar way in insert, remove and count.
- Add runtime asserts.
2015-08-13 21:02:30 +02:00
Adam Wulkiewicz
098279e739 [index] Fix rtree removal for min elements == 1
Support 0-element range in elements_box() helper function.
Handle special case in remove visitor - root node containing 0 elements after underflow.
2015-08-13 00:44:33 +02:00
Adam Wulkiewicz
16981823a9 [test][touches] Add Box/Box case testing machine epsilon handling. 2015-08-05 01:12:19 +02:00
Adam Wulkiewicz
e20af985e5 [test][overlaps] Add Box/Box case testing machine epsilon handling. 2015-08-05 01:11:34 +02:00
Adam Wulkiewicz
5e3a5e9d0e [test][disjoint] Add Pt/Box and Box/Box cases testing machine epsilon handling. 2015-08-05 01:10:49 +02:00
Adam Wulkiewicz
63eac9383e [test][within] Add Pt/Box and Box/Box cases testing machine epsilon handling. 2015-08-05 01:10:28 +02:00
Adam Wulkiewicz
2404a20c64 [test][covered_by] Add Pt/Box and Box/Box cases testing machine epsilon handling. 2015-08-05 01:10:09 +02:00
Adam Wulkiewicz
81305a79a1 [test][intersection] Add Box/Box case testing machine epsilon handling. 2015-08-05 01:08:21 +02:00
Adam Wulkiewicz
154650f8d0 [test][union] Enable testing of a case also when rescaling is disabled.
Fix unused parameter warning.
2015-08-05 01:04:15 +02:00
Adam Wulkiewicz
908ac29ecb [test][get_turns] Add test case for L/L. 2015-08-05 01:03:42 +02:00
Adam Wulkiewicz
94b198e23f [extensions][iterators] In section_iterator take into account machine epsilon. 2015-08-05 01:02:17 +02:00