Class: VectorSalad::StandardShapes::Move

Inherits:
Transform
  • Object
show all
Defined in:
lib/vector_salad/standard_shapes/move.rb

Overview

Move the contained shapes.

Instance Method Summary (collapse)

Constructor Details

- (Any) initialize(x, y, canvas:, **_options, &block)

Moves the contained shapes by the specified x and y amounts relatively.

Examples:

Move.new do
  canvas << Triangle.new(30, at: [50, -50])
  canvas << Pentagon.new(40, at: [50, -100])
end

Using DSL:

move(50, -10) do
  triangle(30, at: [50, -50])
  pentagon(40, at: [50, -100])
end

Parameters:

  • x (Coord)

    +Num; a coordinate+

  • y (Coord)

    +Num; a coordinate+

  • canvas ([])
  • _options ([])
  • block (Proc)


22
23
24
25
26
27
28
# File 'lib/vector_salad/standard_shapes/move.rb', line 22

def initialize(x, y, canvas:, **_options, &block)
  instance_eval(&block) # inner_canvas is populated

  @canvas.each do |shape|
    canvas << shape.move(x, y)
  end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class VectorSalad::DSL