class GDAL::Transformers::TPSTransformer
Attributes
c_pointer[R]
@return [FFI::Pointer] C pointer to the C TPS transformer.
Public Class Methods
function()
click to toggle source
@return [FFI::Function]
# File lib/gdal/transformers/tps_transformer.rb, line 7 def self.function FFI::GDAL::Alg::TPSTransform end
new(gcp_list, reversed: false)
click to toggle source
@param gcp_list [Array<FFI::GDAL::GCP>] @param reversed [Boolean]
# File lib/gdal/transformers/tps_transformer.rb, line 23 def initialize(gcp_list, reversed: false) 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 = FFI::GDAL::Alg.GDALCreateTPSTransformer(gcp_list.size, gcp_list_ptr, reversed) @c_pointer = FFI::AutoPointer.new(pointer, TPSTransformer.method(:release)) end
release(pointer)
click to toggle source
@param pointer [FFI::Pointer]
# File lib/gdal/transformers/tps_transformer.rb, line 12 def self.release(pointer) return unless pointer && !pointer.null? FFI::GDAL::Alg.GDALDestroyTPSTransformer(pointer) end
Public Instance Methods
destroy!()
click to toggle source
# File lib/gdal/transformers/tps_transformer.rb, line 36 def destroy! TPSTransformer.release(@c_pointer) @c_pointer = nil end
function()
click to toggle source
@return [FFI::Function]
# File lib/gdal/transformers/tps_transformer.rb, line 43 def function self.class.function end