Class: GDAL::Transformers::GeolocationTransformer

Inherits:
Object
  • Object
show all
Defined in:
lib/gdal/transformers/geolocation_transformer.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#c_pointerFFI::Pointer (readonly)

Returns C pointer to the C geolocation transformer.

Returns:

  • (FFI::Pointer)

    C pointer to the C geolocation transformer.



19
20
21
# File 'lib/gdal/transformers/geolocation_transformer.rb', line 19

def c_pointer
  @c_pointer
end

Class Method Details

.functionFFI::Function

Returns:

  • (FFI::Function)


7
8
9
# File 'lib/gdal/transformers/geolocation_transformer.rb', line 7

def self.function
  FFI::GDAL::Alg::GeoLocTransform
end

.release(pointer) ⇒ Object

Parameters:

  • pointer (FFI::Pointer)


12
13
14
15
16
# File 'lib/gdal/transformers/geolocation_transformer.rb', line 12

def self.release(pointer)
  return unless pointer && !pointer.null?

  FFI::GDAL::Alg.GDALDestroyGeoLocTransformer(pointer)
end

Instance Method Details

#destroy!Object



37
38
39
40
41
# File 'lib/gdal/transformers/geolocation_transformer.rb', line 37

def destroy!
  GeolocationTransformer.release(@c_pointer)

  @c_pointer = nil
end

#functionFFI::Function

Returns:

  • (FFI::Function)


44
45
46
# File 'lib/gdal/transformers/geolocation_transformer.rb', line 44

def function
  self.class.function
end

#intialize(base_dataset, geolocation_info, reversed: false) ⇒ Object

Parameters:

  • base_dataset (GDAL::Dataset)
  • geolocation_info (Array<String>)
  • reversed (Boolean) (defaults to: false)


24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/gdal/transformers/geolocation_transformer.rb', line 24

def intialize(base_dataset, geolocation_info, reversed: false)
  base_dataset_ptr = GDAL._pointer(GDAL::Dataset, base_dataset)
  geolocation_info_ptr = GDAL._string_array_to_pointer(geolocation_info)

  pointer = FFI::GDAL::Alg.CreateGeoLocTransformer(
    base_dataset_ptr,
    geolocation_info_ptr,
    reversed
  )

  @c_pointer = FFI::AutoPointer.new(pointer, GeolocationTransformer.method(:release))
end