|  line  | 
 true  | 
 false  | 
 branch  | 
 
| 
4
 | 
 8  | 
 0  | 
 double toDegrees (double radians) { RETVAL = Angle::toDegrees(radians); }  | 
 
| 
6
 | 
 1  | 
 0  | 
 double toRadians (double angleDegrees) { RETVAL = Angle::toRadians(angleDegrees); }  | 
 
| 
8
 | 
 1  | 
 0  | 
 double angle (Coordinate& p0) { RETVAL = Angle::angle(p0); }  | 
 
| 
11
 | 
 1  | 
 0  | 
     RETVAL = Angle::isAcute(*p0, *p1, *p2);  | 
 
| 
15
 | 
 1  | 
 0  | 
     RETVAL = Angle::isObtuse(p0, p1, p2);  | 
 
| 
19
 | 
 1  | 
 0  | 
     RETVAL = Angle::angleBetween(tip1, tail, tip2);  | 
 
| 
23
 | 
 1  | 
 0  | 
     RETVAL = Angle::angleBetweenOriented (tip1, tail, tip2);  | 
 
| 
27
 | 
 1  | 
 0  | 
     RETVAL = Angle::interiorAngle(p0, p1, p2);  | 
 
| 
30
 | 
 1  | 
 0  | 
 int getTurn (double ang1, double ang2)  { RETVAL = Angle::getTurn(ang1, ang2); }  | 
 
| 
32
 | 
 1  | 
 0  | 
 double normalize (double angle)  { RETVAL = Angle::normalize(angle); }  | 
 
| 
34
 | 
 1  | 
 0  | 
 double normalizePositive (double angle)  { RETVAL = Angle::normalizePositive(angle); }  | 
 
| 
36
 | 
 1  | 
 0  | 
 double diff (double ang1, double ang2)  { RETVAL = Angle::diff(ang1, ang2); }  | 
 
| 
40
 | 
 2  | 
 0  | 
     if (Centroid::getCentroid(g, c)) RETVAL = new Coordinate(c);  | 
 
| 
41
 | 
 2  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
 | 
 1  | 
 1  | 
     else XSRETURN_UNDEF;  | 
 
| 
 | 
 1  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
45
 | 
 2  | 
 1  | 
     Coordinate result;  | 
 
| 
46
 | 
 3  | 
 0  | 
     CentroidArea acc;  | 
 
| 
47
 | 
 3  | 
 0  | 
     for(size_t i = 0; i < geoms.size(); ++i) {  | 
 
| 
 | 
 2  | 
 1  | 
     for(size_t i = 0; i < geoms.size(); ++i) {  | 
 
| 
48
 | 
 5  | 
 0  | 
         auto item = geoms.at(i);  | 
 
| 
 | 
 2  | 
 3  | 
         auto item = geoms.at(i);  | 
 
| 
49
 | 
 2  | 
 0  | 
         if (item.is_array_ref()) {  | 
 
| 
50
 | 
 2  | 
 0  | 
             auto seq = Helper::convert_coords(Array(item));  | 
 
| 
 | 
 1  | 
 1  | 
             auto seq = Helper::convert_coords(Array(item));  | 
 
| 
51
 | 
 1  | 
 0  | 
             acc.add(&seq);  | 
 
| 
 | 
 1  | 
 0  | 
             acc.add(&seq);  | 
 
| 
52
 | 
 1  | 
 0  | 
         }  | 
 
| 
55
 | 
 1  | 
 0  | 
         }  | 
 
| 
 | 
 1  | 
 0  | 
         }  | 
 
| 
58
 | 
 3  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
 | 
 2  | 
 1  | 
     else XSRETURN_UNDEF;  | 
 
| 
 | 
 2  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
63
 | 
 1  | 
 1  | 
     Coordinate result;  | 
 
| 
64
 | 
 2  | 
 0  | 
     CentroidLine acc;  | 
 
| 
65
 | 
 2  | 
 0  | 
     for(size_t i = 0; i < geoms.size(); ++i) {  | 
 
| 
 | 
 1  | 
 1  | 
     for(size_t i = 0; i < geoms.size(); ++i) {  | 
 
| 
66
 | 
 3  | 
 0  | 
         auto item = geoms.at(i);  | 
 
| 
 | 
 1  | 
 2  | 
         auto item = geoms.at(i);  | 
 
| 
67
 | 
 1  | 
 0  | 
         if (item.is_array_ref()) {  | 
 
| 
68
 | 
 1  | 
 0  | 
             auto seq = Helper::convert_coords(Array(item));  | 
 
| 
 | 
 0  | 
 1  | 
             auto seq = Helper::convert_coords(Array(item));  | 
 
| 
69
 | 
 0  | 
 0  | 
             acc.add(&seq);  | 
 
| 
 | 
 0  | 
 0  | 
             acc.add(&seq);  | 
 
| 
70
 | 
 0  | 
 0  | 
         }  | 
 
| 
73
 | 
 1  | 
 0  | 
         }  | 
 
| 
 | 
 1  | 
 0  | 
         }  | 
 
| 
76
 | 
 2  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
 | 
 1  | 
 1  | 
     else XSRETURN_UNDEF;  | 
 
| 
 | 
 1  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
80
 | 
 1  | 
 1  | 
     Coordinate result;  | 
 
| 
81
 | 
 3  | 
 0  | 
     CentroidPoint acc;  | 
 
| 
82
 | 
 3  | 
 0  | 
     for(size_t i = 0; i < geoms.size(); ++i) {  | 
 
| 
 | 
 1  | 
 1  | 
     for(size_t i = 0; i < geoms.size(); ++i) {  | 
 
| 
83
 | 
 6  | 
 0  | 
         Object item = Object(geoms.at(i));  | 
 
| 
 | 
 4  | 
 2  | 
         Object item = Object(geoms.at(i));  | 
 
| 
84
 | 
 4  | 
 0  | 
         if (!item) throw ("invalid argument");  | 
 
| 
 | 
 4  | 
 0  | 
         if (!item) throw ("invalid argument");  | 
 
| 
85
 | 
 1  | 
 3  | 
         if (item.stash().name() == "Geo::Geos::Coordinate") {  | 
 
| 
86
 | 
 3  | 
 0  | 
             acc.add(&xs::in(item));  | 
 
| 
 | 
 3  | 
 0  | 
             acc.add(&xs::in(item));  | 
 
| 
 | 
 0  | 
 3  | 
             acc.add(&xs::in(item));  | 
 
| 
87
 | 
 0  | 
 0  | 
         }  | 
 
| 
 | 
 0  | 
 0  | 
         }  | 
 
| 
89
 | 
 3  | 
 0  | 
     }  | 
 
| 
 | 
 3  | 
 0  | 
     }  | 
 
| 
91
 | 
 2  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
 | 
 1  | 
 1  | 
     else XSRETURN_UNDEF;  | 
 
| 
 | 
 1  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
95
 | 
 1  | 
 0  | 
     auto seq = Helper::convert_coords(ring);  | 
 
| 
 | 
 1  | 
 0  | 
     auto seq = Helper::convert_coords(ring);  | 
 
| 
96
 | 
 1  | 
 0  | 
     RETVAL = CGAlgorithms::isPointInRing(p, &seq);  | 
 
| 
100
 | 
 1  | 
 0  | 
     auto seq = Helper::convert_coords(ring);  | 
 
| 
 | 
 1  | 
 0  | 
     auto seq = Helper::convert_coords(ring);  | 
 
| 
101
 | 
 1  | 
 0  | 
     RETVAL = CGAlgorithms::locatePointInRing(p, seq);  | 
 
| 
105
 | 
 1  | 
 0  | 
     auto seq = Helper::convert_coords(line);  | 
 
| 
 | 
 1  | 
 0  | 
     auto seq = Helper::convert_coords(line);  | 
 
| 
106
 | 
 1  | 
 0  | 
     RETVAL = CGAlgorithms::isPointInRing(p, &seq);  | 
 
| 
110
 | 
 1  | 
 0  | 
     auto seq = Helper::convert_coords(ring);  | 
 
| 
 | 
 1  | 
 0  | 
     auto seq = Helper::convert_coords(ring);  | 
 
| 
111
 | 
 1  | 
 0  | 
     RETVAL = CGAlgorithms::isCCW(&seq);  | 
 
| 
115
 | 
 1  | 
 0  | 
     RETVAL = CGAlgorithms::computeOrientation(p1, p2, q);  | 
 
| 
119
 | 
 1  | 
 0  | 
     RETVAL = CGAlgorithms::distancePointLine(p, A, B);  | 
 
| 
123
 | 
 1  | 
 0  | 
     RETVAL = CGAlgorithms::distancePointLinePerpendicular(p, A, B);  | 
 
| 
127
 | 
 1  | 
 0  | 
     RETVAL = CGAlgorithms::distanceLineLine(A, B, C, D);  | 
 
| 
131
 | 
 1  | 
 0  | 
     auto seq = Helper::convert_coords(ring);  | 
 
| 
 | 
 1  | 
 0  | 
     auto seq = Helper::convert_coords(ring);  | 
 
| 
132
 | 
 1  | 
 0  | 
     RETVAL = CGAlgorithms::signedArea(&seq);  | 
 
| 
136
 | 
 1  | 
 0  | 
     auto seq = Helper::convert_coords(pts);  | 
 
| 
 | 
 1  | 
 0  | 
     auto seq = Helper::convert_coords(pts);  | 
 
| 
137
 | 
 1  | 
 0  | 
     RETVAL = CGAlgorithms::signedArea(&seq);  | 
 
| 
141
 | 
 1  | 
 0  | 
     RETVAL = CGAlgorithms::computeOrientation(p1, p2, q);  | 
 
| 
148
 | 
 1  | 
 0  | 
     auto& c = intor.getIntersection();  | 
 
| 
150
 | 
 1  | 
 0  | 
 }  | 
 
| 
153
 | 
 1  | 
 0  | 
     auto ch = ConvexHull(&newGeometry);  | 
 
| 
 | 
 1  | 
 0  | 
     auto ch = ConvexHull(&newGeometry);  | 
 
| 
154
 | 
 1  | 
 0  | 
     RETVAL = Helper::uplift(ch.getConvexHull());  | 
 
| 
 | 
 1  | 
 0  | 
     RETVAL = Helper::uplift(ch.getConvexHull());  | 
 
| 
159
 | 
 1  | 
 0  | 
     Coordinate c;  | 
 
| 
 | 
 1  | 
 0  | 
     Coordinate c;  | 
 
| 
160
 | 
 1  | 
 0  | 
     if (ip.getInteriorPoint(c)) RETVAL = new Coordinate(c);  | 
 
| 
161
 | 
 1  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
 | 
 1  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
 | 
 1  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
166
 | 
 1  | 
 0  | 
     Coordinate c;  | 
 
| 
 | 
 1  | 
 0  | 
     Coordinate c;  | 
 
| 
167
 | 
 1  | 
 0  | 
     if (ip.getInteriorPoint(c)) RETVAL = new Coordinate(c);  | 
 
| 
168
 | 
 1  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
 | 
 1  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
 | 
 1  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
173
 | 
 1  | 
 0  | 
     Coordinate c;  | 
 
| 
 | 
 1  | 
 0  | 
     Coordinate c;  | 
 
| 
174
 | 
 1  | 
 0  | 
     if (ip.getInteriorPoint(c)) RETVAL = new Coordinate(c);  | 
 
| 
175
 | 
 1  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
 | 
 1  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
 | 
 1  | 
 0  | 
     else XSRETURN_UNDEF;  | 
 
| 
180
 | 
 1  | 
 0  | 
     RETVAL = pl.locate(p, &geom);  | 
 
| 
185
 | 
 1  | 
 0  | 
     RETVAL = pl.intersects(p, &geom);  | 
 
| 
189
 | 
 1  | 
 0  | 
     RETVAL = RobustDeterminant::signOfDet2x2(x1, y1, x2, y2);  | 
 
| 
193
 | 
 1  | 
 0  | 
     locate::IndexedPointInAreaLocator locator(geom);  | 
 
| 
194
 | 
 1  | 
 0  | 
     RETVAL = locator.locate(&p);  | 
 
| 
199
 | 
 1  | 
 0  | 
     RETVAL = locator.locate(&p);  | 
 
| 
203
 | 
 46  | 
 0  | 
     auto this_stash = Stash(__PACKAGE__);  | 
 
| 
204
 | 
 46  | 
 0  | 
     xs::exp::create_constants(this_stash, {  | 
 
| 
 | 
 46  | 
 0  | 
     xs::exp::create_constants(this_stash, {  | 
 
| 
 | 
 46  | 
 0  | 
     xs::exp::create_constants(this_stash, {  | 
 
| 
 | 
 46  | 
 0  | 
     xs::exp::create_constants(this_stash, {  | 
 
| 
 | 
 46  | 
 0  | 
     xs::exp::create_constants(this_stash, {  | 
 
| 
 | 
 46  | 
 0  | 
     xs::exp::create_constants(this_stash, {  | 
 
| 
 | 
 46  | 
 0  | 
     xs::exp::create_constants(this_stash, {  | 
 
| 
 | 
 276  | 
 46  | 
     xs::exp::create_constants(this_stash, {  | 
 
| 
 | 
 0  | 
 0  | 
     xs::exp::create_constants(this_stash, {  | 
 
| 
212
 | 
 46  | 
 0  | 
     });  | 
 
| 
213
 | 
 46  | 
 0  | 
     xs::exp::autoexport(this_stash);  | 
 
| 
 | 
 46  | 
 0  | 
     xs::exp::autoexport(this_stash);  |