class Rubytracer::Scene

Attributes

lighting[R]

Public Class Methods

new(objects=[], lighting=[]) click to toggle source
# File lib/rubytracer/scene.rb, line 5
def initialize(objects=[], lighting=[])
  @objects = objects
  @lighting = lighting
end

Public Instance Methods

add_light(light) click to toggle source
# File lib/rubytracer/scene.rb, line 14
def add_light(light)
  @lighting << light
end
add_object(object) click to toggle source
# File lib/rubytracer/scene.rb, line 10
def add_object(object)
  @objects << object
end
intersect(ray) click to toggle source
# File lib/rubytracer/scene.rb, line 18
def intersect(ray)
  min = [nil, Float::INFINITY]
  @objects.map { |object| [object, object.intersect(ray)[0]] }.each do |object, intersection|
    min = [object, intersection] if intersection > 0 && intersection < min[1]
  end
  min
end