Commit Graph

2824 Commits

Author SHA1 Message Date
Adam Wulkiewicz
6d2e0418e2 Merge pull request #216 from mkaravel/fix/refactor_debug_code_for_turns
[algorithms][turns] re-factor debug code for printing turns
2015-02-11 14:01:41 +01:00
Adam Wulkiewicz
65de0b893a Merge pull request #217 from mkaravel/fix/templatize_relare_turns_by_rescale_policy
Fix/templatize relare turns by rescale policy
2015-02-11 14:00:54 +01:00
Menelaos Karavelas
70ca59637b [algorithms][relate][get_turns] add missing include for get_rescale_policy 2015-02-11 13:10:00 +02:00
Menelaos Karavelas
ba68aa8555 [algorithms][relate][get_turns] templatize relate::get_turns by robustness policy;
by default it is set to detail::no_rescale_policy;
2015-02-11 10:27:51 +02:00
Menelaos Karavelas
503b5a1e03 [algorithms][turns] re-factor debug code for printing turns 2015-02-11 09:53:03 +02:00
Menelaos Karavelas
0a385a61b5 [strategies][cartesian][side by triangle] fix MSVC error regarding
undiscovered function equals_point_point: MSVC thinks that that the detail::equals
namespace qualifying the call to equals_point_point is a nested namespace inside
boost::geometry::strategy::side; fix: qualify the call to equals_point_point by
geometry::detail::equals;
2015-02-11 09:33:54 +02:00
Adam Wulkiewicz
82c8c483f3 Merge pull request #206 from awulkiew/fix/warnings
Fix/warnings
2015-02-09 17:10:56 +01:00
Adam Wulkiewicz
09d1a2e16d Merge pull request #212 from mkaravel/fix/comparable_distance_strategy_in_douglas_peucker
Fix/comparable distance strategy in douglas peucker
2015-02-09 17:08:46 +01:00
Adam Wulkiewicz
40cd6946d1 Merge pull request #207 from mkaravel/fix/make_side_by_triangle_permutation_invariant
Fix/make side by triangle permutation invariant
2015-02-09 17:07:10 +01:00
Menelaos Karavelas
a7c6ce5431 [strategies][agnostic][simplify douglas peucker] modify strategy to use
comparable distances and strategies internally; update copyright headers;
clean-up code; change debug macro to have the BOOST_GEOMETRY prefix;
2015-02-05 14:13:17 +02:00
Menelaos Karavelas
bbd755350b [algorithms][simplify] update copyright dates and add missing include 2015-02-05 14:09:27 +02:00
Menelaos Karavelas
07399029da [strategies][cartesian][side by triangle] optimize computation for fundamental
integral number types: no need to check for equality of points and perform
lexicographical sorting
2015-02-04 09:18:24 +02:00
Menelaos Karavelas
8ce627968d [strategies][cartesian][side by triangle] add comments explaining why
the lexicographical ordering is done
2015-02-04 02:47:22 +02:00
Barend Gehrels
63b3e39592 Merge pull request #209 from mkaravel/fix/use_correct_namespace_in_comment
[algorithms][is_valid] fix namespace in comment
2015-02-03 22:54:51 +01:00
Menelaos Karavelas
2b8528e318 [algorithms][is_valid] fix namespace in comment 2015-02-03 21:57:10 +02:00
Menelaos Karavelas
fe257ef8b4 [algorithms][detail][overlay][turns L/L] remove trailing spaces 2015-02-03 21:54:52 +02:00
Menelaos Karavelas
98babd71c6 [strategies][cartesian][side by triangle] optimize the number of
calls to less
2015-02-03 21:40:59 +02:00
Menelaos Karavelas
5354bba720 [strategies][cartesian][side by triangle] make the side_by_triangle strategy
cyclic-permutation invariant by always choosing the lexicographically smallest
point as the first argument in the computations
2015-02-03 21:33:01 +02:00
Adam Wulkiewicz
93d9881fa2 Merge branch 'develop' of github.com:boostorg/geometry into develop 2015-02-03 18:27:11 +01:00
Adam Wulkiewicz
5c73173d60 [get_turns] Fix the handling of Linear collinear spikes for L/L. 2015-02-03 18:26:46 +01:00
Barend Gehrels
2bd4be27c8 Merge branch 'feature/buffer' into develop 2015-02-03 12:30:33 +01:00
Adam Wulkiewicz
a9ff279098 [algorithms] Fix unused parameter warnings. 2015-02-03 12:13:26 +01:00
Adam Wulkiewicz
548af19903 [get_turns] Fix signed indexes types, replace ints. 2015-02-03 12:07:37 +01:00
Adam Wulkiewicz
10ddece05c Merge pull request #204 from mkaravel/fix/is_simple_wrong_turns_detection
Fix/is simple wrong turns detection
2015-02-02 19:54:28 +01:00
Adam Wulkiewicz
c8c5de27ab [io][wkt] Fix integral conversion warning. 2015-02-02 19:41:27 +01:00
Adam Wulkiewicz
0d025a9328 [policies] Fix integral conversion warnings in intersection_points. 2015-02-02 19:40:16 +01:00
Adam Wulkiewicz
e4c3658de8 [iterators] Fix integral conversion warnings. 2015-02-02 19:38:37 +01:00
Adam Wulkiewicz
9ed70b402a [algorithms] Fix integral conversion warnings. 2015-02-02 19:37:12 +01:00
Adam Wulkiewicz
622b9602e8 [util][range] Add pos() function returning iterator to element. 2015-02-02 19:29:49 +01:00
Adam Wulkiewicz
3e367f9f6d [get_turns] Fix handling of a specific case of L/L collinear spike. 2015-02-02 02:14:12 +01:00
Menelaos Karavelas
2c0c882cf4 [algorithms][is_simple] replace equality testing of turn point and linestring
endpoint by using the turn's fraction instead of the geometry::equals algorithm
2015-02-01 11:30:54 +02:00
Menelaos Karavelas
eac0dc71bb [algorithms][is_simple] optimize the computation of turns for
multilinestrings: instead of computing the turns for each linestring
(through bg::intersects) and then again for the entire multilinestring,
avoid computing the turns for the individual linestrings in the multilinestring
and compute and process all multilinestring turns together;
besides the optimization this approach fixes a bug in bg::intersects in the
context of simplicity testing: bg::intersects cannot detect the intersection
occuring when a boundary point of linestring is also an internal point of the
linestring, as in LINESTRING(4 1,10 8,4 6,4 1,10 5,10 3), for example;
2015-01-29 23:45:46 +02:00
Menelaos Karavelas
e2d15e9eb3 [algorithms][is_simple][debug][turns] add debugging support for the
boundary (endpoints) of linestrings
2015-01-29 23:31:14 +02:00
Menelaos Karavelas
2be267d79e [algorithms][is_valid][debug][turns] add display of segment indices 2015-01-29 23:29:42 +02:00
Menelaos Karavelas
ba5ae9ef4d [iterators][segment iterator][range segment iterator] declare range_segment_iterator
as a class (to match the friend declaration inside it);
fix bug in initialization of the m_has_less_than_two_elements boolean member variable
for open ranges;
2015-01-29 23:13:45 +02:00
Adam Wulkiewicz
23d3e60767 Merge pull request #197 from mkaravel/feature/support_for_one_point_geometries
Feature/support for one point geometries
2015-01-28 23:24:42 +01:00
Menelaos Karavelas
bc1da220a4 [iterators][segment iterator][range segment iterator] initialize boolean in default
constructor with false
2015-01-28 19:18:19 +02:00
Menelaos Karavelas
3763829be3 [iterators][segment iterator][range segment iterator] replace has_less_than_two_elements
by an appropriate call to boost::size
2015-01-28 17:38:58 +02:00
Barend Gehrels
b349fc0f45 [buffer] use turn instead of point in analysis to get their segments later 2015-01-28 14:35:26 +01:00
Barend Gehrels
f056a0bb54 [overlay] minor change: replace now longer expressions with p_arrival, q_arrival
to enhance readability
2015-01-28 13:38:12 +01:00
Barend Gehrels
a44c753612 [overlay] replace intersection_info (old) with (new) to allow getting access
to (robust) points used for the segment intersection. This makes dir_info
redundant there, because it is included in (new)
2015-01-28 13:30:42 +01:00
Menelaos Karavelas
5899ac451f [algorithms][is_simple] fix bug in is_simple(multilinestring): is_simple
was considering a simple closed linestring (living inside a multilinestring)
as non-simple because it was wrongly detecting the turn associated with the
first and last (closing) point as an unacceptable turn;
fix: allow such turns acceptable;
2015-01-28 12:40:46 +02:00
Barend Gehrels
28cf857743 [buffer] pass turn instead of piece to analysis to be able to use
the robust segments it is calculated from (in a later commit)
2015-01-28 11:26:41 +01:00
Barend Gehrels
3c57ee2cae [test] remove timings in include files 2015-01-28 10:29:31 +01:00
Barend Gehrels
486ed6605c [extensions] remove unused msm state and unused Boost.Unit example/header 2015-01-28 10:04:03 +01:00
Adam Wulkiewicz
6665fb7bf6 [relate] Fix relate(Ls,MLs) - collinear L spike touching other Ls. 2015-01-27 00:27:59 +01:00
Adam Wulkiewicz
1588215368 [overlay][get_turns] Fix get_turns(L,A) for opposite last L segment.
For last Linear segment collinear opposite to A segment the pk point was
also used in a check inside collinear_opposite handler. But in the case of
the last segment pk was invalid and set to one of the L points. So the
result of the check was "random".
2015-01-26 04:00:51 +01:00
Adam Wulkiewicz
8100303092 [overlay][get_turns] Fix the calculation of spike's side.
In get_turn_info L/A for a Linear spike support special case when pj == qj
differently, check it explicitly if it must be handled.
2015-01-23 19:04:00 +01:00
Adam Wulkiewicz
949fd8ac39 [relate] Small optimization in L/A turns analyser, don't reset the watcher twice. 2015-01-23 19:03:39 +01:00
Adam Wulkiewicz
2ac11443fa [relate] Fix relate(MLs,A) - reset state in handler per Ls.
In turns handling code reset exit_watcher and other state variables when
new linestring is detected and previous one was handled.
2015-01-23 17:10:44 +01:00