Commit Graph

2128 Commits

Author SHA1 Message Date
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
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
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
Adam Wulkiewicz
844616d8fa Merge pull request #64 from awulkiew/fix/erase
Replace the explicit call to Range::erase()
2014-06-19 20:46:27 +02:00
Adam Wulkiewicz
a9babd113f [overlay] Change the placement of const modifier (guidelines). 2014-06-19 20:45:56 +02:00
Barend Gehrels
24b503212e [buffer] In case of the same contents, compare just seg_ids
to have a reliable order
2014-06-19 19:11:22 +02:00
Barend Gehrels
3261c52976 [buffer] Avoid warnings 2014-06-19 19:10:49 +02:00