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
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
f2b4ced41b
[relate] add test for Areal boundary equal to more than one Ls in MLs forming a linear ring
2014-03-20 01:06:15 +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
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
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
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
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
0a70310124
get_turns(L,L) added turn_operation_linear containing info about the position of the IP in the segment
2014-02-25 13:39:09 +01:00
Adam Wulkiewicz
00941b7d50
Implemented relate(MultiPoint, MultiPoint), added detail::relate::less comparing Point types with different coordinate_type, added some TODO notes regarding possible optimizations
2014-02-24 17:47:29 +01:00
Adam Wulkiewicz
0fd875fb63
relate() added Point-MultiPoint, point_point moved to the separate file, Geometries sequence is reversed if needed to not duplicate the code - for this Transpose is also used as the parameter to set<>(result)
2014-02-21 19:25:27 +01:00
Adam Wulkiewicz
89e412f5b4
added test for relate(Pt,Pt), added a TODO in relate::linear_linear
2014-02-21 17:56:40 +01:00
Adam Wulkiewicz
6482716689
relate() Finished the implementation for Point/Geometry, added topology_check util, added tests
2014-02-21 17:51:37 +01:00
Adam Wulkiewicz
93b82b734d
relate() added interruption_enabled flag to policy which can be used to create optimized mask type not checking for interuption per each set<>()
2014-02-21 15:34:52 +01:00
Adam Wulkiewicz
a03f554e27
relate() Added the interruptable mask Result, handled arbitrary Result type in relate(), added tests for masks and interruption, fixed warning in get_turns_ll
2014-02-21 00:40:09 +01:00
Adam Wulkiewicz
d13ff170be
relate(L,L) code refactored, tests added
2014-02-20 23:10:16 +01:00
Adam Wulkiewicz
9b16fdcf23
relate(L,L) handled case when several BLOCK operations were generated for the same point, fixed an error for BLOCK generated for a geometry touching the other one from the "outside"
2014-02-20 22:47:23 +01:00
Adam Wulkiewicz
c2e1331270
relate(L,L) handling of 1-point linestrings replaced by simple ignoring (for now) since those are not valid geometries, the code was not removed though in case we wanted to e.g. enable it with some macro check.
2014-02-19 14:42:05 +01:00
Adam Wulkiewicz
99610ca124
relate(L,L) handled the rest of cases with 1-point linestrings involved, added interrupt member to relate result - it may be used to break the calculation
2014-02-16 22:23:14 +01:00
Adam Wulkiewicz
9f54142896
relate(L,L) handled some cases with 1-point linestrings involved (if 1-PtLS is disjoint or there are other Ls in the other MLs)
2014-02-16 18:26:41 +01:00
Adam Wulkiewicz
4815e00048
relate(L,L) disjoin linestrings contained in multilinestring properly handled. In the case of disjoint linestrings almost all special cases are handled non-simple linear rings, 1-point linestrings. Linestrings containing >1 equal points are for now treated as normal linear rings, this should probably be changed.
2014-02-15 21:51:47 +01:00
Adam Wulkiewicz
790c0027a0
relate(L,L) fixed some compilation errors for MultiLinestrings, some parts of the code temporarily commented out, added failing test - currently used algorithm is analysing only those Linestrings which are intersecting the other geometry, other ones are NOT taken into account
2014-02-14 00:30:10 +01:00
Adam Wulkiewicz
cea2384ad6
relate(L,L) some tests added - tests for linear rings not passed, added note about the error
2014-02-13 01:54:55 +01:00
Adam Wulkiewicz
7429694b54
relate(L,L) added checks for boundaries for the first points of ranges of G1 which are in the exterior of G2
2014-02-13 00:12:39 +01:00
Adam Wulkiewicz
21dfef6f05
get_turn_info_linear_linear<>::handle_first_last() method moved to better reflect calling dependency
2014-02-11 01:30:22 +01:00
Adam Wulkiewicz
5e3223e467
fixed error in relate(), entry points seg_id replaced by other_seg_id - required for MultiLinestrings
2014-02-06 01:27:52 +01:00
Adam Wulkiewicz
c0598807db
handled non-simple Linestrings, for now without spikes
2014-02-06 00:22:54 +01:00
Adam Wulkiewicz
b9d7d7f975
changed relate() to use new turns info for linestrings, the same implementation state - does not work for self-touching Linestrings or MultiLinestrings
2014-01-31 22:13:13 +01:00
Adam Wulkiewicz
459bb46dff
detail::relate::relate() result now contains correct dim(E(A) and E(B)), T is put for dimensions > 9
2014-01-29 23:37:49 +01:00
Adam Wulkiewicz
bf51c9fc87
added test for get_turns(L,L)
2014-01-29 23:12:38 +01:00
Adam Wulkiewicz
0874a880b5
Added methods replacement for some cases of non-endpoint IPs, e.g. touching c or e is replaced by m or t. Methods are set WRT IPs, not segments, i.e. if points of both intersecting segments are equal to the IP the method is e. In addition to this x/x was handled, e.g. t+x/x is replaced by e+c/c.
2014-01-29 17:24:46 +01:00
Adam Wulkiewicz
9c63a58412
added proper operations generation for non-endpoint IPs
2014-01-29 15:09:54 +01:00