877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
|
# File 'ext/geos_c_impl/geometry.c', line 877
static VALUE
method_geometry_union(VALUE self, VALUE rhs)
{
VALUE result;
RGeo_GeometryData* self_data;
const GEOSGeometry* self_geom;
VALUE factory;
const GEOSGeometry* rhs_geom;
int state = 0;
result = Qnil;
self_data = RGEO_GEOMETRY_DATA_PTR(self);
self_geom = self_data->geom;
if (self_geom) {
factory = self_data->factory;
rhs_geom = rgeo_convert_to_geos_geometry(factory, rhs, Qnil, &state);
if (state) {
rb_jump_tag(state);
}
result =
rgeo_wrap_geos_geometry(factory, GEOSUnion(self_geom, rhs_geom), Qnil);
}
return result;
}
|