%module{Boost::Geometry::Utils};
%package{Boost::Geometry::Utils};
%{
#include <myinit.h>
PROTOTYPES: DISABLE
opolygon*
_polygon(my_polygon)
polygon* my_polygon
CODE:
RETVAL = my_polygon;
OUTPUT:
RETVAL
omultipolygon*
_multi_polygon(my_multi_polygon)
multi_polygon* my_multi_polygon
CODE:
RETVAL = my_multi_polygon;
OUTPUT:
RETVAL
polygon*
_polygon_arrayref(my_polygon)
opolygon* my_polygon
CODE:
RETVAL = my_polygon;
OUTPUT:
RETVAL
multi_polygon*
_multi_polygon_arrayref(my_multi_polygon)
omultipolygon* my_multi_polygon
CODE:
RETVAL = my_multi_polygon;
OUTPUT:
RETVAL
omultilinestring*
_multi_linestring(my_multi_linestring)
multi_linestring* my_multi_linestring
CODE:
RETVAL = my_multi_linestring;
OUTPUT:
RETVAL
opolygon*
_read_wkt_polygon(wkt)
std::string& wkt
CODE:
RETVAL = new polygon ();
boost::geometry::read_wkt(wkt, *RETVAL);
OUTPUT:
RETVAL
omultilinestring*
_read_wkt_linestring(wkt)
std::string& wkt
CODE:
RETVAL = new multi_linestring ();
boost::geometry::read_wkt(wkt, *RETVAL);
OUTPUT:
RETVAL
multi_linestring*
polygon_linestring_intersection(my_polygon, my_linestring)
opolygon* my_polygon
omultilinestring* my_linestring
CODE:
RETVAL = new multi_linestring ();
boost::geometry::intersection(*my_polygon, *my_linestring, *RETVAL);
OUTPUT:
RETVAL
std::string
_polygon_to_wkt(my_polygon)
opolygon* my_polygon
CODE:
std::ostringstream output;
output << boost::geometry::wkt(*my_polygon);
RETVAL = output.str();
OUTPUT:
RETVAL
std::string
_multilinestring_to_wkt(mls)
omultilinestring* mls
CODE:
std::ostringstream output;
output << boost::geometry::wkt(*mls);
RETVAL = output.str();
OUTPUT:
RETVAL
multi_linestring*
polygon_multi_linestring_intersection(my_polygon, my_linestring)
polygon* my_polygon
multi_linestring* my_linestring
CODE:
RETVAL = new multi_linestring ();
boost::geometry::intersection(*my_polygon, *my_linestring, *RETVAL);
delete my_polygon; // TODO: not sure if this is best place for this
delete my_linestring; // TODO: not sure if this is best place for this
OUTPUT:
RETVAL
multi_linestring*
multi_polygon_multi_linestring_intersection(my_multi_polygon, my_multi_linestring)
multi_polygon* my_multi_polygon
multi_linestring* my_multi_linestring
CODE:
RETVAL = new multi_linestring ();
boost::geometry::intersection(*my_multi_polygon, *my_multi_linestring, *RETVAL);
delete my_multi_polygon; // TODO: not sure if this is best place for this
delete my_multi_linestring; // TODO: not sure if this is best place for this
OUTPUT:
RETVAL
int
point_within_polygon(my_point_xy, my_polygon)
point_xy* my_point_xy
polygon* my_polygon
CODE:
RETVAL = boost::geometry::within(*my_point_xy, *my_polygon);
delete my_polygon; // TODO: not sure if this is best place for this
delete my_point_xy; // TODO: not sure if this is best place for this
OUTPUT:
RETVAL
int
point_covered_by_polygon(my_point_xy, my_polygon)
point_xy* my_point_xy
polygon* my_polygon
CODE:
RETVAL = boost::geometry::covered_by(*my_point_xy, *my_polygon);
delete my_polygon; // TODO: not sure if this is best place for this
delete my_point_xy; // TODO: not sure if this is best place for this
OUTPUT:
RETVAL
linestring*
linestring_simplify(my_linestring, tolerance)
linestring* my_linestring
const double tolerance
CODE:
RETVAL = new linestring ();
boost::geometry::simplify(*my_linestring, *RETVAL, tolerance);
delete my_linestring; // TODO: not sure if this is best place for this
OUTPUT:
RETVAL
multi_linestring*
multi_linestring_simplify(my_multi_linestring, tolerance)
multi_linestring* my_multi_linestring
const double tolerance
CODE:
RETVAL = new multi_linestring ();
boost::geometry::simplify(*my_multi_linestring, *RETVAL, tolerance);
delete my_multi_linestring; // TODO: not sure if this is best place for this
OUTPUT:
RETVAL
double
linestring_length(my_linestring)
linestring* my_linestring
CODE:
RETVAL = boost::geometry::length(*my_linestring);
OUTPUT:
RETVAL
point_xy*
polygon_centroid(my_polygon)
polygon* my_polygon
CODE:
RETVAL = new point_xy ();
boost::geometry::centroid(*my_polygon, *RETVAL);
OUTPUT:
RETVAL
point_xy*
linestring_centroid(my_linestring)
linestring* my_linestring
CODE:
RETVAL = new point_xy ();
boost::geometry::centroid(*my_linestring, *RETVAL);
OUTPUT:
RETVAL
point_xy*
multi_linestring_centroid(my_multi_linestring)
multi_linestring* my_multi_linestring
CODE:
RETVAL = new point_xy ();
boost::geometry::centroid(*my_multi_linestring, *RETVAL);
OUTPUT:
RETVAL
polygon*
correct_polygon(my_polygon)
polygon* my_polygon
CODE:
boost::geometry::correct(*my_polygon);
RETVAL = my_polygon;
OUTPUT:
RETVAL
multi_polygon*
correct_multi_polygon(my_multi_polygon)
multi_polygon* my_multi_polygon
CODE:
boost::geometry::correct(*my_multi_polygon);
RETVAL = my_multi_polygon;
OUTPUT:
RETVAL
%}