Adam Wulkiewicz
9a3b80cdba
[strategies][policies] If the IP is at segment's endpoint assign the original endpoint.
2016-05-20 00:15:11 +02:00
Adam Wulkiewicz
eb8219e152
[sectionalize] In non-cartesian CSes calculate section box using segments.
2016-04-24 03:18:50 +02:00
Adam Wulkiewicz
c241d51bc4
[get_turns][relate] Use default side strategy for each CS.
...
Previously side_by_triangle was used in all CSes since there were also
only one, cartesan relate_cartesian_segments intersection strategy.
2016-04-22 17:41:03 +02:00
Adam Wulkiewicz
cf4cf03ff8
[strategies] Remove unused parameters in relate_spherical_segments intersection strategy.
2016-04-22 17:40:19 +02:00
Adam Wulkiewicz
e377bf3a9f
[strategies] Fix constant and add missing apply() overload in relate_spherical_segments strategy.
2016-04-21 01:07:21 +02:00
Adam Wulkiewicz
5cd01e087c
Merge branch 'develop' into feature/sph_seg_inters
2016-04-20 17:36:43 +02:00
Barend Gehrels
ee6167d07e
[overlay] remove obsolete condition, giving warning on on systems,
...
in 'move' method
2016-04-13 10:31:56 +02:00
Adam Wulkiewicz
83b4473ad3
[algorithms][strategies][index][extension] Enable spherical intersection strategy.
...
Rename strategy_intersection (containing intersection and side strategies)
to intersection_strategies.
Rename strategies/intersection.hpp containing intersection_strategies
implementation to strategies/intersection_strategies.hpp
Add new strategies/intersection.hpp and implement
intersection::services::default_strategy there.
Add specializations of intersection::services::default_strategy for
cartesian_tag system for relate_cartesian_segments strategy and for
spherical_equatorial_tag and geographic_tag for relate_spherical_segments
strategy.
Use the intersection::services::default_strategy in
intersection_strategies.
Also fix a warning in relate_spherical_segments strategy.
2016-04-12 03:19:57 +02:00
Adam Wulkiewicz
d13c2db139
[strategies] Improve spherical intersection strategy.
...
Make sure that for crossing segments the resulting intersection point and
distances ratios are consistent with sides.
2016-04-11 20:08:40 +02:00
Adam Wulkiewicz
ba1e487a68
Merge branch 'develop' into feature/sph_seg_inters
2016-04-05 21:04:17 +02:00
Adam Wulkiewicz
ef6861ad37
[math] Add missing include.
2016-04-05 19:17:41 +02:00
Adam Wulkiewicz
1cf0db5e68
[envelope] Use the original units in the implementation for Segment when possible.
2016-04-05 01:07:29 +02:00
Adam Wulkiewicz
88c49a9c7a
[math] Add math::as_radian and math::from_radian utilities.
2016-04-05 00:56:37 +02:00
Adam Wulkiewicz
3b605afaa7
[envelope] Fix envelope for specific cases of spherical Segments.
...
Remove invalid assertions failing for short segments (ticket 12106).
Ensure MIN <= MAX for segments where difference of coordinates is lesser than machine epsilon by replacing comparisons using epsilon with strict operator calls.
2016-04-03 02:25:06 +02:00
Adam Wulkiewicz
bc9655ba0b
[strategies] Improve robustness of segments intersection strategy.
...
For intersection points near the endpoints check the endpoints explicitly.
Still small precision in some cases for crossing (i) case.
Use newly added spherical formulas instead of the ones implemented
internally in this strategy.
2016-03-31 04:24:49 +02:00
Adam Wulkiewicz
b901b32811
[formulas] Add spherical_equatorial<->cartesian3d conversions and spherical side util.
2016-03-31 04:22:44 +02:00
Adam Wulkiewicz
9401406b6e
[strategies] Improve the robustness of relate_spherical_segments strategy.
...
Normalize intersection points.
If IP is close to an endpoint explicitly compare the original points.
Use consistent ratios for special cases of collinear segments.
2016-03-26 03:23:50 +01:00
Adam Wulkiewicz
6e1a76dfc8
[strategy] Implement spherical Segment/Segment intersection strategy.
...
Ignoring robustness policy.
2016-03-24 04:05:57 +01:00
Adam Wulkiewicz
c3249735cd
[arithmetic][extensions] Move cross_product from extensions and change the arguments.
2016-03-24 04:04:33 +01:00
Adam Wulkiewicz
dee3d1d97d
[strategies][policies] Move segment_intersection_info to intersection strategy.
...
In order to implement CS-specific segment_intersection_info picking
segments and assigning points differently for each CS.
2016-03-24 04:00:11 +01:00
Barend Gehrels
85e0755ccd
[traverse][fix] use two passes, in first pass avoid uu turns to get
...
the interior rings right at starting points. Second pass use uu, but
only switch source if there are only uu turns found. This fixes most
of the simple cases (complex cases can still go wrong)
2016-03-23 13:25:30 +01:00
Barend Gehrels
7186c46f02
[traverse] split new method iterate into two parts
2016-03-23 12:09:12 +01:00
Barend Gehrels
999f3c96a8
[traverse] move iteration to traversal class, to later split it more
...
and reuse it
2016-03-23 12:00:08 +01:00
Barend Gehrels
2db89e5985
Merge branch 'develop' of https://github.com/boostorg/geometry into develop
2016-03-16 17:54:56 +01:00
Barend Gehrels
588d102b19
[union] same solution as for intersection should be applied for union,
...
but not in case of uu or similar
2016-03-16 17:54:03 +01:00
Adam Wulkiewicz
0e83cbce5d
[util] Add missing include (range_reference).
2016-03-16 16:22:53 +01:00
Adam Wulkiewicz
5c3b606dd4
Merge branch 'develop' of github.com:boostorg/geometry into develop
2016-03-16 16:09:19 +01:00
Adam Wulkiewicz
75ad78a21c
[core] Refactor the includes, remove unneeded dependencies.
2016-03-16 16:09:02 +01:00
Barend Gehrels
7d3d0dd69f
[traverse] revise last weeks fix, make it more general. It should just
...
skip finalized arcs. This fixes the robustness test almost completely
2016-03-16 14:46:05 +01:00
Barend Gehrels
c9b9c6950f
[traverse] merge method calls
2016-03-16 12:08:13 +01:00
Barend Gehrels
b468a369e8
[traverse] remove unintentionally committed extra debug info
2016-03-16 12:07:35 +01:00
Adam Wulkiewicz
2f1f29acb6
[core] Add missing include (type_traits).
2016-03-16 04:26:54 +01:00
Adam Wulkiewicz
54fcaf8273
[extensions] Cleanup include (type_traits).
2016-03-16 01:19:39 +01:00
Adam Wulkiewicz
3a688340dd
[io] Cleanup includes (type_traits, range).
2016-03-16 01:19:13 +01:00
Adam Wulkiewicz
fbf5bcd3f3
[policies] Cleanup includes (type_traits).
2016-03-16 01:18:40 +01:00
Adam Wulkiewicz
6208fd9556
[core] Cleanup includes (type_traits, mpl).
2016-03-16 01:18:00 +01:00
Adam Wulkiewicz
ad916f108d
[strategies] Cleanup includes (type_traits, mpl).
2016-03-16 01:17:02 +01:00
Adam Wulkiewicz
b791e1eede
[algorithms] Cleanup includes (type_traits, range).
2016-03-16 01:16:16 +01:00
Adam Wulkiewicz
e79b50c60d
[util] Cleanup includes (type_traits, range).
2016-03-16 01:15:21 +01:00
Adam Wulkiewicz
3ba3a76263
Merge pull request #345 from awulkiew/feature/xxx_in_box
...
Point/Box and Box/Box spatial relations in non-cartesian coordinate systems.
2016-03-09 17:50:28 +01:00
Adam Wulkiewicz
016dc66a68
[strategies] Refactor non-cartesian box_in_box and point_in_box (guidelines, avoiding duplication).
2016-03-09 17:07:08 +01:00
Adam Wulkiewicz
fa300f4089
[disjoint] Refactor non-cartesian box_box implementation (guidelines, avoiding duplication).
2016-03-09 17:06:25 +01:00
Adam Wulkiewicz
65cc553e31
[util] Add math::longitude_distance_signed and math::longitude_distance_unsigned functions.
2016-03-09 17:05:22 +01:00
Barend Gehrels
5383c24b34
[traverse][cluster] fix cases where it selected wrong arc at cluster,
...
a pseudo interior ring
2016-03-09 11:51:12 +01:00
Adam Wulkiewicz
4444357697
[disjoint] Support non-cartesian CSes for Pt/Box and Box/Box.
...
For Point/Box use part of the implementation of point_in_box covered_by
strategy.
2016-03-09 04:25:02 +01:00
Adam Wulkiewicz
8f14bf15c0
[strategies] In point_in_box support non-cartesian CSes and make this strategy it default.
...
The reason is that width of a Box may be greater than 180 deg. Side
strategy won't give the correct result in that case. For edges greater
than 180 deg the result of a side calculation is the opposite to expected.
2016-03-09 04:21:39 +01:00
Adam Wulkiewicz
97fae7d1dd
[strategies] Remove unneeded default_strtegy specializations for box_in_box strategy.
2016-03-09 04:20:10 +01:00
Adam Wulkiewicz
62eaf3a24d
[strategies] In ssf strategy check result WRT epsilon.
2016-03-08 14:46:20 +01:00
Adam Wulkiewicz
d04acacc74
[strategies] Support non-cartesian CSes in box_in_box strategy.
2016-03-08 04:38:48 +01:00
Adam Wulkiewicz
183d32f2e3
[strategies] In winding strategy use normalize_longitude() to avoid using dummy argument to normalize_spheroidal_coordinates().
2016-03-08 04:32:49 +01:00