class TTFunk::Table::Glyf::PathBased

Attributes

horizontal_metrics[R]
left_side_bearing[R]
path[R]
right_side_bearing[R]
x_max[R]
x_min[R]
y_max[R]
y_min[R]

Public Class Methods

new(path, horizontal_metrics) click to toggle source
# File lib/ttfunk/table/glyf/path_based.rb, line 11
def initialize(path, horizontal_metrics)
  @path = path
  @horizontal_metrics = horizontal_metrics

  @x_min = 0
  @y_min = 0
  @x_max = horizontal_metrics.advance_width
  @y_max = 0

  path.commands.each do |command|
    cmd, x, y = command
    next if cmd == :close

    @x_min = x if x < @x_min
    @x_max = x if x > @x_max
    @y_min = y if y < @y_min
    @y_max = y if y > @y_max
  end

  @left_side_bearing = horizontal_metrics.left_side_bearing
  @right_side_bearing =
    horizontal_metrics.advance_width -
    @left_side_bearing -
    (@x_max - @x_min)
end

Public Instance Methods

compound?() click to toggle source
# File lib/ttfunk/table/glyf/path_based.rb, line 41
def compound?
  false
end
number_of_contours() click to toggle source
# File lib/ttfunk/table/glyf/path_based.rb, line 37
def number_of_contours
  path.number_of_contours
end