Commit Graph

1673 Commits

Author SHA1 Message Date
Samuel Debionne
d968f26bae [intersection] Add variant support 2014-05-21 19:36:44 +02:00
Menelaos Karavelas
5777fd5b8d [overlay] the specialization of intersection_insert for linestring/box computes the intersection, but pretends as if it works for difference as well;
quick fix: further specialize this specialization of intersection insert so that it works only for overlay_intersection;
problem and quick fix related to boost trac ticket #10019;
2014-05-09 09:33:32 +03:00
Adam Wulkiewicz
9ea4b6bf6c [index] Add the support for std::pair<> and boost/std::tuple<> registered as Indexable 2014-05-08 14:42:45 +02:00
Menelaos Karavelas
1e3041e748 [overlay][P/P, L/L] replace BOOST_AUTO_TPL by the exact type 2014-05-08 01:28:09 +03:00
Barend Gehrels
899c94b148 Merge branch 'develop' of github.com:boostorg/geometry into develop 2014-05-07 13:15:22 +02:00
Adam Wulkiewicz
dffd4a4f64 Merge pull request #22 from mkaravel/feature/setops
Feature/setops
2014-05-07 11:58:11 +02:00
Adam Wulkiewicz
6407199617 Merge pull request #21 from mkaravel/feature/point_iterator
Feature/point iterator
2014-05-07 11:57:20 +02:00
Barend Gehrels
22f3c65b5d [doc] Added doc for parameters Doxygen was missing 2014-05-07 11:40:57 +02:00
Menelaos Karavelas
51c601bb49 [point_iterator_type] replace #include of type traits by the specific one used (is_const) 2014-05-06 22:02:26 +03:00
Menelaos Karavelas
793a6321c6 [copy segments] replace generic #include of type traits by the specific one used (integral_constant) 2014-05-06 21:51:15 +03:00
Adam Wulkiewicz
8eefe4d3ba [equals] Add missing copyright info 2014-05-06 19:00:28 +02:00
Adam Wulkiewicz
8bb1d98aaf [equals][relate] Add equals() Ls/MLs, MLs/MLs. Fix relate(L/L).
Also use relate() in equals(Ls,Ls) because collect_vectors() approach doesn't work properly for non-simple or even opposite/reversed Linestrings.

Fix how 'u' is handled in relate() in the edge case when there are more 'u' operations in the same point, also when 'u' is on the first endpoint followed by 'i' on the same IP.

Add tests for equals() and relate().
2014-05-06 16:18:05 +02:00
Menelaos Karavelas
826045c3a1 [set ops L/L] remove commented code in assign_policy; add template parameter to control the behavior of intersection wrt whether isolated points are followed or not; 2014-05-05 12:10:20 +03:00
Menelaos Karavelas
a73ce5fbd6 Merge branch 'develop' of https://github.com/boostorg/geometry into feature/setops 2014-05-05 10:23:45 +03:00
Menelaos Karavelas
99dbc5082e Merge branch 'develop' of https://github.com/boostorg/geometry into feature/point_iterator 2014-05-05 10:22:25 +03:00
Menelaos Karavelas
6adb2e9d51 [point_reverse_iterator] implement reverse iterator for geometries 2014-05-05 09:51:22 +03:00
Menelaos Karavelas
0648b7293e [flatten_iterator] implement decrement operation for flatten iterator 2014-05-05 09:50:42 +03:00
Menelaos Karavelas
cd1d490d2e [point_iterator] add free functions points_front and points_back that return the first and last point of a geometry 2014-05-05 09:50:04 +03:00
Adam Wulkiewicz
aea578c602 [get_turns] Fix turn operation is_collinear values for L/L and L/A.
is_collinear for the first endpoint of L is now unified and is always equal to FALSE.

Add tests of is_collinear. It is tested by passing 4th and 5th char in the expected turn string (= means collinear, + means non-collinear), e.g. "mxi=+" for L/L means that L1 ends in this IP and was collinear before meeting the Point, L2 is going "inside" intersection and wasn't collinear before.

Replace method_and_operation_replacer with turn_transformer.
2014-05-04 22:31:13 +02:00
Adam Wulkiewicz
e6ef0b0328 [get_turns] Use RobustPolicy in a unified way in all three get_turn_info* policies (A/A, L/A, and L/L).
Newly introduced intersection_info containing IntersectionResult, SideCalculator and Point refs is used also in get_turn_info for A/A.
Robust points are stored only if RobustPolicy is not no_rescale_policy.
This commit also fixes an error in get_turn_info - swapped_side_calc created for method_touch_interior ('m') should use robust points just like the original one.
2014-05-04 01:26:12 +02:00
Barend Gehrels
bff1c65b0a fixed comment 2014-05-03 14:41:47 +02:00
Barend Gehrels
7b2a4cb589 [intersection] fix segments_intersection_ratios
adding the new one_degenerate method
2014-05-03 14:41:33 +02:00
Adam Wulkiewicz
6abe245eb7 [get_turns] Fix invalid condition get_turn_info_la 2014-05-03 02:47:58 +02:00
Adam Wulkiewicz
d4d7bf9657 [get_turns] Fix the generation of some special cases of touch-spike-turns for L/L and L/A 2014-05-03 02:40:21 +02:00
Adam Wulkiewicz
93c5c4a329 Merge branch 'develop' of github.com:boostorg/geometry into develop 2014-05-01 12:38:07 +02:00
Adam Wulkiewicz
288c7e6980 [get_turns] Fix for L/L spike vs. endpoint for the same direction segments. Add failing test cases for spikes touching internal point 2014-05-01 12:37:54 +02:00
Menelaos Karavelas
75488e0988 [point_iterator] fix constructor calls for concatenate_iterator 2014-05-01 01:42:24 +03:00
Menelaos Karavelas
5a2993d30f [concatenate_iterator] make the iterator bidirectional 2014-05-01 01:37:35 +03:00
Menelaos Karavelas
c2bf14e1c3 Merge branch 'develop' of https://github.com/boostorg/geometry into feature/setops 2014-04-30 22:05:09 +03:00
Barend Gehrels
9f1b9ff7ba [overlay] Calculate ratio for segment intersection where one segment is degenerate 2014-04-30 17:33:58 +02:00
Menelaos Karavelas
98e6dd3783 [overlay] add template parameter to follow and action_selector about removing spikes; the default behavior is to remove them; this is backward compatible with the
code before the changes in copy_segments
2014-04-30 15:57:51 +03:00
Menelaos Karavelas
65e1118669 [algorithms][overlay] allow for spikes in output likestrings; this modifies the behavior of existing set ops and allows to support linear geometries with spikes;
change copy_segments for linestrings to take a template parameter to control whether spikes are accepted or not; by default they are not accepted
(but the follow code now explicitly allows for them in places where it wasn't;
2014-04-30 12:12:27 +03:00
Menelaos Karavelas
a5056728b7 [copyright headers] unify the way they look 2014-04-30 12:11:13 +03:00
Menelaos Karavelas
f605bbc7d1 Merge branch 'develop' of https://github.com/boostorg/geometry into feature/setops 2014-04-30 01:27:23 +03:00
Adam Wulkiewicz
c88767bf2a Merge pull request #20 from sdebionne/develop
check_result_type is missing inline qualifier
2014-04-29 14:06:40 +02:00
Samuel Debione
118a750e9e check_result_type is missing inline qualifier
Function check_result_type is missing inline qualifier.
2014-04-29 13:47:09 +02:00
Adam Wulkiewicz
d682a74c1b [extensions/dissolve] Fix compilation error - pass segment_ratio<> to traversal_turn_info<>. Remove mistankenly commited test change 2014-04-29 13:19:11 +02:00
Adam Wulkiewicz
d44e1a1e01 [get_turns][extensions/dissolve] Fix VS compilation error (STATIC_ASSERT + template). Add not_implemented<> info to extensions/dissolve. 2014-04-29 13:06:04 +02:00
Adam Wulkiewicz
bf918c15d0 Merge branch 'develop' of github.com:boostorg/geometry into develop 2014-04-28 12:22:37 +02:00
Adam Wulkiewicz
2349c817e2 [get_turns] Fix turns generation for double collinear spikes.
Add check if a spike Point is realy an IP.
2014-04-28 12:21:06 +02:00
Menelaos Karavelas
333cfdccfb [turns] rename less functor from less_seg_dist_other_op to less_seg_fraction_other_op (to indicate that the fraction comparison is now used) 2014-04-28 10:29:45 +03:00
Menelaos Karavelas
65c57c4bfb [policies][robustness] properly initialize m_approximation in default segment_ratio constructor 2014-04-28 10:15:05 +03:00
Barend Gehrels
0311b165ab Merge branch 'develop' of github.com:boostorg/geometry into develop 2014-04-27 20:54:46 +02:00
Barend Gehrels
ac913b5a67 Replaced #ifdef with extra parenthesis to solve macro/comma problems 2014-04-27 20:54:31 +02:00
Adam Wulkiewicz
294b888f76 [test][sectionalize] Fix GCC4.4 compilation error.
Explicitly use namespace geometry in sectionalize() overload used in the test.
2014-04-27 18:48:35 +02:00
Adam Wulkiewicz
d41be62461 [relate] refactor relate helpers.
Remove unused, commented-out code.
Improve the names.
2014-04-27 16:08:30 +02:00
Adam Wulkiewicz
6bbabf9867 [views][relate] Add detail::normalized_view<> and use it in relate_linear_areal.
It's a view connecting reversible_view and closeable_view, allowing to view a subrange of a Geometry as reversed and/or closed if necessary.
Polygons and similar Geometries are always CW, closed.
2014-04-27 04:11:22 +02:00
Adam Wulkiewicz
bcd64d3e40 Merge branch 'develop' of github.com:boostorg/geometry into develop 2014-04-26 15:28:33 +02:00
Adam Wulkiewicz
7615ac3392 [get_turns] Add template parameters to side_calculator<> defining types of all points.
It is possible to use side_calculator<> with Points of various types without the conversion.
2014-04-26 15:27:53 +02:00
Barend Gehrels
7e775f8d35 Merge branch 'develop' of github.com:boostorg/geometry into develop 2014-04-26 14:49:51 +02:00