Sha256: 0c204737a6f887a97f6991bd5ca9160a5fea5c75cb870786468b1697adf54eae

Contents?: true

Size: 1.02 KB

Versions: 11

Compression:

Stored size: 1.02 KB

Contents

require 'rays/ext'
require 'rays/polyline'


module Rays


  class Polygon

    include Enumerable

    def initialize(*args, loop: true)
      setup args, loop
    end

    def transform(matrix = nil, &block)
      lines = to_a
      lines = lines.map {|line| line.transform matrix} if matrix
      lines = block.call lines if block
      self.class.new(*lines)
    end

    def intersects(obj)
      !(self & obj).empty?
    end

    def self.line(*args, loop: false)
      new(*args, loop: loop)
    end

    def self.rect(
      *args, round: nil, lt: nil, rt: nil, lb: nil, rb: nil, nsegment: nil)

      create_rect args, round, lt, rt, lb, rb, nsegment
    end

    def self.ellipse(
      *args, center: nil, radius: nil, hole: nil, from: nil, to: nil,
      nsegment: nil)

      create_ellipse args, center, radius, hole, from, to, nsegment
    end

    def self.curve(*args, loop: false)
      create_curve args, loop
    end

    def self.bezier(*args, loop: false)
      create_bezier args, loop
    end

  end# Polygon


end# Rays

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
rays-0.1.46 lib/rays/polygon.rb
rays-0.1.45 lib/rays/polygon.rb
rays-0.1.44 lib/rays/polygon.rb
rays-0.1.43 lib/rays/polygon.rb
rays-0.1.42 lib/rays/polygon.rb
rays-0.1.40 lib/rays/polygon.rb
rays-0.1.39 lib/rays/polygon.rb
rays-0.1.38 lib/rays/polygon.rb
rays-0.1.37 lib/rays/polygon.rb
rays-0.1.36 lib/rays/polygon.rb
rays-0.1.35 lib/rays/polygon.rb