Sha256: 2a77f694d5753e014cd527aca9cbb8cecbffb253fd15cd32de28c994062c385b

Contents?: true

Size: 837 Bytes

Versions: 15

Compression:

Stored size: 837 Bytes

Contents

class Prawn::SVG::Elements::Viewport < Prawn::SVG::Elements::Base
  def parse
    parent_dimensions = [state.viewport_sizing.viewport_width, state.viewport_sizing.viewport_height]

    @sizing = Prawn::SVG::Calculators::DocumentSizing.new(parent_dimensions, attributes)
    @sizing.calculate

    @x = x_pixels(attributes['x'] || 0)
    @y = y_pixels(attributes['y'] || 0)

    state.viewport_sizing = @sizing
  end

  def apply
    if @x != 0 || @y != 0
      add_call 'transformation_matrix', 1, 0, 0, 1, @x, -@y
    end

    add_call 'rectangle', [0, y(0)], @sizing.output_width, @sizing.output_height
    add_call 'clip'
    add_call 'transformation_matrix', @sizing.x_scale, 0, 0, @sizing.y_scale, 0, 0
    add_call 'transformation_matrix', 1, 0, 0, 1, -@sizing.x_offset, @sizing.y_offset
  end

  def container?
    true
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
prawn-svg-0.34.1 lib/prawn/svg/elements/viewport.rb
prawn-svg-0.34.0 lib/prawn/svg/elements/viewport.rb
prawn-svg-0.33.0 lib/prawn/svg/elements/viewport.rb
prawn-svg-0.32.0 lib/prawn/svg/elements/viewport.rb
prawn-svg-0.31.0 lib/prawn/svg/elements/viewport.rb
prawn-svg-0.30.0 lib/prawn/svg/elements/viewport.rb
prawn-svg-0.29.1 lib/prawn/svg/elements/viewport.rb
prawn-svg-0.29.0 lib/prawn/svg/elements/viewport.rb
prawn-svg-0.28.0 lib/prawn/svg/elements/viewport.rb
prawn-svg-0.27.1 lib/prawn/svg/elements/viewport.rb
prawn-svg-0.27.0 lib/prawn/svg/elements/viewport.rb
prawn-svg-0.26.0 lib/prawn/svg/elements/viewport.rb
prawn-svg-0.25.2 lib/prawn/svg/elements/viewport.rb
prawn-svg-0.25.1 lib/prawn/svg/elements/viewport.rb
prawn-svg-0.25.0 lib/prawn/svg/elements/viewport.rb