Commit Graph

45 Commits

Author SHA1 Message Date
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
Adam Wulkiewicz
b70c886f2e IP duplicates handled for endpoints 2014-01-27 16:44:11 +01:00
Adam Wulkiewicz
e7992832a9 added a few test cases 2014-01-24 20:33:51 +01:00
Adam Wulkiewicz
bd686badd7 most of the duplicated endpoints handled 2014-01-24 16:58:11 +01:00
Adam Wulkiewicz
a9f1c8e00a handled all endpoints, for now method is not set, IPs may be duplicated and invalid value is returned from handle_first_last() 2014-01-23 18:23:12 +01:00
Adam Wulkiewicz
3f667361d6 get_turns() for endpoints L/L started from the beginning, added copyrights info, added comments regarding segment intersection results analysis 2014-01-22 21:42:44 +01:00
Adam Wulkiewicz
594d025e95 overlay:: equal<> and collinear<> used to calculate the operations for the first point of P LS in adequate cases 2014-01-09 19:36:31 +01:00
Adam Wulkiewicz
518156a727 [geometry] begined the new implementation of handling of first and last LS point in get_turns(), for now considered cases when both LSs starts on the same segment 2014-01-07 21:46:46 +01:00
Adam Wulkiewicz
2799cb867b [geometry] handled IP on the last point of LS for equal and collinear case, for the first point method may now be set to equal or collinear 2014-01-05 17:27:31 +01:00
Adam Wulkiewicz
c1530d41f9 [geometry] handled IP for the first point of a LS when IP is equal to the second point of the first segment of the other LS to avoid generation of 2 IPs for the same point 2014-01-04 23:51:12 +01:00
Adam Wulkiewicz
def187c977 added generation of IP for the first point of a Linestring - c+c/c, c+i/u or c+u/i 2014-01-04 01:11:43 +01:00
Adam Wulkiewicz
3d8cc8730a [geometry] added relate() test 2013-12-24 04:17:06 +01:00
Adam Wulkiewicz
8f742a692c [geometry] added self-turns output to 1-geometry to_svg() 2013-12-23 14:49:20 +01:00
Adam Wulkiewicz
eba7d26db4 [geometry] in relate() called dispatch::get_turns instead of higher level one to avoid geometries switching, added generation of SVGs for some special cases 2013-12-22 23:35:18 +01:00
Adam Wulkiewicz
4f07087db5 [geometry] handled more cases in relate(Ls, Ls) 2013-12-22 04:00:15 +01:00
Adam Wulkiewicz
106f3da5ae [geometry] fixed some errors in relate(Ls, Ls): checked terminal points of both linestrings, treated touch with x/x as ii 2013-12-21 02:41:48 +01:00
Adam Wulkiewicz
382e975f2f [geometry] added test file for relate(), fixed error in linear_linear, added tag-dispatched detail::relate() 2013-12-21 01:49:40 +01:00