Module: RGeo::Geos::CAPIMultiPolygonMethods
- Included in:
- CAPIMultiPolygonImpl
- Defined in:
- ext/geos_c_impl/geometry_collection.c
Instance Method Summary collapse
Instance Method Details
#area ⇒ Object
499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 |
# File 'ext/geos_c_impl/geometry_collection.c', line 499 static VALUE method_multi_polygon_area(VALUE self) { VALUE result; RGeo_GeometryData* self_data; const GEOSGeometry* self_geom; double area; result = Qnil; self_data = RGEO_GEOMETRY_DATA_PTR(self); self_geom = self_data->geom; if (self_geom) { if (GEOSArea(self_geom, &area)) { result = rb_float_new(area); } } return result; } |
#centroid ⇒ Object
518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 |
# File 'ext/geos_c_impl/geometry_collection.c', line 518 static VALUE method_multi_polygon_centroid(VALUE self) { VALUE result; RGeo_GeometryData* self_data; const GEOSGeometry* self_geom; result = Qnil; self_data = RGEO_GEOMETRY_DATA_PTR(self); self_geom = self_data->geom; if (self_geom) { result = rgeo_wrap_geos_geometry( self_data->factory, GEOSGetCentroid(self_geom), Qnil); } return result; } |
#coordinates ⇒ Object
470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 |
# File 'ext/geos_c_impl/geometry_collection.c', line 470 static VALUE method_multi_polygon_coordinates(VALUE self) { VALUE result = Qnil; RGeo_GeometryData* self_data; const GEOSGeometry* self_geom; const GEOSGeometry* poly; unsigned int count; unsigned int i; int zCoordinate; self_data = RGEO_GEOMETRY_DATA_PTR(self); self_geom = self_data->geom; if (self_geom) { zCoordinate = RGEO_FACTORY_DATA_PTR(self_data->factory)->flags & RGEO_FACTORYFLAGS_SUPPORTS_Z_OR_M; count = GEOSGetNumGeometries(self_geom); result = rb_ary_new2(count); for (i = 0; i < count; ++i) { poly = GEOSGetGeometryN(self_geom, i); rb_ary_push(result, extract_points_from_polygon(poly, zCoordinate)); } } return result; } |
#geometry_type ⇒ Object
440 441 442 443 444 445 446 447 448 449 450 451 452 |
# File 'ext/geos_c_impl/geometry_collection.c', line 440 static VALUE method_multi_polygon_geometry_type(VALUE self) { VALUE result; RGeo_GeometryData* self_data; result = Qnil; self_data = RGEO_GEOMETRY_DATA_PTR(self); if (self_data->geom) { result = rgeo_feature_multi_polygon_module; } return result; } |
#hash ⇒ Object
454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 |
# File 'ext/geos_c_impl/geometry_collection.c', line 454 static VALUE method_multi_polygon_hash(VALUE self) { st_index_t hash; RGeo_GeometryData* self_data; VALUE factory; self_data = RGEO_GEOMETRY_DATA_PTR(self); factory = self_data->factory; hash = rb_hash_start(0); hash = rgeo_geos_objbase_hash(factory, rgeo_feature_multi_polygon_module, hash); hash = rgeo_geos_geometry_collection_hash(self_data->geom, hash); return LONG2FIX(rb_hash_end(hash)); } |