Sha256: f593a32807711ea1a2bdc1221ef6e016782ebbcfabc6bb801de5a19d92962248
Contents?: true
Size: 1.44 KB
Versions: 7
Compression:
Stored size: 1.44 KB
Contents
require 'rays/ext' module Rays class Color include Comparable include Enumerable alias r= red= alias r red alias g= green= alias g green alias b= blue= alias b blue alias a= alpha= alias a alpha alias to_hsb to_hsv def opaque?() alpha >= 1 end def transparent?() alpha <= 0 end def translucent?() a = alpha 0 < a && a < 1 end def each(&block) to_a.each(&block) end def to_a() [red, green, blue, alpha] end def to_s() to_a.to_s end def [](index) case index when 0 then red when 1 then green when 2 then blue when 3 then alpha else raise IndexError end end def []=(index, val) case index when 0 then self.red = val when 1 then self.green = val when 2 then self.blue = val when 3 then self.alpha = val else raise IndexError end end def <=>(o) ret = red <=> o.red; return ret if ret != 0 ret = green <=> o.green; return ret if ret != 0 ret = blue <=> o.blue; return ret if ret != 0 alpha <=> o.alpha end def hash() red.hash + green.hash + blue.hash + alpha.hash end def eql?(o) self == o end def inspect() "#<#{self.class.name} #{to_a.join ' '}>" end class << self alias hsb hsv end end# Color end# Rays
Version data entries
7 entries across 7 versions & 1 rubygems