Sha256: 43ef6a83865c7bcdd89fc9b632295afc62880a9b01c1be5a061b7fafa3907727
Contents?: true
Size: 1.45 KB
Versions: 2
Compression:
Stored size: 1.45 KB
Contents
require_relative 'point_extensions' module OGR class Point include OGR::Geometry include PointExtensions # @param [FFI::Pointer] geometry_ptr def initialize(geometry_ptr = nil) geometry_ptr ||= OGR::Geometry.create(:wkbPoint) initialize_from_pointer(geometry_ptr) end # @return [Float] def x return nil if empty? FFI::OGR::API.OGR_G_GetX(@c_pointer, 0) end # @return [Float] def y return nil if empty? FFI::OGR::API.OGR_G_GetY(@c_pointer, 0) end # @return [Float] def z return nil if empty? FFI::OGR::API.OGR_G_GetZ(@c_pointer, 0) end # @return [Array<Float, Float, Float>] [x, y] if 2d or [x, y, z] if 3d. def point return [] if empty? x_ptr = FFI::MemoryPointer.new(:double) y_ptr = FFI::MemoryPointer.new(:double) z_ptr = FFI::MemoryPointer.new(:double) FFI::OGR::API.OGR_G_GetPoint(@c_pointer, 0, x_ptr, y_ptr, z_ptr) if coordinate_dimension == 2 [x_ptr.read_double, y_ptr.read_double] else [x_ptr.read_double, y_ptr.read_double, z_ptr.read_double] end end def set_point(x, y, z = 0) FFI::OGR::API.OGR_G_SetPoint(@c_pointer, 0, x, y, z) end # Adds a point to a LineString or Point geometry. # # @param x [Float] # @param y [Float] # @param z [Float] def add_point(x, y, z = 0) FFI::OGR::API.OGR_G_AddPoint(@c_pointer, x, y, z) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ffi-gdal-1.0.0.beta5 | lib/ogr/geometries/point.rb |
ffi-gdal-1.0.0.beta4 | lib/ogr/geometries/point.rb |