class GDAL::Transformers::GCPTransformer
Attributes
c_pointer[R]
@return [FFI::Pointer] C pointer to the GCP transformer.
Public Class Methods
function()
click to toggle source
@return [FFI::Function]
# File lib/gdal/transformers/gcp_transformer.rb, line 7 def self.function FFI::GDAL::Alg::GCPTransform end
new(gcp_list, requested_polynomial_order, reversed: false, tolerance: nil, minimum_gcps: nil)
click to toggle source
@param gcp_list [Array<FFI::GDAL::GCP>] @param requested_polynomial_order [Integer] 1, 2, or 3. @param reversed [Boolean]
# File lib/gdal/transformers/gcp_transformer.rb, line 24 def initialize(gcp_list, requested_polynomial_order, reversed: false, tolerance: nil, minimum_gcps: nil) gcp_list_ptr = FFI::MemoryPointer.new(:pointer, gcp_list.size) # TODO: fasterer: each_with_index is slower than loop gcp_list.each_with_index do |gcp, i| gcp_list_ptr[i].put_pointer(0, gcp.to_ptr) end pointer = if tolerance || minimum_gcps FFI::GDAL::Alg.GDALCreateGCPRefineTransformer( gcp_list.size, gcp_list_ptr, requested_polynomial_order, reversed ) else FFI::GDAL::Alg.GDALCreateGCPTransformer( gcp_list.size, gcp_list_ptr, requested_polynomial_order, reversed ) end @c_pointer = FFI::AutoPointer.new(pointer, GCPTransformer.method(:release)) end
release(pointer)
click to toggle source
@param pointer [FFI::Pointer]
# File lib/gdal/transformers/gcp_transformer.rb, line 12 def self.release(pointer) return unless pointer && !pointer.null? FFI::GDAL::Alg.GDALDestroyGCPTransformer(pointer) end
Public Instance Methods
destroy!()
click to toggle source
# File lib/gdal/transformers/gcp_transformer.rb, line 51 def destroy! GCPTransformer.release(@c_pointer) @c_pointer = nil end
function()
click to toggle source
@return [FFI::Function]
# File lib/gdal/transformers/gcp_transformer.rb, line 58 def function self.class.function end