Class: Prawn::SVG::Elements::Viewport

Inherits:
Base
  • Object
show all
Defined in:
lib/prawn/svg/elements/viewport.rb

Constant Summary

Constants inherited from Base

Base::COMMA_WSP_REGEXP, Base::MissingAttributesError, Base::PAINT_TYPES, Base::SVG_NAMESPACE, Base::SkipElementError, Base::SkipElementQuietly

Constants included from Attributes::Stroke

Attributes::Stroke::CAP_STYLE_TRANSLATIONS, Attributes::Stroke::JOIN_STYLE_TRANSLATIONS

Instance Attribute Summary

Attributes inherited from Base

#attributes, #base_calls, #calls, #document, #parent_calls, #properties, #source, #state

Instance Method Summary collapse

Methods inherited from Base

#initialize, #name, #parse_and_apply, #process

Methods included from TransformParser

#parse_transform_attribute

Methods included from PDFMatrix

#load_matrix, #matrix_for_pdf, #rotation_matrix, #scale_matrix, #translation_matrix

Methods included from Attributes::Space

#parse_xml_space_attribute

Methods included from Attributes::Stroke

#parse_stroke_attributes_and_call

Methods included from Attributes::ClipPath

#parse_clip_path_attribute_and_call

Methods included from Attributes::Opacity

#parse_opacity_attributes_and_call

Methods included from Attributes::Transform

#parse_transform_attribute_and_call

Constructor Details

This class inherits a constructor from Prawn::SVG::Elements::Base

Instance Method Details

#applyObject



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/prawn/svg/elements/viewport.rb', line 14

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

  if overflow_hidden?
    add_call 'rectangle', [0, y(0)], @sizing.output_width, @sizing.output_height
    add_call 'clip'
  end

  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

#container?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/prawn/svg/elements/viewport.rb', line 26

def container?
  true
end

#parseObject



2
3
4
5
6
7
8
9
10
11
12
# File 'lib/prawn/svg/elements/viewport.rb', line 2

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