Sha256: b12e4afc9a996806f164f83bacfebda2875e21c6925effe079d17f7fe9d0f8bf

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

require 'singleton'

module Vedeu

  # The size of the terminal is a limitation. Defining a canvas means we have
  # more space to 'do stuff'.
  #
  class Canvas

    include Singleton

    # @return [Vedeu::Canvas]
    def self.canvas
      instance
    end

    # @param yn [Fixnum]
    # @param xn [Fixnum]
    # @return [Vedeu::Canvas]
    def configure(yn, xn)
      @yn = yn
      @xn = xn

      self
    end

    # @return [Array]
    def c
      [cy, cx]
    end
    alias_method :centre, :c

    # @return [Fixnum]
    def cy
      ((yn - y) / 2) + y
    end
    alias_method :centre_y, :cy

    # @return [Fixnum]
    def cx
      ((xn - x) / 2) + x
    end
    alias_method :centre_x, :cx

    # @return [Fixnum]
    def o
      1
    end
    alias_method :origin, :o

    # @return [Fixnum]
    def y
      1
    end
    alias_method :top, :y

    # @return [Fixnum]
    def yn
      @yn
    end
    alias_method :bottom, :yn
    alias_method :height, :yn

    # @return [Fixnum]
    def x
      1
    end
    alias_method :left, :x

    # @return [Fixnum]
    def xn
      @xn
    end
    alias_method :right, :xn
    alias_method :width, :xn

  end # Canvas

end # Vedeu

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.4.8 lib/vedeu/geometry/canvas.rb