[crosses] add bg::crosses() algorithm

This commit is contained in:
Adam Wulkiewicz 2014-04-09 01:33:37 +02:00
parent c1d4a09ec7
commit d3f8ea2f6b
7 changed files with 10 additions and 3 deletions

View File

@ -24,6 +24,7 @@
\defgroup core core: meta-functions for geometry types
\defgroup correct correct: correct geometries
\defgroup covered_by covered_by: detect if a geometry is inside or on the border of another geometry, a.o. point-in-polygon (border included)
\defgroup crosses crosses: detect if two geometries crosses each other
\defgroup cs coordinate systems
\defgroup difference difference: difference of two geometries
\defgroup disjoint disjoint: detect if geometries are not spatially related

View File

@ -299,6 +299,7 @@
</simplelist>
<bridgehead renderas="sect3">Predicates</bridgehead>
<simplelist type="vert" columns="1">
<member><link linkend="boost_geometry.reference.crosses">boost::geometry::crosses</link></member>
<member><link linkend="boost_geometry.reference.disjoint">boost::geometry::disjoint</link></member>
<member><link linkend="boost_geometry.reference.equals">boost::geometry::equals</link></member>
<member><link linkend="boost_geometry.reference.intersects">boost::geometry::intersects</link></member>

View File

@ -318,6 +318,7 @@
</simplelist>
<bridgehead renderas="sect3">Predicates</bridgehead>
<simplelist type="vert" columns="1">
<member><link linkend="geometry.reference.algorithms.crosses">crosses</link></member>
<member><link linkend="geometry.reference.algorithms.covered_by">covered_by</link></member>
<member><link linkend="geometry.reference.algorithms.disjoint">disjoint</link></member>
<member><link linkend="geometry.reference.algorithms.equals">equals</link></member>
@ -734,7 +735,7 @@
<simplelist type="vert" columns="1">
<member><link linkend="geometry.reference.spatial_indexes.group__predicates.contains_geometry_const___">contains(Geometry const &amp;)</link></member>
<member><link linkend="geometry.reference.spatial_indexes.group__predicates.covered_by_geometry_const___">covered_by(Geometry const &amp;)</link></member>
<member><link linkend="geometry.reference.spatial_indexes.group__predicates.covers_geometry_const___">covers(Geometry const &amp;)</link></member>
<member><link linkend="geometry.reference.spatial_indexes.group__predicates.covers_geometry_const___">covers(Geometry const &amp;)</link></member>
<member><link linkend="geometry.reference.spatial_indexes.group__predicates.disjoint_geometry_const___">disjoint(Geometry const &amp;)</link></member>
<member><link linkend="geometry.reference.spatial_indexes.group__predicates.intersects_geometry_const___">intersects(Geometry const &amp;)</link></member>
<member><link linkend="geometry.reference.spatial_indexes.group__predicates.overlaps_geometry_const___">overlaps(Geometry const &amp;)</link></member>

View File

@ -89,6 +89,8 @@
[include generated/covered_by.qbk]
[endsect]
[include generated/crosses.qbk]
[include generated/difference.qbk]
[include generated/disjoint.qbk]

View File

@ -1138,8 +1138,8 @@ struct static_mask_crosses_type<Geometry1, Geometry2, Dim, Dim, D1LessD2/*false*
typename geometry::tag<Geometry2>::type>
{};
// dim(G1) == 1 && dim(G2) == 1 - L/L
template <typename Geometry1, typename Geometry2, bool D1LessD2>
struct static_mask_crosses_type<Geometry1, Geometry2, 1, 1, D1LessD2>
template <typename Geometry1, typename Geometry2>
struct static_mask_crosses_type<Geometry1, Geometry2, 1, 1, false>
{
typedef static_mask<'0', '*', '*', '*', '*', '*', '*', '*', '*'> type;
};

View File

@ -45,6 +45,7 @@
#include <boost/geometry/algorithms/convex_hull.hpp>
#include <boost/geometry/algorithms/correct.hpp>
#include <boost/geometry/algorithms/covered_by.hpp>
#include <boost/geometry/algorithms/crosses.hpp>
#include <boost/geometry/algorithms/difference.hpp>
#include <boost/geometry/algorithms/disjoint.hpp>
#include <boost/geometry/algorithms/distance.hpp>

View File

@ -20,6 +20,7 @@ test-suite boost-geometry-algorithms
[ run correct.cpp ]
[ run convert.cpp : : : <toolset>msvc:<cxxflags>/bigobj ]
[ run covered_by.cpp ]
[ run crosses.cpp ]
[ run difference.cpp : : : <define>BOOST_GEOMETRY_TEST_ONLY_ONE_TYPE <toolset>msvc:<cxxflags>/bigobj ]
[ run disjoint.cpp ]
[ run distance.cpp : : : <toolset>msvc:<cxxflags>/bigobj ]