| line |
true |
false |
branch |
|
5
|
2 |
1 |
int vQuadrantSegments = quadrantSegments ? SvIV(quadrantSegments) : (int)BufferParameters::DEFAULT_QUADRANT_SEGMENTS; |
|
|
2 |
0 |
int vQuadrantSegments = quadrantSegments ? SvIV(quadrantSegments) : (int)BufferParameters::DEFAULT_QUADRANT_SEGMENTS; |
|
|
0 |
0 |
int vQuadrantSegments = quadrantSegments ? SvIV(quadrantSegments) : (int)BufferParameters::DEFAULT_QUADRANT_SEGMENTS; |
|
6
|
1 |
2 |
int vEndCapStyle = endCapStyle? SvIV(endCapStyle) : (int)BufferParameters::CAP_ROUND; |
|
|
1 |
0 |
int vEndCapStyle = endCapStyle? SvIV(endCapStyle) : (int)BufferParameters::CAP_ROUND; |
|
|
0 |
0 |
int vEndCapStyle = endCapStyle? SvIV(endCapStyle) : (int)BufferParameters::CAP_ROUND; |
|
7
|
3 |
0 |
Geometry* r = BufferOp::bufferOp(&g, distance, vQuadrantSegments, vEndCapStyle); |
|
8
|
3 |
0 |
RETVAL = Helper::uplift(r); |
|
12
|
1 |
0 |
RETVAL = DistanceOp::distance(&g0, &g1); |
|
16
|
1 |
0 |
Array r; |
|
17
|
1 |
0 |
auto seq = DistanceOp::nearestPoints(&g0, &g1); |
|
18
|
1 |
0 |
if(seq) { |
|
20
|
1 |
0 |
r = Helper::convert_copy(seq); |
|
22
|
1 |
0 |
RETVAL = r; |
|
26
|
1 |
0 |
Array r; |
|
27
|
1 |
0 |
auto seq = DistanceOp::closestPoints(&g0, &g1); |
|
28
|
1 |
0 |
if(seq) { |
|
30
|
1 |
0 |
r = Helper::convert_copy(seq); |
|
32
|
1 |
0 |
RETVAL = r; |
|
36
|
0 |
1 |
if (opCode > 4) throw "wrong opCode"; |
|
38
|
1 |
0 |
Geometry* g = OverlayOp::overlayOp(&g0, &g1, code); |
|
39
|
1 |
0 |
RETVAL = Helper::uplift(g); |
|
43
|
2 |
0 |
if (obj.stash().name() == "Geo::Geos::Coordinate") { |
|
|
2 |
0 |
if (obj.stash().name() == "Geo::Geos::Coordinate") { |
|
|
1 |
1 |
if (obj.stash().name() == "Geo::Geos::Coordinate") { |
|
44
|
1 |
0 |
auto& c = xs::in(obj); |
|
45
|
1 |
0 |
RETVAL = IsValidOp::isValid(c); |
|
48
|
1 |
0 |
auto& g = xs::in(obj); |
|
49
|
1 |
0 |
RETVAL = IsValidOp::isValid(g); |
|
55
|
1 |
1 |
else { |
|
|
1 |
0 |
else { |
|
58
|
1 |
0 |
switch(rule_id) { |
|
|
0 |
0 |
switch(rule_id) { |
|
60
|
0 |
0 |
case 1: rule = &BoundaryNodeRule::getBoundaryEndPoint(); break; |
|
61
|
0 |
0 |
case 2: rule = &BoundaryNodeRule::getBoundaryMultivalentEndPoint(); break; |
|
62
|
0 |
0 |
case 3: rule = &BoundaryNodeRule::getBoundaryMonovalentEndPoint(); break; |
|
63
|
0 |
0 |
case 4: rule = &BoundaryNodeRule::getBoundaryOGCSFS(); break; |
|
64
|
1 |
0 |
default: throw("Wrong boundaryNodeRule"); |
|
67
|
1 |
0 |
} |
|
71
|
1 |
0 |
LineMerger lm; |
|
|
1 |
0 |
LineMerger lm; |
|
73
|
1 |
0 |
for(auto it: in) { |
|
|
1 |
0 |
for(auto it: in) { |
|
|
2 |
1 |
for(auto it: in) { |
|
|
2 |
0 |
for(auto it: in) { |
|
74
|
2 |
0 |
lm.add(&xs::in(it)); |
|
|
2 |
0 |
lm.add(&xs::in(it)); |
|
77
|
1 |
0 |
auto v = lm.getMergedLineStrings(); |
|
78
|
1 |
0 |
Array out = Array::create(v->size()); |
|
|
1 |
0 |
Array out = Array::create(v->size()); |
|
79
|
1 |
1 |
for(LineString* it: *v) { |
|
80
|
1 |
0 |
auto wrapped = xs::out(it); |
|
81
|
1 |
0 |
out.push(wrapped); |
|
83
|
1 |
0 |
RETVAL = out; |
|
84
|
1 |
0 |
delete v; |
|
88
|
1 |
0 |
RETVAL = LineSequencer::isSequenced(&g); |
|
92
|
1 |
0 |
RETVAL = Helper::uplift(LineSequencer::sequence(g)); |
|
|
1 |
0 |
RETVAL = Helper::uplift(LineSequencer::sequence(g)); |
|
96
|
46 |
0 |
auto this_stash = Stash(__PACKAGE__); |
|
97
|
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, { |
|
|
46 |
0 |
xs::exp::create_constants(this_stash, { |
|
|
46 |
0 |
xs::exp::create_constants(this_stash, { |
|
|
46 |
0 |
xs::exp::create_constants(this_stash, { |
|
|
414 |
46 |
xs::exp::create_constants(this_stash, { |
|
|
0 |
0 |
xs::exp::create_constants(this_stash, { |
|
108
|
46 |
0 |
}); |
|
109
|
46 |
0 |
xs::exp::autoexport(this_stash); |
|
|
46 |
0 |
xs::exp::autoexport(this_stash); |