FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
geometry/test/minimal.cpp at develop · boostorg/geometry · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
boostorg
/
geometry
Public
Notifications
You must be signed in to change notification settings
Fork
232
Star
516
Code
Issues
145
Pull requests
11
Discussions
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Discussions
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
geometry
/
test
/
minimal.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
83 lines (65 loc) · 2.58 KB
Breadcrumbs
geometry
/
test
/
minimal.cpp
Copy path
File metadata and controls
83 lines (65 loc) · 2.58 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
//
Boost.Geometry
//
Unit Test
//
Copyright (c) 2018, Oracle and/or its affiliates.
//
Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
//
Licensed under the Boost Software License version 1.0.
//
http://www.boost.org/users/license.html
#
include
<
geometry_test_common.hpp
>
#
include
<
boost/geometry.hpp
>
#
include
<
boost/geometry/geometries/geometries.hpp
>
int
test_main
(
int
,
char
* [])
{
typedef
bg::model::point<
double
,
2
, bg::cs::cartesian> point;
typedef
bg::model::box<point> box;
typedef
bg::model::linestring<point> linestring;
typedef
bg::model::multi_linestring<linestring> mlinestring;
typedef
bg::model::polygon<point> polygon;
typedef
bg::model::multi_polygon<polygon> mpolygon;
point p;
linestring ls;
mlinestring mls;
polygon po;
mpolygon mpo;
bg::read_wkt
(
"
POINT(0 0)
"
, p);
bg::read_wkt
(
"
LINESTRING(0 0,7 7,7 9)
"
, ls);
bg::read_wkt
(
"
MULTILINESTRING((0 0,7 7,7 9),(7 9, 9 9))
"
, mls);
bg::read_wkt
(
"
POLYGON((0 0,0 5,5 5,5 0,0 0),(1 1,4 1,4 4,1 4,1 1))
"
, po);
bg::read_wkt
(
"
MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0),(1 1,4 1,4 4,1 4,1 1)),((2 2,2 3,3 3,3 2,2 2)))
"
, mpo);
BOOST_CHECK_CLOSE
(
bg::perimeter
(po),
32.0
,
0.0001
);
BOOST_CHECK_CLOSE
(
bg::area
(mpo),
17.0
,
0.0001
);
BOOST_CHECK_CLOSE
(
bg::length
(mls),
13.899494936611665
,
0.0001
);
BOOST_CHECK
(
bg::covered_by
(p, po));
BOOST_CHECK
(!
bg::crosses
(ls, mls));
BOOST_CHECK
(!
bg::equals
(ls, mls));
BOOST_CHECK
(
bg::intersects
(ls, po));
BOOST_CHECK
(
bg::relate
(p, ls,
bg::de9im::mask
(
"
F0F******
"
)));
BOOST_CHECK
(
bg::relation
(mls, mpo).
str
() ==
"
101F00212
"
);
BOOST_CHECK
(
bg::within
(po, mpo));
BOOST_CHECK
(!
bg::touches
(mls, po));
mpolygon res;
bg::intersection
(po, mpo, res);
BOOST_CHECK_CLOSE
(
bg::area
(res),
16.0
,
0.0001
);
bg::clear
(res);
bg::union_
(po, mpo, res);
BOOST_CHECK_CLOSE
(
bg::area
(res),
17.0
,
0.0001
);
bg::clear
(res);
bg::difference
(mpo, po, res);
BOOST_CHECK_CLOSE
(
bg::area
(res),
1.0
,
0.0001
);
bg::clear
(res);
bg::sym_difference
(mpo, po, res);
BOOST_CHECK_CLOSE
(
bg::area
(res),
1.0
,
0.0001
);
BOOST_CHECK
(
bg::is_simple
(ls));
BOOST_CHECK
(
bg::is_valid
(mpo));
point c;
bg::centroid
(mpo, c);
BOOST_CHECK_CLOSE
(
bg::distance
(p, c),
3.5355339059327378
,
0.0001
);
BOOST_CHECK_CLOSE
(
bg::distance
(mls, mpo),
0.0
,
0.0001
);
BOOST_CHECK_CLOSE
(
bg::distance
(po, mpo),
0.0
,
0.0001
);
box b;
bg::envelope
(mls, b);
BOOST_CHECK_CLOSE
(
bg::area
(b),
81.0
,
0.0001
);
polygon h;
bg::convex_hull
(mls, h);
BOOST_CHECK_CLOSE
(
bg::area
(h),
9.0
,
0.0001
);
return
0
;
}
Back
|
FazBrowse Home
|
New Git URL