Sha256: 1b858e10d006d13e3dadbd35be9114fc3ad6f099dedc6c95f9c351642ad8f5dd

Contents?: true

Size: 1.59 KB

Versions: 34

Compression:

Stored size: 1.59 KB

Contents

require_relative 'arrow'

module GridGenerator
  module Arrows
    class DiagonalUpArrow < Arrow
      ARROW_SIDE = 12
      ARROW_OVERHANG = 4 
    
      def arrow_start_point
        [
          [ x+ARROW_SIDE, y+length+ARROW_SIDE ],
          [ x, y+length+ARROW_SIDE ],
          [ x, y+length ]
        ]
      end
    
      def arrow_start_flat
        [
          [ x+ARROW_SIDE-(2*ARROW_OVERHANG), y+length+ARROW_SIDE ],
          [ x, y+length+(2*ARROW_OVERHANG) ]
        ]
      end
    
      def arrow_start_side
        [
          [ x+ARROW_OVERHANG, y+length+ARROW_OVERHANG ],
          [ x+length+ARROW_OVERHANG, y+ARROW_OVERHANG ]
        ]
      end
    
      def arrow_end_point
        [
          [ x+length, y ],
          [ x+length+ARROW_SIDE, y ],
          [ x+length+ARROW_SIDE, y+ARROW_SIDE ]
        ]
      end
    
      def arrow_end_flat
        [
          [ x+length+(2*ARROW_OVERHANG), y ],
          [ x+length+ARROW_SIDE, y+ARROW_SIDE-(2*ARROW_OVERHANG) ]
        ]
      end
    
      def arrow_end_side
        [
          [ x+length+ARROW_SIDE-ARROW_OVERHANG, y+ARROW_SIDE-ARROW_OVERHANG ],
          [ x+ARROW_SIDE-ARROW_OVERHANG, y+length+ARROW_SIDE-ARROW_OVERHANG ]
        ]
      end
    
      def points
        case direction
        when :forward
          arrow_start_flat + arrow_start_side + arrow_end_point + arrow_end_side
        when :backward
          arrow_start_point + arrow_start_side + arrow_end_flat + arrow_end_side
        else
          arrow_start_point + arrow_start_side + arrow_end_point + arrow_end_side
        end
      end
    
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
grid_generator-0.2.24 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.23 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.22 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.21 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.20 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.19 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.18 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.17 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.16 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.15 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.14 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.13 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.12 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.11 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.10 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.9 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.8 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.7 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.6 lib/grid_generator/arrows/diagonal_up_arrow.rb
grid_generator-0.2.5 lib/grid_generator/arrows/diagonal_up_arrow.rb