MODULE = Geo::Geos PACKAGE = Geo::Geos::Noding::SingleInteriorIntersectionFinder
PROTOTYPES: DISABLE
Sv new(SV*,SV* liObj) {
auto& li = xs::in<LineIntersector&>(liObj);
Sv wrapped = xs::out<>(new SingleInteriorIntersectionFinder(li));
wrapped.payload_attach(SvRV(liObj), &payload_marker);
RETVAL = wrapped;
}
bool SingleInteriorIntersectionFinder::hasIntersection ()
Coordinate* SingleInteriorIntersectionFinder::getInteriorIntersection() {
RETVAL = new Coordinate(THIS->getInteriorIntersection());
}
xs::Array SingleInteriorIntersectionFinder::getIntersectionSegments() {
auto& vector = THIS->getIntersectionSegments();
auto r = xs::Array::create(vector.size());
for(auto& c: vector) {
auto copy = xs::out<Coordinate*>(new Coordinate(c));
r.push(copy);
}
RETVAL = r;
}
int CLONE_SKIP (...) { PERL_UNUSED_VAR(items); RETVAL = 1; }
BOOT {
Stash(__PACKAGE__).inherit("Geo::Geos::Noding::SegmentIntersector");
}