line |
true |
false |
branch |
5
|
1 |
0 |
auto seq1 = Helper::convert_coords(pts1); |
|
1 |
0 |
auto seq1 = Helper::convert_coords(pts1); |
6
|
1 |
0 |
auto seq2 = Helper::convert_coords(pts2); |
|
1 |
0 |
auto seq2 = Helper::convert_coords(pts2); |
7
|
1 |
0 |
geos::noding::OrientedCoordinateArray oca{seq1}; |
8
|
1 |
0 |
RETVAL = oca.compareTo(seq2); |
|
1 |
0 |
RETVAL = oca.compareTo(seq2); |
12
|
1 |
1 |
if (arg1.is_object_ref() && Object(arg1).stash().name() == "Geo::Geos::Coordinate") { |
|
1 |
0 |
if (arg1.is_object_ref() && Object(arg1).stash().name() == "Geo::Geos::Coordinate") { |
|
1 |
0 |
if (arg1.is_object_ref() && Object(arg1).stash().name() == "Geo::Geos::Coordinate") { |
|
1 |
0 |
if (arg1.is_object_ref() && Object(arg1).stash().name() == "Geo::Geos::Coordinate") { |
|
1 |
0 |
if (arg1.is_object_ref() && Object(arg1).stash().name() == "Geo::Geos::Coordinate") { |
|
1 |
1 |
if (arg1.is_object_ref() && Object(arg1).stash().name() == "Geo::Geos::Coordinate") { |
|
1 |
1 |
if (arg1.is_object_ref() && Object(arg1).stash().name() == "Geo::Geos::Coordinate") { |
|
1 |
1 |
if (arg1.is_object_ref() && Object(arg1).stash().name() == "Geo::Geos::Coordinate") { |
|
0 |
0 |
if (arg1.is_object_ref() && Object(arg1).stash().name() == "Geo::Geos::Coordinate") { |
|
0 |
0 |
if (arg1.is_object_ref() && Object(arg1).stash().name() == "Geo::Geos::Coordinate") { |
13
|
1 |
0 |
auto& c1 = xs::in(arg1); |
14
|
1 |
0 |
auto& c2 = xs::in(arg2); |
15
|
1 |
0 |
RETVAL = Octant::octant(&c1, &c2); |
17
|
0 |
1 |
if(!arg1) throw("undef not allowed"); |
18
|
0 |
1 |
if(!arg2) throw("undef not allowed"); |
19
|
0 |
1 |
double dx = SvNV(arg1); |
|
1 |
0 |
double dx = SvNV(arg1); |
20
|
0 |
1 |
double dy = SvNV(arg2); |
|
1 |
0 |
double dy = SvNV(arg2); |
21
|
1 |
0 |
RETVAL = Octant::octant(dx, dy); |
27
|
1 |
0 |
v.reserve(segmentStrigns.size()); |
|
1 |
0 |
v.reserve(segmentStrigns.size()); |
29
|
1 |
0 |
for (auto it: segmentStrigns) { |
|
1 |
0 |
for (auto it: segmentStrigns) { |
|
2 |
1 |
for (auto it: segmentStrigns) { |
|
2 |
0 |
for (auto it: segmentStrigns) { |
30
|
2 |
0 |
SegmentString& ss = xs::in(it); |
31
|
2 |
0 |
v.push_back(&ss); |
33
|
1 |
0 |
NodingValidator nv(v); |
34
|
0 |
1 |
nv.checkValid(); |
38
|
1 |
1 |
std::vector v; |
39
|
3 |
0 |
v.reserve(segmentStrigns.size()); |
|
3 |
0 |
v.reserve(segmentStrigns.size()); |
41
|
3 |
0 |
for (auto it: segmentStrigns) { |
|
3 |
0 |
for (auto it: segmentStrigns) { |
|
5 |
3 |
for (auto it: segmentStrigns) { |
|
5 |
0 |
for (auto it: segmentStrigns) { |
42
|
5 |
0 |
SegmentString& ss = xs::in(it); |
43
|
5 |
0 |
v.push_back(&ss); |
45
|
3 |
0 |
FastNodingValidator fnv{v}; |
|
1 |
1 |
FastNodingValidator fnv{v}; |
47
|
2 |
1 |
if (GIMME_V == G_VOID) { |
|
1 |
0 |
if (GIMME_V == G_VOID) { |
|
1 |
2 |
if (GIMME_V == G_VOID) { |
48
|
0 |
1 |
fnv.checkValid(); |
52
|
2 |
0 |
if (fnv.isValid()) XSRETURN_UNDEF; |
|
1 |
1 |
if (fnv.isValid()) XSRETURN_UNDEF; |
53
|
1 |
0 |
else RETVAL = fnv.getErrorMessage(); |
|
1 |
0 |
else RETVAL = fnv.getErrorMessage(); |
58
|
1 |
0 |
RETVAL = SegmentPointComparator::compare(octant, p1, p2); |
62
|
1 |
0 |
SegmentString::ConstVect v; |
63
|
1 |
0 |
geos::noding::SegmentStringUtil::extractSegmentStrings(&g, v); |
65
|
1 |
0 |
Array result = xs::Array::create(v.size()); |
|
1 |
0 |
Array result = xs::Array::create(v.size()); |
66
|
1 |
1 |
for(auto ss: v) { |
67
|
1 |
0 |
auto it = xs::out(const_cast(ss)); |
68
|
1 |
0 |
result.push(it); |
70
|
1 |
0 |
RETVAL = result; |
75
|
2 |
0 |
for(auto it: baseSegmentStrings) vb.push_back(&xs::in(it)); |
|
2 |
0 |
for(auto it: baseSegmentStrings) vb.push_back(&xs::in(it)); |
|
2 |
2 |
for(auto it: baseSegmentStrings) vb.push_back(&xs::in(it)); |
|
2 |
0 |
for(auto it: baseSegmentStrings) vb.push_back(&xs::in(it)); |
|
2 |
0 |
for(auto it: baseSegmentStrings) vb.push_back(&xs::in(it)); |
|
2 |
0 |
for(auto it: baseSegmentStrings) vb.push_back(&xs::in(it)); |
78
|
2 |
0 |
for(auto it: segmentStrings) v.push_back(&xs::in(it)); |
|
2 |
0 |
for(auto it: segmentStrings) v.push_back(&xs::in(it)); |
|
2 |
2 |
for(auto it: segmentStrings) v.push_back(&xs::in(it)); |
|
2 |
0 |
for(auto it: segmentStrings) v.push_back(&xs::in(it)); |
|
2 |
0 |
for(auto it: segmentStrings) v.push_back(&xs::in(it)); |
|
2 |
0 |
for(auto it: segmentStrings) v.push_back(&xs::in(it)); |
80
|
2 |
0 |
FastSegmentSetIntersectionFinder finder{&vb}; |
81
|
1 |
1 |
if (!intDetector) RETVAL = finder.intersects(&v); |
|
1 |
0 |
if (!intDetector) RETVAL = finder.intersects(&v); |
83
|
1 |
0 |
auto& id = xs::in(intDetector); |
84
|
1 |
0 |
RETVAL = finder.intersects(&v, &id); |
89
|
46 |
0 |
xs::exp::autoexport(Stash(__PACKAGE__)); |
|
46 |
0 |
xs::exp::autoexport(Stash(__PACKAGE__)); |