Adam Wulkiewicz
f2fea86f7e
[relate] fix special case of L/L and L/A - going out and in on the same point but with different segment.
...
Linestring going into the exterior of the second geometry and then going inside on the same point. In this case the exterior wasn't taken into account. Now in addition to the Point, seg_id is checked. The check should also be faster since integral segment ids are checked before Points.
exit_watcher methods now take Turn instead of Point, seg_id and other_id.
Also added some tests for non-simple A/A.
2014-04-01 22:20:29 +02:00
Adam Wulkiewicz
759258563e
Merge branch 'feature/relate' of github.com:boostorg/geometry into feature/relate
2014-04-01 00:12:22 +02:00
Adam Wulkiewicz
0a49cb1e3e
[relate] support simple, equal geometries in currently used, simplified interrupt_policy
2014-04-01 00:11:57 +02:00
Adam Wulkiewicz
2fc1ca4e9c
[relate] Fix for_each_disjoint_geometry_if return value for Multi Geometries
...
Fix GCC warnings.
2014-03-31 09:41:17 +02:00
Adam Wulkiewicz
b6bf7038c9
Merge branch 'develop' into feature/relate
2014-03-29 23:46:22 +01:00
Adam Wulkiewicz
b0221bcda1
[get_turns] fix invalid equal<> use (convert() for uninitialized Point) in get_turn_info_for_endpoints and get_turn_info_linear_areal
2014-03-29 14:08:11 +01:00
Adam Wulkiewicz
8f7e0a39e4
[relate] fix GCC compile errors - hiding of template parameters and unknown identifier in not used part of the code
2014-03-29 13:36:51 +01:00
Adam Wulkiewicz
438494e045
[relate] add result interrupt check to no_turns_xxx predicates
2014-03-27 16:50:15 +01:00
Adam Wulkiewicz
7df83d69a7
[relate] add support for no-IP casesin A/A, fix for_each_disjoint_geometry_if for Multi Geometries.
...
Fix a bug in for_each_disjoint_geometry_if resulting in assert failure if no turns are generated. This affects L/L, L/A and A/A.
Enable all combinations of Areal geometries.
Add ignoring of empty disjoint geometries in L/A and A/A.
Add tests for disjoint geometries.
2014-03-27 16:35:43 +01:00
Adam Wulkiewicz
d4418204ec
[relate] add support for non-simple non-equal Polygons in A/A.
...
Currently simple interrupt policy is used.
This approach works is there are IPs, Polygons are simple and not equal.
2014-03-27 00:30:43 +01:00
Adam Wulkiewicz
77c7317cb1
[relate][get_turns] move single_geometry to bg::detail, fix get_turn_info test
...
also create a preliminary version of relate::areal_areal (copied from linear_areal)
in get_turn_info test mutable begin() and end() because it seems that Range can't handle immutable Ranges
2014-03-26 18:37:31 +01:00
Adam Wulkiewicz
830a073c0d
Merge branch 'feature/relate' into develop
2014-03-25 15:10:48 +01:00
Adam Wulkiewicz
3a29d3a90c
[relate] fix MinGW compilation error - add includes missing in relate/result.hpp
2014-03-25 03:16:40 +01:00
Adam Wulkiewicz
ccbc15b8a1
[get_turns][relate] handle doubled points in relate L/L and L/A
...
add info about the first/last non-doubled section to sectionalize
modify get_turns() to pass info about the first/last segment to TurnPolicy::apply()
modify parameters of TurnPolicy::apply()
add searching for the next non-equal point in relate L/A when the segment of Linear must be checked if it starts in the interior or exterior of the Areal
add tests for relate and within
add relate L/A to Jamfile
2014-03-25 00:29:25 +01:00
Adam Wulkiewicz
b6fc144de7
[relate][within] add tests for Linestrings with duplicated points
2014-03-24 19:27:35 +01:00
Adam Wulkiewicz
3b91c7ed34
[relate] fix compile errors (use of old names)
2014-03-23 17:54:52 +01:00
Adam Wulkiewicz
5316d1f2ad
[geometry] replace sub_geometry::get() by sub_range(), fix invalid #includes
2014-03-23 17:16:56 +01:00
Adam Wulkiewicz
bddaadd8bc
[geometry] round() moved to util/math, added doxygen info to round() and range utils
2014-03-23 16:34:06 +01:00
Adam Wulkiewicz
e99574f1ed
[relate][get_turns] add missing brackets
2014-03-23 15:21:36 +01:00
Adam Wulkiewicz
025bd3b2bc
[relate] overall cleanup, group_dim replaced by topological_dimension, group_tag by tag_cast, range moved to util/range.hpp, some temporary code commented out
2014-03-23 15:17:05 +01:00
Adam Wulkiewicz
5eec228f10
[relate][get_turns] the code from handle_spike from get_turn_info_ll enclosed in spike detector (NOT FULLY WORKING)
2014-03-22 11:21:49 +01:00
Adam Wulkiewicz
21c42ed87e
[within][get_turns] implement within() using relate() for L/L and L/A. Add some basic/NOT_FULLY_WORKING handling of collinear spikes for get_turns(L/L)
2014-03-21 17:24:21 +01:00
Adam Wulkiewicz
b79b857d1e
[relate][get_turns] fixed (GCC) compilation errors (missing include, typename keyword, shadowing of template parameters)
2014-03-20 01:59:33 +01:00
Adam Wulkiewicz
9d49d802e9
[relate] group_dim util moved to separate file
2014-03-20 01:45:27 +01:00
Adam Wulkiewicz
f9c0a09c38
[relate] implement proper handling of multiple rings while checing for equality with the linestrings, enable relate() for all ls- and poly-based geometries
2014-03-20 01:03:34 +01:00
Adam Wulkiewicz
3e926cb818
[relate] implement the check for boundaries of Areal equal to Linear geometries in L/A
2014-03-19 19:50:54 +01:00
Adam Wulkiewicz
e0179e67e0
[relate] support ccw and open geometries, use closeable_view and reversable_view if needed
2014-03-18 23:27:18 +01:00
Adam Wulkiewicz
8cf2cfacc3
[get_turns] fix is_collinear calculation for methods t and m for L/L and L/A
2014-03-18 12:33:25 +01:00
Adam Wulkiewicz
6106fe6d1b
[relate] change less_seg_dist_op comparator to support multipolygons
2014-03-18 11:43:35 +01:00
Adam Wulkiewicz
173371265f
[relate] fix II for LS on boundary going out and in to the boundary of another ring on the same IP
2014-03-18 00:52:20 +01:00
Adam Wulkiewicz
e461f1003b
[relate] fix duplication of points for BACK in L/A
2014-03-17 23:45:28 +01:00
Adam Wulkiewicz
3336212aaa
[relate] fix sorting by distance in less_seg_dist_op
2014-03-17 15:52:32 +01:00
Adam Wulkiewicz
d5935134ef
[relate] add interrupt policy for L/A
2014-03-17 15:23:35 +01:00
Adam Wulkiewicz
b4417c40ad
[relate] add basic get_turns interrupt policy for L/L
2014-03-17 14:16:25 +01:00
Menelaos Karavelas
79bbb5a408
[geometry][append] updated copyright headers
2014-03-17 09:51:37 +02:00
Menelaos Karavelas
971247df04
updated the documentation wrt multi-linestrings and multi-polygons
2014-03-17 09:42:14 +02:00
Adam Wulkiewicz
ac8d628b8e
[relate] fix error in static handler set dispatch, require const boundary checkers in algorithms
2014-03-17 00:52:37 +01:00
Menelaos Karavelas
429b5e0037
implementation and unit test for bg::append for multi-linestring and multi-polygon
2014-03-14 23:04:01 +02:00
Adam Wulkiewicz
19837bbe03
[relate] L/A: fix generation of matrix elements for L collinear to boundary of A
2014-03-14 17:54:17 +01:00
Adam Wulkiewicz
8bd4efbc26
[relate] add support for non-simple polygons
2014-03-14 16:57:10 +01:00
Adam Wulkiewicz
80b1c54b65
[relate][get_turns] fix turn generation for last LS endpoint in get_turns(L,A), in relate(L,A) handle Linestrings starting from the inside
2014-03-14 13:05:51 +01:00
Adam Wulkiewicz
a6b0a32846
[relate] handle simple polygons in relate(L,A), remove some redundant code from L/L and L/A, add tests
2014-03-13 14:54:42 +01:00
Adam Wulkiewicz
4f32a3743f
[relate][get_turns] added not yet finished support for relate(L,A), changed operations generated by get_turns(L,A) for collinear segments of Areal geometry, fixed errors in relate(L,A)
2014-03-13 01:08:57 +01:00
Adam Wulkiewicz
3c4ed4e396
Merge branch 'feature/relate' of github.com:boostorg/geometry into feature/relate
2014-03-12 19:18:20 +01:00
Adam Wulkiewicz
924d222e7f
[relate][get_turns] fixed relate(L/L) error for collinear segments and a self-intersection in the middle, added is_collinear to turn_operation_linear, added setting of is_collinear to get_turns(L/L), fixed logic error in turns generation for endpoint-internal IP
2014-03-12 19:18:11 +01:00
Adam Wulkiewicz
3142975b72
[relate] supported ORed run-time masks
2014-03-12 12:39:20 +01:00
Adam Wulkiewicz
8e9a59bac3
[relate] helpers like segment_watcher, exit_watcher, etc. moved to a separate file, implemented preliminary version of L/A (commented out for now), found bug in L/L, added failing tests
2014-03-11 18:06:47 +01:00
Adam Wulkiewicz
fe0e34bff6
[relate][get_turns] fixed incorrect dispatching of static masks, tag_base<> replaced by group_tag<> and moved to namespace detail, added group_dim<>
2014-03-11 01:51:23 +01:00
Adam Wulkiewicz
4182cb916b
[relate] TODOs regarding predefined masks added
2014-03-10 17:25:11 +01:00
Adam Wulkiewicz
d91db3a2e0
[relate] added ready-to-use static masks for various spatial relations
2014-03-10 15:03:57 +01:00