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
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
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
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
Adam Wulkiewicz
d209b4fbd2
[relate] added functions check() and interrupt(), added parameter EnableInterrupt to static_interrupt for consistency
2014-03-10 12:08:16 +01:00
Adam Wulkiewicz
4987e8d13d
relate() implemented support for complex static masks as a MPL sequences
2014-03-10 03:02:11 +01:00
Adam Wulkiewicz
5f0ab7962f
relate() static_mask_handler::update() dispatching fixed
2014-03-09 22:29:27 +01:00
Adam Wulkiewicz
9ca11feb90
relate() static_mask and static_mask_handler implemented
2014-03-09 22:24:09 +01:00
Adam Wulkiewicz
09c41cb171
relate() - const MatrixOrMask may be passed to the function, the actual matrix is now stored in the result handler
2014-03-08 19:59:39 +01:00
Adam Wulkiewicz
1e6da76527
relate() implemented different interface, added support for complex masks passed in boost::tuple
2014-03-08 19:31:06 +01:00
Adam Wulkiewicz
b6ad82a0c2
relate() naming of results changed, added de4im matrix
2014-03-07 19:41:54 +01:00
Adam Wulkiewicz
9ff0624b41
relate(L,A) added preliminary implementation, for now working only for disjoint geometries
2014-03-04 17:37:12 +01:00
Adam Wulkiewicz
38147c2fc7
relate() for_each_disjoint_linestring_if utility now works for all geometries, renamed to for_each_disjoint_geometry_if
2014-03-04 16:55:18 +01:00
Adam Wulkiewicz
8ae3b591d3
relate(L,L) unused code commented out
2014-03-04 15:37:34 +01:00
Adam Wulkiewicz
02cdc305d3
get_turns(L,A) - fixed turns generation for endpoints of collinear front/back segments, added some tests
2014-03-03 19:21:12 +01:00
Adam Wulkiewicz
325b2e2bb0
get_turns(L,L) - TODO comment added
2014-03-03 18:19:37 +01:00
Adam Wulkiewicz
4fd21c2fa7
get_turns(L,A) - handled the back endpoint of the Linestring
2014-03-03 18:16:02 +01:00