Sha256: 3624b860ad7c5728fba8f42fdd262bf7cc5a6c985d25023837028709778a8d2b

Contents?: true

Size: 1.05 KB

Versions: 7

Compression:

Stored size: 1.05 KB

Contents

# -*- coding: utf-8 -*-


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

7 entries across 7 versions & 1 rubygems

Version Path
rays-0.1.21 lib/rays/polygon.rb
rays-0.1.20 lib/rays/polygon.rb
rays-0.1.19 lib/rays/polygon.rb
rays-0.1.18 lib/rays/polygon.rb
rays-0.1.17 lib/rays/polygon.rb
rays-0.1.16 lib/rays/polygon.rb
rays-0.1.15 lib/rays/polygon.rb