| 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__)); |