Adam Wulkiewicz
d4bcf8dcc8
[iterators][relate] Fix Intel 11 compilation errors.
2014-04-17 12:09:07 +02:00
Adam Wulkiewicz
a7f1521756
[relate] Fix GCC 4.4 and 4.5 compilation errors
...
Explicitly define namespace for the call relate::set<> in implementations of relate().
2014-04-17 01:53:55 +02:00
Adam Wulkiewicz
08cc83be49
[geometry] Fix compilation errors
...
point_in_geometry - Intel 11 probably can't handle BOOST_STATIC_ASSERT() inside which some template is directly instiantated - replace by intermediate value + BOOST_MPL_ASSERT_MSG for better error message.
multi_touches test - include missing header
2014-04-17 01:42:48 +02:00
Adam Wulkiewicz
5ab27a4594
Merge branch 'develop' into feature/relate
2014-04-15 17:04:49 +02:00
Adam Wulkiewicz
23081a7c06
[point_on_surface] Fix GCC4.4 compilation error and polish the interface.
...
Explicitly define the namespace geometry.
Add doxygen description to return_point_on_surface().
2014-04-15 17:02:44 +02:00
Adam Wulkiewicz
aacf2618b9
[touches] added missing #include
2014-04-15 16:43:48 +02:00
Adam Wulkiewicz
4a4dbf4512
[relate][touches] Implement touches() for L/L and L/A using relate(), fix error in L/A.
...
Enable touches() for other pairs of Geometries.
Implement ready-to-use in the implementations of relate() less comparators of operations.
Change the less comparator for L/A.
Fix: handling of the entry/interior for some turn with MultiID which comes before union for some other turn with different MultiID.
Finish the support for boost::mpl::vector<> as a complex StaticMask.
2014-04-15 16:28:35 +02:00
Adam Wulkiewicz
eb11e26e14
Merge pull request #12 from mkaravel/feature/setops
...
[set ops] polish code and use std::find_if (suggestions by Adam);
2014-04-15 01:06:33 +02:00
Menelaos Karavelas
7ff3f1089d
[set ops] polish code and use std::find_if (suggestions by Adam);
2014-04-15 01:53:55 +03:00
Adam Wulkiewicz
b5a1d2fd98
Merge pull request #11 from mkaravel/feature/setops
...
Feature/setops
2014-04-14 21:39:38 +02:00
Menelaos Karavelas
1da360a8f3
[iterators] add missing includes; rename InnerRange to inner_range (coding standards);
2014-04-14 11:09:57 +03:00
Menelaos Karavelas
fffc55d677
[set ops] polish/simplify follow L/L code; change some vairable names that are confusing;
2014-04-14 10:00:08 +03:00
Menelaos Karavelas
2427b4a904
[set ops] remove #ifdef/#endif block used for debugging
2014-04-14 09:59:36 +03:00
Adam Wulkiewicz
7d028ab2d9
Merge pull request #9 from mkaravel/feature/setops
...
[set ops][follow L/L] fix bug appearing in regression tests
2014-04-12 11:26:02 +02:00
Menelaos Karavelas
b10bf20996
[set ops][follow L/L] fix bug appearing in regression tests regarding dereferencing a non-dereferencable iterator
2014-04-12 11:49:58 +03:00
Adam Wulkiewicz
18d28c3839
[geometry] fix invalid #include
2014-04-12 02:46:13 +02:00
Adam Wulkiewicz
f689693b80
Merge branch 'feature/relate' into develop
2014-04-12 02:10:13 +02:00
Adam Wulkiewicz
7f150855eb
[within][covered_by] enable default relate strategy for cases other than P/P and P/* as far as CS is the same
2014-04-12 02:08:38 +02:00
Adam Wulkiewicz
d7b7df8614
[within][covered_by] Add the support for Areal geometries for within() and all OGC geometries for covered_by().
...
Also the specializations for Multi Geometries was moved from geometry/multi/algorithms to geometry/algorithms. They're now in one place.
The default strategies are point_in_point for PointLike, winding<> for PointLike/AnyGeometry, relate for L/L, L/A and A/A.
Point/MultiGeometry version now uses point_in_geometry directly which implements the correct behavior - this fixes the wrong handling of MultiLinestrings (boundary point of a Linestring may not be a boundary point of a MultiLinestring which contains it).
2014-04-12 01:40:27 +02:00
Adam Wulkiewicz
51c7957e69
[convex_hull] fix uninitialized pointers in ConvexHullStrategy concept check
2014-04-10 22:38:47 +02:00
Adam Wulkiewicz
93a2a5bc48
[relate][overlaps][crosses] Add unified way to implement the default dispatch of spatial relation
...
Add relate_base derived from not_implemented<> if necessary for the purpose of support_status check.
This class is derived from not_implemented<> if either StaticMaskTrait or detail_dispatch::relate::relate is derived from nyi::not_implemented_tag.
Use this technique in crosses() and overlaps().
2014-04-10 18:09:54 +02:00
Menelaos Karavelas
22274430b4
[set ops] remove #ifndef/#endif commands (not needed any more);
2014-04-10 15:13:48 +03:00
Menelaos Karavelas
6646470a55
Merge branch 'develop' of https://github.com/boostorg/geometry into feature/setops-develop
2014-04-10 10:03:43 +03:00
Menelaos Karavelas
9f5252be0e
[set ops] Barend's review: (1) fix #includes; (2) remove //===.. lines; (3) rename AssignPolicy to assign_policy (not a template parameter);
2014-04-10 09:19:45 +03:00
Menelaos Karavelas
dd11061f81
[set ops] Barend's review: (1) fix #includes; (2) remove //===... comment lines; (3) put struct pointlike_pointlike_point in detail_dispatch namespace;
...
Other: remove difference_intersection_pointlike_pointlike_point struct (not used)
2014-04-10 09:15:30 +03:00
Menelaos Karavelas
d7bcd44974
[set ops] remove unused code in #if 0/#endif block; remove some obvious comments;
2014-04-10 09:13:20 +03:00
Menelaos Karavelas
17f3b3be58
[set ops] Barend's review: (1) remove unused variables; (2) fix #includes; (3) remove Linestring const*;
...
Other: remove unused argument in process_turn;
2014-04-10 09:10:22 +03:00
Menelaos Karavelas
193bca333b
[set ops] add missing includes; remove unnecessary ones
2014-04-10 08:57:25 +03:00
Menelaos Karavelas
caadd6ce00
[set ops] replace included unit test by unit test
2014-04-10 08:45:38 +03:00
Adam Wulkiewicz
ccc40d3a0b
[relate] cleanup, increase the readability of relate() dispatching, remove unneeded code
2014-04-09 21:53:12 +02:00
Adam Wulkiewicz
edf8a613ff
[doc][crosses][overlaps] add crosses() to make_qbk.py script, add parameters info to crosses() and overlaps()
2014-04-09 03:26:07 +02:00
Adam Wulkiewicz
0374154930
[relate] fix GCC compilation error caused by a missing #include
2014-04-09 01:52:41 +02:00
Adam Wulkiewicz
2753f5e30a
[crosses] add missing files required by bg::crosses() algorithm
2014-04-09 01:34:34 +02:00
Adam Wulkiewicz
d3f8ea2f6b
[crosses] add bg::crosses() algorithm
2014-04-09 01:33:37 +02:00
Adam Wulkiewicz
c1d4a09ec7
[overlaps] add support for P/P, L/L and A/A to overlaps()
2014-04-09 00:23:26 +02:00
Adam Wulkiewicz
9e00853dfa
[relate] fix: add missing handling of single geometries for which no IPs were generated (exterior ring inside, hole outside)
2014-04-08 15:33:18 +02:00
Adam Wulkiewicz
1c7fa89626
[relate] Fix warnings (unused variables)
2014-04-08 00:16:21 +02:00
Adam Wulkiewicz
d76c94d643
[relate] add optimization for L/L ommitting parts of the algorithm if the result mustnot be updated
2014-04-07 23:52:40 +02:00
Adam Wulkiewicz
cce6c71782
[relate] Add optimizations for L/A disabling parts of the code if the result mustnot be updated
2014-04-07 21:20:20 +02:00
Adam Wulkiewicz
eca27bc8af
Merge branch 'develop' into feature/relate
2014-04-07 14:31:16 +02:00
Adam Wulkiewicz
e7e0083428
[relate] Add optimization to A/A skipping parts of the algorithm if it's not possible to change the final result.
...
Add may_update() funcionality which may be used if it's possible to change the result for the specified matrix fields and overlap dimension.
Initialize flags in no_turns_aa_pred and uncertain_rings_analyser with values calculated using this functionality.
Add manual checks around the parts of areal_areal::apply() where IPs are sorted and analysed.
2014-04-07 14:18:34 +02:00
Menelaos Karavelas
3604f45e88
Merge branch 'develop' of https://github.com/boostorg/geometry into feature/setops
2014-04-07 12:27:44 +03:00
Menelaos Karavelas
a307bec090
[point iterator][concatenate iterator] replace enable_if mechanism by static assert; add templated assignment operator; make dereference and increment inline;
...
templatize equal for comparison against other concatenate iterator (needed for interoperability between const/non-const versions);
2014-04-07 11:31:42 +03:00
Menelaos Karavelas
cb3a103256
[point iterator] replace enable_if mechanism by static assert;
2014-04-07 11:30:20 +03:00
Menelaos Karavelas
0316b64019
[point iterator][flatten iterator] replace enable_if mechanism in copy constructor by static asserts;
...
add static assert to assignment operator; make dereference inline;
2014-04-07 11:27:46 +03:00
Adam Wulkiewicz
8c2ee6152a
[relate] Fix wrong type in interrupt_policy for A/A.
...
Add tests for MLs/MLs, Ring/Poly, Ring/Ring.
2014-04-07 01:30:05 +02:00
Adam Wulkiewicz
7bde891d7a
[relate] Add the support for IPs generated for "real" and "fake" holes.
...
Rename turns::less_seg_dist_op<> to relate::turns::less<>
It now takes the Comp defining how operations are sorted if segment and distance are equal.
Add 2 different operations comparators for L/L,L/A and A/A.
Add tests.
2014-04-07 01:08:24 +02:00
Adam Wulkiewicz
09ab2351f9
[relate] Add support for rings with no turns and some special cases in A/A.
...
Add support for:
- single geometries for which no turns were generated
- rings for which no turns were generated
- i/i and u/u turns
TODO: some cases where turns are generated for the intersection of a "real" hole and a "fake" hole (self-touching exterior ring).
2014-04-06 02:52:24 +02:00
Menelaos Karavelas
082adbb655
[point_iterator] fix errors and warnings for g++ and clang++ with C++11 enabled
2014-04-06 01:43:25 +03:00
Adam Wulkiewicz
47747938a6
[relate] add for now commented out ignoring of u/u turns in A/A, add some tests
2014-04-04 01:16:27 +02:00