Sha256: 8f5f91bc863863488d100bed83b2b3b3a41e364f0ef381d1ef4994ac665d9aa2
Contents?: true
Size: 808 Bytes
Versions: 7
Compression:
Stored size: 808 Bytes
Contents
# -*- coding: utf-8 -*- require 'rays/ext' module Rays class Point include Comparable include Enumerable def move_to(*args) dup.move_to!(*args) end def move_by(*args) dup.move_by!(*args) end def zero?() length == 0 end def each(&block) to_a.each(&block) end def to_a(dimension = 2) case dimension when 1 then [x] when 2 then [x, y] when 3 then [x, y, z] else raise ArgumentError end end def to_s(dimension = 2) to_a(dimension).to_s end def <=>(o) ret = x <=> o.x; return ret if ret != 0 ret = y <=> o.y; return ret if ret != 0 z <=> o.z end def inspect() "#<Rays::Point #{to_a(3).join ', '}>" end end# Point end# Rays
Version data entries
7 entries across 7 versions & 1 rubygems