]>
Commit | Line | Data |
---|---|---|
1 | // Boost.Geometry (aka GGL, Generic Geometry Library) | |
2 | // QuickBook Example | |
3 | ||
4 | // Copyright (c) 2011-2015 Barend Gehrels, Amsterdam, the Netherlands. | |
5 | ||
6 | // This file was modified by Oracle on 2015. | |
7 | // Modifications copyright (c) 2015 Oracle and/or its affiliates. | |
8 | ||
9 | // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle | |
10 | ||
11 | // Use, modification and distribution is subject to the Boost Software License, | |
12 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at | |
13 | // http://www.boost.org/LICENSE_1_0.txt) | |
14 | ||
15 | //[relate | |
16 | //` Shows how to detect if a point is inside a polygon, or not | |
17 | ||
18 | #include <iostream> | |
19 | ||
20 | #include <boost/geometry.hpp> | |
21 | #include <boost/geometry/geometries/point_xy.hpp> | |
22 | #include <boost/geometry/geometries/polygon.hpp> | |
23 | /*<-*/ #include "create_svg_two.hpp" /*->*/ | |
24 | ||
25 | int main() | |
26 | { | |
27 | typedef boost::geometry::model::d2::point_xy<double> point_type; | |
28 | typedef boost::geometry::model::polygon<point_type> polygon_type; | |
29 | ||
30 | polygon_type poly; | |
31 | boost::geometry::read_wkt( | |
32 | "POLYGON((2 1.3,2.4 1.7,2.8 1.8,3.4 1.2,3.7 1.6,3.4 2,4.1 3,5.3 2.6,5.4 1.2,4.9 0.8,2.9 0.7,2 1.3)" | |
33 | "(4.0 2.0, 4.2 1.4, 4.8 1.9, 4.4 2.2, 4.0 2.0))", poly); | |
34 | ||
35 | point_type p(4, 1); | |
36 | ||
37 | boost::geometry::de9im::mask mask("T*F**F***"); // within | |
38 | bool check = boost::geometry::relate(p, poly, mask); | |
39 | ||
40 | std::cout << "relate: " << (check ? "yes" : "no") << std::endl; | |
41 | /*<-*/ create_svg("relate.svg", poly, p); /*->*/ | |
42 | return 0; | |
43 | } | |
44 | ||
45 | //] | |
46 | ||
47 | //[relate_output | |
48 | /*` | |
49 | Output: | |
50 | [pre | |
51 | relate: yes | |
52 | ||
53 | [$img/algorithms/within.png] | |
54 | ] | |
55 | ||
56 | */ | |
57 | //] |