class Draught::Renderer::PdfContext
Attributes
height[R]
width[R]
Public Class Methods
new(width, height)
click to toggle source
# File lib/draught/renderer.rb, line 12 def initialize(width, height) @width, @height = width, height end
Public Instance Methods
document()
click to toggle source
# File lib/draught/renderer.rb, line 16 def document @document ||= Prawn::Document.new(page_size: [width, height], margin: 0) end
draw_closed_path(path)
click to toggle source
# File lib/draught/renderer.rb, line 20 def draw_closed_path(path) points = path.points.dup close_and_stroke do self.line_width = 0.003 move_to(*point_tuple(points.shift)) points.each do |pointlike| draw_pointlike(pointlike) end end end
draw_pointlike(pointlike)
click to toggle source
# File lib/draught/renderer.rb, line 31 def draw_pointlike(pointlike) case pointlike when Draught::Curve pointlike.as_cubic_beziers.each do |cubic_bezier| draw_pointlike(cubic_bezier) end when Draught::CubicBezier curve_to(point_tuple(pointlike.end_point), { bounds: [ point_tuple(pointlike.control_point_1), point_tuple(pointlike.control_point_2) ] }) else line_to(*point_tuple(pointlike)) end end
point_tuple(point)
click to toggle source
# File lib/draught/renderer.rb, line 49 def point_tuple(point) [point.x, point.y] end