Commit Graph

2877 Commits

Author SHA1 Message Date
Menelaos Karavelas
e7dedcfbfe [algorithms][is_valid] remove AllowDuplicates template parameter at dispatch level
(the visitor is now responsible to determining the behavior)
2015-02-24 01:54:31 +02:00
Menelaos Karavelas
3e8a56cae0 [policies][is_valid] rename is_valid_null_policy to is_valid_default_policy;
change file name with the definition of default policy from null_policy.hpp
to default_policy.hpp;
2015-02-24 01:23:15 +02:00
Menelaos Karavelas
279177756a [algorithms][is_valid] change default value for dispatch boolean template
parameter regarding allowance of duplicates to false (the behavior is now
determined by the visitor)
2015-02-24 01:04:03 +02:00
Menelaos Karavelas
7571989baf [algorithms][is_valid_reason] update declaration of policy (it is now a template class) 2015-02-24 01:02:10 +02:00
Menelaos Karavelas
03399ad3c0 [policies][is_valid] modify the is_valid policies' apply methods to return a boolean value;
templatize policies with a boolean that controls whether duplicate points are to be allowed or not
(by default they are allowed);
2015-02-24 00:58:53 +02:00
Menelaos Karavelas
ecdf20b1a4 [algorithms][is_valid] use as return value whatever the policy returns 2015-02-24 00:57:56 +02:00
Menelaos Karavelas
ef32b1085a [policies][is_valid] update enum value names as per the previous commit;
update failure messages accordingly;
2015-02-21 20:27:43 +02:00
Menelaos Karavelas
004b5af7fc [algorithms][is_valid] replace validity failure enumeration value names as follows:
failure_holes_outside -> failure_interior_rings_outside
failure_nested_holes -> failure_nested_interior_rings
2015-02-21 20:24:42 +02:00
Menelaos Karavelas
5a475319ef [algorithms][is_valid] replace "holes", in debug message, by "interior rings" 2015-02-21 20:23:23 +02:00
Menelaos Karavelas
667d5eabc4 [policies][is_valid] update failure value failure_wrong_dimension by
failure_wrong_topological dimension; update corresponding message;
2015-02-21 16:32:12 +02:00
Menelaos Karavelas
9357d092d8 [algorithms][is_valid] rename failure type value from failure_wrong_dimension
to failure_wrong_topological_dimension
2015-02-21 16:29:53 +02:00
Menelaos Karavelas
c098f89e51 [algorithms][is_valid_reason] add missing #include; rename variable "sstr" to "stream"; 2015-02-21 16:20:32 +02:00
Menelaos Karavelas
acc774640a [algorithms][is_valid] ring validity: update description of validity checking steps;
check explicitly that the ring has enough distinct points; remove commented code;
2015-02-20 10:33:56 +02:00
Menelaos Karavelas
bce9868365 [policies][is_valid] update validity failure type value name;
add message for new value related to boxes;
2015-02-20 09:58:43 +02:00
Menelaos Karavelas
0f2789323a [algorithms][is_valid] update validity failure type value name 2015-02-20 09:57:52 +02:00
Menelaos Karavelas
42e74f6019 [algorithms][is_valid] distinguish between the cases where the box has lower
than expected dimension, and when the corners are not given in correct order
2015-02-20 09:56:47 +02:00
Menelaos Karavelas
5ce6a05918 [algorithms][is_valid] change values and names for validity failure types;
add one more failure type related to boxes;
2015-02-20 09:56:12 +02:00
Menelaos Karavelas
50487af848 [algorithms][is_valid_reason] add in-line documentation 2015-02-19 23:31:35 +02:00
Menelaos Karavelas
4aa73822f8 [geometry] add the is_valid_reason algorithm 2015-02-19 23:18:31 +02:00
Menelaos Karavelas
8f2a535a49 [algorithms][is_valid_reason] implement the is_valid_reason algorithm
by passing the failing_reason_policy as the visit policy in the is_valid
algorithm and then returning the message recorded by the policy;
2015-02-19 23:16:13 +02:00
Menelaos Karavelas
2930d649ae [policies][is_valid] add a new visit policy for the is_valid algorithm:
the failing_reason_policy policy; this policy is useful for detecting the
reason for which is_valid fails, as well as for having a convenient message
describing the type of failure and, possibly, information related to the failure;
this policy can be used to implement the is_valid_reason algorithm;
2015-02-19 23:13:09 +02:00
Menelaos Karavelas
bf00fd45bf [policies][is_valid] add a new visit policy for the is_valid algorithm:
the is_valid_null_policy policy, that does nothing
2015-02-19 23:10:39 +02:00
Menelaos Karavelas
b2ff6d51c5 [algorithms][is_valid] add support for visit policy; add one more
boolean template parameter at the dispatch level that controls if
empty multi-geometries are valid (the default value is true, i.e.,
empty multi-geometries are considered as valid);
2015-02-19 23:08:31 +02:00
Menelaos Karavelas
a071453652 [algorithms][is_valid] add enumeration type for the validity failure types 2015-02-19 23:05:09 +02:00
Adam Wulkiewicz
81d3d14578 Merge pull request #219 from sdebionne/feature/variant-over-sequence
Fix point_type traits for variant over MPL sequence
2015-02-19 17:37:50 +01:00
Barend Gehrels
b0fdfc5d7a [buffer] fix erroneous rings for deflated interior rings which are untouched 2015-02-18 15:10:06 +01:00
Barend Gehrels
18d6103abd [disjoint] add disjoint_point_box like there is also disjoint_box_box to
avoid calling dispatch from buffer
2015-02-18 15:04:22 +01:00
Barend Gehrels
2201ebf86e [buffer] fix the case where a side was skipped because detected as equal, followed
by an end-cap. This caused further problems. Detection of empty sides is now delegated
to the strategy
2015-02-18 12:20:05 +01:00
Barend Gehrels
6c5cb48211 [buffer][fix] avoid false detection of turn in piece: turns cannot be located
in flat end pieces or in concave pieces
2015-02-18 10:20:26 +01:00
Adam Wulkiewicz
2d3bfc296c [buffer] Add assertions checking segments indexes >= 0 in buffered_piece_collection. 2015-02-16 18:12:06 +01:00
Barend Gehrels
d9d14ce71b Merge pull request #224 from mkaravel/fix/buffer_accessing_front_element_of_rings
Fix: replace access method for accessing the front element of rings
2015-02-13 16:21:45 +01:00
Menelaos Karavelas
2f5d497885 [algorithms][buffer] replace call to .empty() method by call to boost::empty();
replace call to .back() method by call to range::back();
2015-02-13 16:18:26 +02:00
Adam Wulkiewicz
d942d49114 Merge pull request #223 from mkaravel/fix/qualify_mpl_namespace_by_boost
[geometry] qualify mpl:: namespace by boost:: (namespace external to the
2015-02-13 14:31:43 +01:00
Menelaos Karavelas
a2d1365326 [algorithms][buffer] replace access of front range element using the .front()
method by the range::front BG utility function
2015-02-13 15:19:57 +02:00
Barend Gehrels
729c5d2c37 Minor: fix spacing according to conventions 2015-02-13 13:25:59 +01:00
Barend Gehrels
3afb29f41e [buffer][fix] Assure first point of next piece equals last point of previous piece 2015-02-13 12:59:14 +01:00
Barend Gehrels
f24b4a24fb [buffer] some minor code layout changes 2015-02-13 12:26:55 +01:00
Barend Gehrels
d21145952f [buffer][fix] make sure that, per ring, closing point is the starting point.
It can be off due to numerical instability
2015-02-13 12:23:58 +01:00
Menelaos Karavelas
8b12ba92b6 [geometry] qualify mpl:: namespace by boost:: (namespace external to the
Boost.Geometry library); fix long lines produced by the addition of "boost::"
2015-02-13 11:41:16 +02:00
Menelaos Karavelas
4097d8e74b [policies][robustness][get_rescale_policy] fix wrong name of free function 2015-02-13 10:12:03 +02:00
Menelaos Karavelas
75e3115708 [policies][robustness][get_rescale_policy] factor-out common code 2015-02-13 09:48:29 +02:00
Samuel Debionne
e73e9486ab Add boost:: namespace for variant, mpl
External (to Boost.Geometry) libraries used in Boost.Geometry code
should be qualified with boost::.
2015-02-12 09:32:13 +01:00
Adam Wulkiewicz
cff2ee9d6c [util] Add comments about the BOOST_GEOMETRY_CONDITION() implementation. 2015-02-11 20:29:47 +01:00
Adam Wulkiewicz
b3b3687426 [algorithms] Remove unwanted spaces from condition statements. 2015-02-11 20:20:35 +01:00
Adam Wulkiewicz
88d67541a8 [util] Fix the macro name in an #endif comment. 2015-02-11 19:26:48 +01:00
Samuel Debionne
241a541e83 Fix point_type traits for variant over MPL sequence
When variant types are generated from MPL sequences the actual variant
type is
boost::variant<over_sequence<Sequence...
and thus T0 is over_sequence<>. This fix use the first bounded type
instead of T0.
2015-02-11 17:12:40 +01:00
Adam Wulkiewicz
4f2fc67bd6 Merge branch 'develop' into fix/warnings 2015-02-11 15:55:31 +01:00
Adam Wulkiewicz
60226ea697 [strategies] Use BOOST_GEOMETRY_CONDITION macro for constant conditions. 2015-02-11 15:53:24 +01:00
Adam Wulkiewicz
aec04ff75b [algorithms] Use BOOST_GEOMETRY_CONDITION macro for constant conditions. 2015-02-11 15:52:55 +01:00
Adam Wulkiewicz
60856a5986 [util] Add BOOST_GEOMETRY_CONDITION macro to allow suppressing of MSVC constant condition warning. 2015-02-11 15:51:10 +01:00