Class: Fontisan::Tables::VariationCommon::VariationRegion

Inherits:
Binary::BaseRecord
  • Object
show all
Defined in:
lib/fontisan/tables/variation_common.rb

Overview

Variation region definition

Defines a region in design space with coordinate ranges for each axis.

Class Method Summary collapse

Methods inherited from Binary::BaseRecord

#raw_data, read, #valid?

Class Method Details

.parse_coordinates(data, axis_count) ⇒ Array<RegionAxisCoordinates>

Parse region axis coordinates

Parameters:

  • data (String)

    Binary data

  • axis_count (Integer)

    Number of axes

Returns:



72
73
74
75
76
77
78
79
80
81
82
# File 'lib/fontisan/tables/variation_common.rb', line 72

def self.parse_coordinates(data, axis_count)
  io = StringIO.new(data)
  io.set_encoding(Encoding::BINARY)

  Array.new(axis_count) do
    coord_data = io.read(6) # 3 * int16
    next nil if coord_data.nil? || coord_data.bytesize < 6

    RegionAxisCoordinates.read(coord_data)
  end.compact
end