line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
MODULE = Geo::Geos PACKAGE = Geo::Geos::Noding::NodedSegmentString |
2
|
|
|
|
|
|
|
PROTOTYPES: DISABLE |
3
|
|
|
|
|
|
|
|
4
|
|
|
|
|
|
|
NodedSegmentString* new(SV*, Array coords) { |
5
|
30
|
|
|
|
|
|
auto seq = Helper::convert_coords(coords); |
6
|
30
|
50
|
|
|
|
|
auto v = new NodedSegmentString(seq.clone(), NULL); |
|
|
50
|
|
|
|
|
|
7
|
15
|
50
|
|
|
|
|
RETVAL = v; |
|
|
50
|
|
|
|
|
|
8
|
15
|
|
|
|
|
|
} |
9
|
|
|
|
|
|
|
|
10
|
|
|
|
|
|
|
Sv NodedSegmentString::addIntersectionNode (Coordinate& c, std::size_t segmentIndex) { |
11
|
3
|
50
|
|
|
|
|
auto* node = THIS->addIntersectionNode(&c, segmentIndex); |
12
|
6
|
50
|
|
|
|
|
Sv wrapped = xs::out(node); |
|
|
50
|
|
|
|
|
|
13
|
6
|
50
|
|
|
|
|
Object obj{ST(0)}; |
|
|
50
|
|
|
|
|
|
14
|
3
|
50
|
|
|
|
|
wrapped.payload_attach(obj.detach(), &payload_marker); |
|
|
50
|
|
|
|
|
|
15
|
3
|
50
|
|
|
|
|
RETVAL = wrapped; |
16
|
|
|
|
|
|
|
} |
17
|
|
|
|
|
|
|
|
18
|
0
|
0
|
|
|
|
|
int NodedSegmentString::getSegmentOctant (unsigned int index) |
19
|
|
|
|
|
|
|
|
20
|
|
|
|
|
|
|
void NodedSegmentString::addIntersections (LineIntersector& li, unsigned int segmentIndex, int geomIndex) { |
21
|
1
|
|
|
|
|
|
THIS->addIntersections(&li, segmentIndex, geomIndex); |
22
|
|
|
|
|
|
|
} |
23
|
|
|
|
|
|
|
|
24
|
|
|
|
|
|
|
void NodedSegmentString::addIntersection (Object arg1, unsigned int segmentIndex, SV* arg3 = NULL, SV* arg4 = NULL) { |
25
|
2
|
100
|
|
|
|
|
if (!arg3) { |
26
|
1
|
50
|
|
|
|
|
auto& c = xs::in(arg1); |
27
|
1
|
50
|
|
|
|
|
THIS->addIntersection(c, segmentIndex); |
28
|
|
|
|
|
|
|
} |
29
|
|
|
|
|
|
|
else { |
30
|
1
|
50
|
|
|
|
|
auto& li = xs::in(arg1); |
31
|
1
|
50
|
|
|
|
|
if (!arg3) throw("missing mandatory argument"); |
32
|
1
|
50
|
|
|
|
|
if (!arg4) throw("missing mandatory argument"); |
33
|
1
|
50
|
|
|
|
|
THIS->addIntersection(&li, segmentIndex, SvIV(arg3), SvIV(arg4)); |
|
|
0
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
34
|
|
|
|
|
|
|
} |
35
|
|
|
|
|
|
|
} |
36
|
|
|
|
|
|
|
|
37
|
0
|
|
|
|
|
|
int CLONE_SKIP (...) { PERL_UNUSED_VAR(items); RETVAL = 1; } |
38
|
|
|
|
|
|
|
|
39
|
|
|
|
|
|
|
BOOT { |
40
|
46
|
50
|
|
|
|
|
Stash(__PACKAGE__).inherit("Geo::Geos::Noding::SegmentString"); |
|
|
50
|
|
|
|
|
|
41
|
|
|
|
|
|
|
} |