class Geos::PreparedGeometry
Attributes
geometry[R]
ptr[R]
Public Class Methods
new(geom, options = {})
click to toggle source
# File lib/ffi-geos/prepared_geometry.rb, line 11 def initialize(geom, options = {}) check_geometry(geom) options = { auto_free: true }.merge(options) @ptr = FFI::AutoPointer.new( FFIGeos.GEOSPrepare_r(Geos.current_handle_pointer, geom.ptr), self.class.method(:release) ) @geometry = geom @ptr.autorelease = !!options[:auto_free] end
Public Instance Methods
contains?(geom)
click to toggle source
# File lib/ffi-geos/prepared_geometry.rb, line 31 def contains?(geom) check_geometry(geom) bool_result(FFIGeos.GEOSPreparedContains_r(Geos.current_handle_pointer, ptr, geom.ptr)) end
contains_properly?(geom)
click to toggle source
# File lib/ffi-geos/prepared_geometry.rb, line 36 def contains_properly?(geom) check_geometry(geom) bool_result(FFIGeos.GEOSPreparedContainsProperly_r(Geos.current_handle_pointer, ptr, geom.ptr)) end
covered_by?(geom)
click to toggle source
# File lib/ffi-geos/prepared_geometry.rb, line 41 def covered_by?(geom) check_geometry(geom) bool_result(FFIGeos.GEOSPreparedCoveredBy_r(Geos.current_handle_pointer, ptr, geom.ptr)) end
covers?(geom)
click to toggle source
# File lib/ffi-geos/prepared_geometry.rb, line 46 def covers?(geom) check_geometry(geom) bool_result(FFIGeos.GEOSPreparedCovers_r(Geos.current_handle_pointer, ptr, geom.ptr)) end
crosses?(geom)
click to toggle source
# File lib/ffi-geos/prepared_geometry.rb, line 51 def crosses?(geom) check_geometry(geom) bool_result(FFIGeos.GEOSPreparedCrosses_r(Geos.current_handle_pointer, ptr, geom.ptr)) end
disjoint?(geom)
click to toggle source
# File lib/ffi-geos/prepared_geometry.rb, line 56 def disjoint?(geom) check_geometry(geom) bool_result(FFIGeos.GEOSPreparedDisjoint_r(Geos.current_handle_pointer, ptr, geom.ptr)) end
distance(geom)
click to toggle source
# File lib/ffi-geos/prepared_geometry.rb, line 81 def distance(geom) check_geometry(geom) double_ptr = FFI::MemoryPointer.new(:double) FFIGeos.GEOSPreparedDistance_r(Geos.current_handle_pointer, ptr, geom.ptr, double_ptr) double_ptr.read_double end
distance_within?(geom, distance)
click to toggle source
# File lib/ffi-geos/prepared_geometry.rb, line 88 def distance_within?(geom, distance) check_geometry(geom) bool_result(FFIGeos.GEOSPreparedDistanceWithin_r(Geos.current_handle_pointer, ptr, geom.ptr, distance)) end
intersects?(geom)
click to toggle source
# File lib/ffi-geos/prepared_geometry.rb, line 61 def intersects?(geom) check_geometry(geom) bool_result(FFIGeos.GEOSPreparedIntersects_r(Geos.current_handle_pointer, ptr, geom.ptr)) end
nearest_points(geom)
click to toggle source
# File lib/ffi-geos/prepared_geometry.rb, line 93 def nearest_points(geom) check_geometry(geom) coord_seq_ptr = FFIGeos.GEOSPreparedNearestPoints_r(Geos.current_handle_pointer, ptr, geom.ptr) Geos::CoordinateSequence.new(coord_seq_ptr) end
overlaps?(geom)
click to toggle source
# File lib/ffi-geos/prepared_geometry.rb, line 66 def overlaps?(geom) check_geometry(geom) bool_result(FFIGeos.GEOSPreparedOverlaps_r(Geos.current_handle_pointer, ptr, geom.ptr)) end
touches?(geom)
click to toggle source
# File lib/ffi-geos/prepared_geometry.rb, line 71 def touches?(geom) check_geometry(geom) bool_result(FFIGeos.GEOSPreparedTouches_r(Geos.current_handle_pointer, ptr, geom.ptr)) end
within?(geom)
click to toggle source
# File lib/ffi-geos/prepared_geometry.rb, line 76 def within?(geom) check_geometry(geom) bool_result(FFIGeos.GEOSPreparedWithin_r(Geos.current_handle_pointer, ptr, geom.ptr)) end