Commit Graph

1654 Commits

Author SHA1 Message Date
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
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
Barend Gehrels
9f1b9ff7ba [overlay] Calculate ratio for segment intersection where one segment is degenerate 2014-04-30 17:33:58 +02: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
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
Barend Gehrels
c33abbd521 [rescale] avoid rescaling boxes (as long as box_tag derives from areal_tag) 2014-04-26 14:49:28 +02:00
Adam Wulkiewicz
edfb2c29c0 [get_turns] Change parameters of intersection_info::is_spike_of_collinear() 2014-04-26 03:21:10 +02:00
Adam Wulkiewicz
f697aa85aa Merge branch 'develop' of github.com:boostorg/geometry into develop 2014-04-26 03:04:40 +02:00
Adam Wulkiewicz
f671b5830f [get_turns] Refactor get_turns for L/L and L/A.
This change prevents duplication and decreases the number of parameters that must be passed to various functions and makes the code more readable.

Enclose parts of the code used in both implementations in one class - intersection_info. Move there IntersectionsResult, sides_calculator, spikes checks. Use this class in get_turn_info_linear_*. Provide convenient i_info() and d_info() to allow replacing result.template get<0>() and result.template get<1>() calls.
2014-04-26 03:03:58 +02:00
Barend Gehrels
b007b85c17 removed debug statement 2014-04-25 23:05:31 +02:00
Barend Gehrels
6a23b0ff80 [overlay] added metafunction rescale_overlay_policy_type to use rescaling
only for areal/areal
2014-04-25 22:57:55 +02:00
Adam Wulkiewicz
80654aea65 [get_turns] Refactor get_turn_info_for_endpoint::handle_segment(), remove unused variables.
The code was moved outside get_turn_info_for_endpoints, to linear_intersections.
The code in the caller is more clear and safer since all variables are initialized and stored in linear_intersections.
2014-04-25 19:34:11 +02:00
Adam Wulkiewicz
83f375fc96 [get_turns] Fix side_calculator Points order in get_turn_info_ll and get_turn_info_la 2014-04-25 12:44:59 +02:00
Samuel Debione
c0df65a209 Fix get_turn_info
Fix template parameter order in side_calculator call (would fail with
different point types).
2014-04-25 12:19:46 +02:00
Adam Wulkiewicz
17faeadaa6 [get_turns][relate] fix assert in get_turn_info, remove enriched_operation from relate/turns - additional distance is no longer needed 2014-04-25 01:01:00 +02:00
Adam Wulkiewicz
d59e66e6d2 Merge branch 'develop' into feature/relate 2014-04-25 00:31:42 +02:00
Adam Wulkiewicz
1da9113046 [relate][get_turns] Support spikes for Linear in relate(L/A). Fix errors in get_turns for L/L and L/A.
relate_linear_areal:
handle non-endpoint x-c turns pair generated for a collinear spike.

relate/follow helpers:
fix turn_on_the_same_ip to use fraction instead of dimension.

get_turns:
L/L and L/A - use base_turn_handler::assign_point() to set fractions properly for collinear-opposite spikes.
L/A - fix the condition in calculate_spike_operation() used to check if a spike goes into the interior or exterior.
2014-04-24 23:49:36 +02:00
Barend Gehrels
30f4bd08b0 [overlay] removed unused distance_type 2014-04-24 22:35:34 +02:00
Barend Gehrels
2455677196 [intersect] Make calculations similar form, added const 2014-04-24 22:31:27 +02:00
Barend Gehrels
6bc9252c6a [intersect] Removed unused calculation 2014-04-24 22:30:45 +02:00
Barend Gehrels
d11d84c10d [intersect] Removed debug statements and adapted comments 2014-04-24 22:30:13 +02:00
Adam Wulkiewicz
b4b902ac85 [get_turns] Add the support for spikes for Linear Geometry in get_turns_linear_areal 2014-04-24 18:41:37 +02:00
Adam Wulkiewicz
5412c3bcf2 [strategies] remove register keyword 2014-04-24 11:41:07 +02:00
Adam Wulkiewicz
5d90c2449d Merge branch 'develop' into feature/relate 2014-04-24 02:00:22 +02:00