line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
MODULE = Geo::Geos PACKAGE = Geo::Geos::Noding::SingleInteriorIntersectionFinder |
2
|
|
|
|
|
|
|
PROTOTYPES: DISABLE |
3
|
|
|
|
|
|
|
|
4
|
|
|
|
|
|
|
Sv new(SV*,SV* liObj) { |
5
|
1
|
50
|
|
|
|
|
auto& li = xs::in(liObj); |
6
|
2
|
50
|
|
|
|
|
Sv wrapped = xs::out<>(new SingleInteriorIntersectionFinder(li)); |
|
|
50
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
7
|
1
|
50
|
|
|
|
|
wrapped.payload_attach(SvRV(liObj), &payload_marker); |
8
|
1
|
50
|
|
|
|
|
RETVAL = wrapped; |
9
|
|
|
|
|
|
|
} |
10
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
|
12
|
0
|
0
|
|
|
|
|
bool SingleInteriorIntersectionFinder::hasIntersection () |
13
|
|
|
|
|
|
|
|
14
|
|
|
|
|
|
|
Coordinate* SingleInteriorIntersectionFinder::getInteriorIntersection() { |
15
|
2
|
|
|
|
|
|
RETVAL = new Coordinate(THIS->getInteriorIntersection()); |
16
|
1
|
50
|
|
|
|
|
} |
17
|
|
|
|
|
|
|
|
18
|
|
|
|
|
|
|
xs::Array SingleInteriorIntersectionFinder::getIntersectionSegments() { |
19
|
1
|
|
|
|
|
|
auto& vector = THIS->getIntersectionSegments(); |
20
|
2
|
50
|
|
|
|
|
auto r = xs::Array::create(vector.size()); |
|
|
50
|
|
|
|
|
|
21
|
5
|
100
|
|
|
|
|
for(auto& c: vector) { |
22
|
8
|
50
|
|
|
|
|
auto copy = xs::out(new Coordinate(c)); |
|
|
50
|
|
|
|
|
|
23
|
4
|
50
|
|
|
|
|
r.push(copy); |
24
|
|
|
|
|
|
|
} |
25
|
1
|
50
|
|
|
|
|
RETVAL = r; |
26
|
|
|
|
|
|
|
} |
27
|
|
|
|
|
|
|
|
28
|
|
|
|
|
|
|
|
29
|
0
|
|
|
|
|
|
int CLONE_SKIP (...) { PERL_UNUSED_VAR(items); RETVAL = 1; } |
30
|
|
|
|
|
|
|
|
31
|
|
|
|
|
|
|
BOOT { |
32
|
46
|
50
|
|
|
|
|
Stash(__PACKAGE__).inherit("Geo::Geos::Noding::SegmentIntersector"); |
|
|
50
|
|
|
|
|
|
33
|
|
|
|
|
|
|
} |