Commit Graph

1275 Commits

Author SHA1 Message Date
Adam Wulkiewicz
9ed47574e1 relate(L,L) readability of some parts of the code improved 2014-02-25 18:11:11 +01:00
Adam Wulkiewicz
6f4094ec2a relate(L,L) some comments added 2014-02-25 17:59:02 +01:00
Adam Wulkiewicz
37db735b38 relate(L,L) recently introduced turn position info used to optimize boundary points detection 2014-02-25 17:37:00 +01:00
Adam Wulkiewicz
736f26db4a get_turns(L,L) turn_position now indicates the global position in linestring, not local in segment, for consistency - this was set only for the first and the last segment 2014-02-25 16:47:18 +01:00
Adam Wulkiewicz
261b35a323 get_turns(L,L) got rid of the duplicated part of the code 2014-02-25 16:38:06 +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
39d0d3bd75 Merge branch 'feature/relate' of github.com:boostorg/geometry into feature/relate 2014-02-24 15:17:20 +01:00
Adam Wulkiewicz
7033337149 IP coordinates rounded to the nearest value instead of a cast in segments_intersection_points if coordinate_type is integer 2014-02-24 15:16:37 +01:00
Adam Wulkiewicz
684b29cbe3 relate() - fixed clang warnings 2014-02-22 12:38:04 +01:00
Adam Wulkiewicz
a68d9f5855 fixed GCC compilation errors 2014-02-22 04:29:11 +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
47b958ec53 relate()/get_turn_info_ll added TODO and commented out unused code 2014-02-20 23:29:39 +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
a125811d56 relate(L,L) the ref to perviously analysed turn and operation added to turn_analyser<> 2014-02-19 15:45:02 +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
b03601fab8 get_turns(L,L) fixed 2x IPs generation for a special case of collinear, opposite last Ls segment 2014-02-19 02:26:15 +01:00
Adam Wulkiewicz
1e871f8ae6 relate() result refactored, result concept crystalized, prepared for compile-time interruptable result types 2014-02-17 17:37:46 +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
25ce65b28a relate(L,L) has_disjoint_sub_geometries simple check replaced by for_each_disjoint_linestring_if taking predicate checking linestrings 2014-02-15 19:00:26 +01:00
Adam Wulkiewicz
00e69bbea3 relate(L,L) - restored asserts in boundary_checker, added proper calculation of seg_ids for the first and last point of a range 2014-02-15 01:21:57 +01:00
Adam Wulkiewicz
551069e555 relate() added has_disjoint_sub_geometries check - not working for all special cases, should be replaced with e.g. for_each_disjoint_sub_geometry 2014-02-14 18:44:14 +01:00
Adam Wulkiewicz
2437538ccd added point_in_point agnostic strategy and point_in_geometry() for Point and MultiPoint 2014-02-14 15:07:02 +01:00
Adam Wulkiewicz
868b54c644 relate() boundary_checker moved to separate file 2014-02-14 14:01:20 +01:00
Adam Wulkiewicz
1f2041594a relate(L,L) added asserts to boundary_checker 2014-02-14 13:52:27 +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
b114b814d4 relate(L,L) the algorithm analysing one turn enclosed within turn_analyser 2014-02-14 00:10:39 +01:00
Adam Wulkiewicz
0aa1ca08d9 relate(L,L) added exit_operation to exit_watcher 2014-02-13 17:15:05 +01:00
Adam Wulkiewicz
9fe9d7259c relate(L,L) handled G1 last range point boundary in the exterior of G2 2014-02-13 01:08:08 +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
b943f3de26 get_turns(L,L) another special case handled 2014-02-12 16:53:06 +01:00
Adam Wulkiewicz
c5cbf5e6f2 relate() - added BoundaryQuery parameter to boundary_checker, makes possible to specify if the boundary should be at the first point, last or might be on both, etc. 2014-02-12 03:38:26 +01:00
Adam Wulkiewicz
5bb4c45ff5 get_turns(L,L) fixed another case for opposite linestrings 2014-02-11 17:06:43 +01:00
Adam Wulkiewicz
4a4acf00cb [get_turns] fixed error in get_turn_info_linear_linear - invalid operations generated for the endpoint-internal IP for opposite segments 2014-02-11 02:57: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
e36c2027ec relate(L,L) handled one special case, still not fully working 2014-02-08 23:40:42 +01:00
Adam Wulkiewicz
d56a7bcc2e relate(L,L) algorithm without preliminary boundaries analisys - work in progress 2014-02-07 18:58:53 +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
4881b94ee6 added a comment 2014-02-06 00:47:16 +01:00
Adam Wulkiewicz
c0598807db handled non-simple Linestrings, for now without spikes 2014-02-06 00:22:54 +01:00
Adam Wulkiewicz
2e4bafa27c fixed #define, added some comments 2014-02-03 19:45:07 +01:00
Adam Wulkiewicz
2fff49a684 fixed compilation error - missing namespaces 2014-02-03 18:43:41 +01:00
Adam Wulkiewicz
b7054cffc2 front() and back() helper functions moved to separate file, updated copyright info 2014-02-03 18:38:04 +01:00