Sha256: f2ca7ef51c83e741b48ea37fb74308793f585f604add7848192d6e5706e229eb

Contents?: true

Size: 1013 Bytes

Versions: 10

Compression:

Stored size: 1013 Bytes

Contents

# frozen_string_literal: true

new({ particle: :width, category: :geometry, type: :int })
new({ particle: :height, category: :geometry, type: :int })

new({ particle: :size, category: :geometry, type: :int }) do |params|
  params = { value: params } unless params.instance_of? Hash
  params[:recursive] ||= false
  params[:reference] ||= :x
  params[:target] ||= :self # :all resize atome + attached +distance between  to the value
  # self: resize the current atome to current value
  params[:propagate] ||= :raw # proportional atome children will be resize according
  # to its parent , raw apply the raw value to the attached atomes
  if params[:reference] == :x
    original_width = width
    width(params[:value])
    height(height * params[:value] / original_width) if value
  else
    original_height = height
    height(params[:value])
    width(width * params[:value] / original_height)
  end

  if params[:recursive]
    attached.each do |atome_id|
      grab(atome_id).size(params)
    end

  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
atome-0.5.7.3.6 lib/atome/genesis/particles/geometry.rb
atome-0.5.7.3.5 lib/atome/genesis/particles/geometry.rb
atome-0.5.7.3.3 lib/atome/genesis/particles/geometry.rb
atome-0.5.7.3.2 lib/atome/genesis/particles/geometry.rb
atome-0.5.7.3.1 lib/atome/genesis/particles/geometry.rb
atome-0.5.7.3.0 lib/atome/genesis/particles/geometry.rb
atome-0.5.7.1.8 lib/atome/genesis/particles/geometry.rb
atome-0.5.7.1.7 lib/atome/genesis/particles/geometry.rb
atome-0.5.7.1.0 lib/atome/genesis/particles/geometry.rb
atome-0.5.7.0.7 lib/atome/genesis/particles/geometry.rb