Commit Graph

2136 Commits

Author SHA1 Message Date
Menelaos Karavelas
ac17fdcbdc [algorithms][is_simple,is_valid] add doxygen documentation for is_simple and is_valid 2014-06-27 02:38:21 +03:00
Menelaos Karavelas
7ec752d5ea [geometry] add is_simple and is_valid algorithms in geometry.hpp 2014-06-27 02:28:17 +03:00
Menelaos Karavelas
274c64c5d8 [algorithms][is_simple] add missing include 2014-06-27 02:27:28 +03:00
Menelaos Karavelas
f0f037df2b Merge branch 'develop' of https://github.com/boostorg/geometry into feature/is_simple 2014-06-26 22:52:43 +03:00
Barend Gehrels
7baf1a29e5 [buffer] We have to simplify the ring before to avoid very small-scaled
features in the original (convex/concave/convex) being enlarged
in a very large scale and causing issues (IP's within pieces).
This might be reconsidered later. Simplifying with a very small
distance will never be visible in the result,
if it is using round joins. For miter joins they are even more
sensitive to small scale input features, however the result will
look better.

A distance strategy can change behaviour (make larger - set simplify
distance to 0.0 to avoid simplification)

This fixes the parcel issue(s)
2014-06-25 13:32:42 +02:00
Menelaos Karavelas
15773cbf93 [algorithms][is_valid] fix some wrong usages of std::size_t (should
have been int)
2014-06-25 09:34:53 +03:00
Menelaos Karavelas
bcaf4a374a Merge branch 'develop' of https://github.com/boostorg/geometry into feature/is_simple 2014-06-25 01:54:15 +03:00
Barend Gehrels
7f3b509fb5 [buffer] use endcap strategy for spikes. Check jointype also (again)
for line-line intersection because it is based on buffered segments.
2014-06-24 22:48:04 +02:00
Menelaos Karavelas
9059f73d54 [algorithms][is_valid] remove USE_INTERRUPT_POLICY macro 2014-06-24 19:43:32 +03:00
Menelaos Karavelas
ec2417f701 Merge branch 'develop' of https://github.com/boostorg/geometry into feature/is_simple 2014-06-24 14:08:06 +03:00
Menelaos Karavelas
e3d0b1e6e4 [algorithm][is_valid] Re-design complement graph implementation:
* complement graph is now templated by turn points rather than vertices
* vertices get the vertex_handle type from the graph now
* simplify DFS algorithm to use only parent vertex id instead of parent
  vertex (only the parent id is really needed)
The last change also solves incomplete type compilation errors on
darwin/linux clang++, when -stdlib=libc++ is set.
2014-06-24 12:29:04 +03:00
Menelaos Karavelas
5a316f6c7e [algorithms][is_valid] include is_valid for multi-polygons (coming
from a separate file now)
2014-06-24 12:19:42 +03:00
Menelaos Karavelas
69594408ad [algorithms][is_valid] move multi-polygon implementation to separate file 2014-06-24 12:19:04 +03:00
Menelaos Karavelas
59ffebd794 [algorithms][is_valid] re-structure polygon's is_valid algorithm (for
readability and possible usage by is_valid for multi-polygons);
move code to sepatate files (to be used for multi-polygons as well);
move multi-polygon implementation to separate file;
2014-06-24 12:17:28 +03:00
Menelaos Karavelas
e25fb28d71 [algorithms][is_valid] implement predicate class that determines
whether a polygon or multi-polygon turn is acceptable (code partially
moved from algorithms/detail/is_valid/polygon.hpp)
2014-06-24 12:15:38 +03:00
Menelaos Karavelas
b3932db092 [algorithms][is_valid] factor-out in a separate file self turns computation
code (used by polygons and multi-polygons)
2014-06-24 12:13:47 +03:00
Barend Gehrels
9b6aa189bd [buffer] changes in includes/defines 2014-06-23 22:40:03 +02:00
Barend Gehrels
aa307b5ad2 [buffer] add join_selector and use it before generating the join.
This moves responsibility of generation to the calling code, removes it
from the join strategies. It also enables using the end-strategy for the
spikes
2014-06-23 22:39:29 +02:00
Barend Gehrels
d8a4d12c8e Merge branch 'develop' of github.com:boostorg/geometry into develop 2014-06-23 19:34:51 +02:00
Menelaos Karavelas
eb9fb19816 [algorithms][is_valid] remove commented variable names 2014-06-22 23:56:53 +03:00
Adam Wulkiewicz
edff6503c4 [is_valid] Prefix GEOMETRY_TEST_DEBUG macro with BOOST_ 2014-06-22 22:45:03 +02:00
Adam Wulkiewicz
3deeeecc25 [is_valid] Fix unused variable warnings. 2014-06-22 22:41:42 +02:00
Menelaos Karavelas
a58ee873dc [algorithms][is_valid] print multi-index as well 2014-06-22 23:22:03 +03:00
Menelaos Karavelas
e7e7f958fb Merge branch 'develop' of https://github.com/boostorg/geometry into feature/is_simple
Conflicts:
	include/boost/geometry/algorithms/detail/is_simple/debug_print_boundary_points.hpp
	include/boost/geometry/algorithms/detail/is_valid/polygon.hpp
2014-06-22 23:09:47 +03:00
Barend Gehrels
86a2adef88 [buffer] pass points instead of segments to line_line_intersection 2014-06-22 22:01:43 +02:00
Barend Gehrels
51121c1e35 Merge branch 'develop' of github.com:boostorg/geometry into develop 2014-06-22 21:07:36 +02:00
Barend Gehrels
4ac5267e69 [buffer] use robust policy to check equality 2014-06-22 21:06:50 +02:00
Barend Gehrels
a057d23a24 [buffer] use passed first 2014-06-22 20:49:26 +02:00
Barend Gehrels
80b0ae169c [buffer] pass robust policy through the buffer_inserter structs 2014-06-22 20:42:10 +02:00
Barend Gehrels
a6cfda7c41 [buffer] Refactor duplicate functionality into one function 2014-06-22 20:30:16 +02:00
Barend Gehrels
5c3f1f2006 [buffer] fix limit which was too low for LatLong coordinates. Also fix in test
for tolerance which was too high. Added unit test
2014-06-22 19:54:13 +02:00
Barend Gehrels
ddf4acf351 [buffer] skip the type-check for adjacent pieces and side-pieces,
because now sides around a concave vertex have a piece in between
2014-06-22 18:49:34 +02:00
Barend Gehrels
8e74d052ea [buffer] rename variables 2014-06-22 16:05:20 +02:00
Adam Wulkiewicz
92b236fda6 [range] Calculate the iterator distance in erase() only when necessary. 2014-06-22 15:42:51 +02:00
Adam Wulkiewicz
17f08e3ac4 Merge pull request #66 from mkaravel/feature/debug_macro
Feature/debug macro
2014-06-22 15:29:16 +02:00
Adam Wulkiewicz
19a8455f54 Merge pull request #71 from mkaravel/fix/unused_include
[algorithms][overlay] remove usused include
2014-06-22 15:27:50 +02:00
Adam Wulkiewicz
5da7133f9f Merge pull request #73 from awulkiew/feature/range
[range] Optimize range::erase() in C++11
2014-06-22 15:27:08 +02:00
Adam Wulkiewicz
ba0906369e [range] Add support for invalidating resize() and workarounds for MSVC and MinGW.
Using of the iterator returned by erase() caused assertion failures (false positive) on MSVC with iterator debugging enabled.
MSVC std::vector can't store non-movable objects if rvalue references are supported.
MinGW std::vector can't store pointers.
2014-06-22 15:17:49 +02:00
Barend Gehrels
3628e85a25 [buffer] fix non-intersecting sides around concave points
there was no segment in between generated, therefore if the side-segments
did not intersect (e.g. donut_diamond in polygon_buffer.cpp unit test),
there was no intersection at all. Now a helper piece is generated and it
will intersect.
2014-06-22 15:12:40 +02:00
Adam Wulkiewicz
81ea76fdb9 [range] Remove unneeded code and comments 2014-06-22 13:33:19 +02:00
Adam Wulkiewicz
cd2e17b102 [range] Optimize erase() in C++11 - use std::move() instead of std::copy() if possible. 2014-06-21 22:08:51 +02:00
Adam Wulkiewicz
a0a296877f [range] Fix the return type of range::erase() and add tests. 2014-06-21 18:18:25 +02:00
Barend Gehrels
4ae8804b1d [buffer] make constants const 2014-06-20 22:35:20 +02:00
Barend Gehrels
7df029b176 [buffer] make buffer (miter, round) around spike possible
including unit testcase. For miters, the limit is enlarged (after
visual inspection of spike_simplex_miter)
2014-06-20 22:34:40 +02:00
Menelaos Karavelas
5a71e83bd5 [algorithms][is_valid] remove all explicit usages of debug macro;
clean-up/polish debug-related code;
2014-06-20 13:41:00 +03:00
Menelaos Karavelas
36def7632c [algorithms][is_valid] move complement graph debug-related printing
code to separate function
2014-06-20 13:39:57 +03:00
Menelaos Karavelas
357a818cea [algorithms][is_valid] helper class for debugging the various phases
of the validity algorithms; currently implemented only for polygons;
2014-06-20 13:38:39 +03:00
Menelaos Karavelas
ab67385c68 [algorithms][is_valid] move debugging-related printing of turns in
is_valid/debug_print_turns.hpp
2014-06-20 13:37:28 +03:00
Menelaos Karavelas
1a0e2519da [algorithms][is_simple] update debugging-related includes 2014-06-20 13:36:48 +03:00
Menelaos Karavelas
100af837ec [algorithms][is_simple] rename debug_linear.hpp to debug_print_boundary_points.hpp;
remove code related to printing turns (to be put in another file);
2014-06-20 13:35:57 +03:00