Commit Graph

2132 Commits

Author SHA1 Message Date
Barend Gehrels
5a008767ae [buffer] restructure buffer_range such that tag is not necessary
and behaviour per geometry-type is done in the dispatch itself.
This also avoids generating side on perpendicular side for linestrings once
(the second one cannot easily be avoided in the current structure)
2014-07-02 14:20:02 +02:00
Barend Gehrels
c9880fbdff [buffer] use range instead of two points as output for buffer_side strategy 2014-07-02 13:04:16 +02:00
Barend Gehrels
c94d6d469d [buffer] use strategy buffer_side instead of generate_side 2014-07-02 12:45:57 +02:00
Barend Gehrels
f933be730d [buffer] move buffer_side to strategies 2014-07-02 12:33:04 +02:00
Barend Gehrels
01151cacf5 [buffer] copy inserter to buffer_side 2014-07-02 12:29:34 +02:00
Barend Gehrels
9fc3b36d25 Merge pull request #77 from mkaravel/feature/doc-strategies
Feature/doc strategies
2014-06-30 21:04:44 +02:00
Barend Gehrels
a1bde8e927 Merge pull request #72 from mkaravel/fix/graham_andrew
[strategies][agnostic] fix bug in Graham-Andrew strategy:
2014-06-30 20:51:11 +02:00
Menelaos Karavelas
5e94f07ec0 [iterators][point_iterator] remove free functions points_front and points_back 2014-06-30 12:18:03 +03:00
Menelaos Karavelas
9930615207 [strategies][distance] update doxygen documentation for pythagoras
point-box and box-box strategies
2014-06-27 03:35:31 +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
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
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
Menelaos Karavelas
75f254efc3 [algorithms][overlay] remove usused include (which also creates a
dependence with <iostream>)
2014-06-20 12:32:19 +03:00
Menelaos Karavelas
2eea41b82e Merge branch 'develop' of https://github.com/boostorg/geometry into feature/is_simple 2014-06-20 12:30:18 +03:00
Menelaos Karavelas
c3d401164a [strategies][agnostic] fix bug in Graham-Andrew strategy:
last is used again after two calls to pop_back() which can invalidate
the reference;
patch: make last a true point rather than a reference
bug reported/patch suggested by David Zhao
2014-06-20 12:17:44 +03:00
Barend Gehrels
52c41b9d34 [overlay] reverted change of returning left seg_id < right seg_id
because it is already tested before as beging equal in these cases
2014-06-19 21:46:50 +02:00
Menelaos Karavelas
b58dfe57c8 [algorithms][turns] guard include with the BOOST_GEOMETRY_DEBUG_TURN
macro; polish code a bit
2014-06-19 22:15:26 +03:00