class DYI::Drawing::Filter::DropShadow

Attributes

id[R]

Public Class Methods

new(canvas, blur_std, dx, dy) click to toggle source
# File lib/dyi/drawing/filter.rb, line 32
def initialize(canvas, blur_std, dx, dy)
  @canvas = canvas
  @blur_std = blur_std.to_i
  @dx = Length.new(dx)
  @dy = Length.new(dy)
  @id = @canvas.add_define(self)
end

Public Instance Methods

child_elements() click to toggle source
# File lib/dyi/drawing/filter.rb, line 40
def child_elements
  []
end
draw_children?() click to toggle source
# File lib/dyi/drawing/filter.rb, line 44
def draw_children?
  true
end

Private Instance Methods

attributes() click to toggle source
# File lib/dyi/drawing/filter.rb, line 50
def attributes
  {
    :id => @id,
    :filterUnits => 'userSpaceOnUse',
    :x => 0,
    :y => 0,
    :width => @canvas.width,
    :height => @canvas.height,
  }
end
child_elements_to_svg(xml) click to toggle source
# File lib/dyi/drawing/filter.rb, line 65
def child_elements_to_svg(xml)
  xml.feGaussianBlur(:in => 'SourceAlpha', :stdDeviation => @blur_std, :result => 'blur')
  xml.feOffset(:in => 'blur', :dx => @dx, :dy => @dy,  :result => 'offsetBlur')
  xml.feMerge {
    xml.feMergeNode(:in => 'offsetBlur')
    xml.feMergeNode(:in => 'SourceGraphic')
  }
end
svg_tag() click to toggle source
# File lib/dyi/drawing/filter.rb, line 61
def svg_tag
   'filter'
end