...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Checks if two geometries are disjoint.
template<typename Geometry1, typename Geometry2> bool disjoint(Geometry1 const & geometry1, Geometry2 const & geometry2)
Type 
Concept 
Name 
Description 

Geometry1 const & 
Any type fulfilling a Geometry Concept 
geometry1 
A model of the specified concept 
Geometry2 const & 
Any type fulfilling a Geometry Concept 
geometry2 
A model of the specified concept 
Returns true if two geometries are disjoint
Either
#include <boost/geometry.hpp>
Or
#include <boost/geometry/algorithms/disjoint.hpp>
The function disjoint implements function Disjoint from the OGC Simple Feature Specification.
Point 
Segment 
Box 
Linestring 
Ring 
Polygon 
MultiPoint 
MultiLinestring 
MultiPolygon 
Variant 


Point 










Segment 










Box 










Linestring 










Ring 










Polygon 










MultiPoint 










MultiLinestring 










MultiPolygon 










Variant 










Checks if two geometries are disjoint
#include <iostream> #include <boost/geometry.hpp> #include <boost/geometry/geometries/point_xy.hpp> #include <boost/geometry/geometries/polygon.hpp> namespace bg = boost::geometry; int main() { // Checks if two geometries are disjoint, which means that two geometries have zero intersection. bg::model::polygon<bg::model::d2::point_xy<double> > poly1; bg::read_wkt("POLYGON((0 2,2 0,4 2,2 4,0 2))", poly1); bg::model::polygon<bg::model::d2::point_xy<double> > poly2; bg::read_wkt("POLYGON((2 2,4 4,6 2,4 0,2 2))", poly2); bool check_disjoint = bg::disjoint(poly1, poly2); if (check_disjoint) { std::cout << "Disjoint: Yes" << std::endl; } else { std::cout << "Disjoint: No" << std::endl; } bg::model::polygon<bg::model::d2::point_xy<double> > poly3; bg::read_wkt("POLYGON((0 2,2 4,4 2,2 0,0 2))", poly3); check_disjoint = bg::disjoint(poly1, poly3); if (check_disjoint) { std::cout << "Disjoint: Yes" << std::endl; } else { std::cout << "Disjoint: No" << std::endl; } return 0; }
Output:
Disjoint: Yes Disjoint: No